HAOUAS Elyes (ehaouas(a)noos.fr) just uploaded a new patch set to gerrit, which you can find at https://review.coreboot.org/17191
-gerrit
commit 3c2cb320fefda4299bdd927c936bcbffe272655c
Author: Elyes HAOUAS <ehaouas(a)noos.fr>
Date: Sun Oct 30 18:30:21 2016 +0100
nb/intel/i945/early_init.c: Add DDR2-667 detection for 945GC
Change-Id: I3d54c88af897a71db757d00288f3968ed2c19151
Signed-off-by: Elyes HAOUAS <ehaouas(a)noos.fr>
---
src/northbridge/intel/i945/early_init.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/src/northbridge/intel/i945/early_init.c b/src/northbridge/intel/i945/early_init.c
index 4373167..17fd5a4 100644
--- a/src/northbridge/intel/i945/early_init.c
+++ b/src/northbridge/intel/i945/early_init.c
@@ -132,6 +132,9 @@ static void i945_detect_chipset(void)
case 0:
printk(BIOS_DEBUG, "up to DDR2-667");
break;
+ case 2:
+ printk(BIOS_DEBUG, "up to DDR2-667");
+ break;
case 3:
printk(BIOS_DEBUG, "up to DDR2-533");
break;
Lijian Zhao (lijian.zhao(a)intel.com) just uploaded a new patch set to gerrit, which you can find at https://review.coreboot.org/17181
-gerrit
commit ba901334e92f1e5a0585980a0b9b4e28eb4282ab
Author: Lijian Zhao <lijian.zhao(a)intel.com>
Date: Fri Oct 28 11:01:09 2016 -0700
soc/intel/apollolake: Add pmc_ipc device support
A dedicated pmc_ipc DSDT entry is required for pmc_ipc kernel driver.
The ACPI mode entry includes resources for PMC_IPC1, SRAM, ACPI IO and
Punit Mailbox.
BRANCH=None
BUG=chrome-os-partner:57364
TEST=Boot up into OS successfully and check with dmesg to see the
driver has been loaded successfully without errors.
Change-Id: Ib0a300febe1e7fc1796bfeca1a04493f932640e1
Signed-off-by: Lijian Zhao <lijian.zhao(a)intel.com>
---
src/soc/intel/apollolake/acpi/pmc_ipc.asl | 61 +++++++++++++++++++++++++++
src/soc/intel/apollolake/acpi/southbridge.asl | 3 ++
2 files changed, 64 insertions(+)
diff --git a/src/soc/intel/apollolake/acpi/pmc_ipc.asl b/src/soc/intel/apollolake/acpi/pmc_ipc.asl
new file mode 100644
index 0000000..0e8e751
--- /dev/null
+++ b/src/soc/intel/apollolake/acpi/pmc_ipc.asl
@@ -0,0 +1,61 @@
+/*
+ * This file is part of the coreboot project.
+ *
+ * Copyright (C) 2016 Intel Corp.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; version 2 of
+ * the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ */
+
+#include <soc/iomap.h>
+
+#define MAILBOX_DATA 0x7080
+#define MAILBOX_INTF 0x7084
+#define PMIO_LENGTH 0x80
+#define PMIO_LIMIT 0x480
+
+scope (\_SB) {
+ Device (IPC1)
+ {
+ Name (_HID, "INT34D2")
+ Name (_CID, "INT34D2")
+ Name (_DDN, "Intel(R) IPC1 Controller")
+ Name (RBUF, ResourceTemplate ()
+ {
+ Memory32Fixed (ReadWrite, 0x0, 0x2000, IBAR)
+ Memory32Fixed (ReadWrite, 0x0, 0x4, MDAT)
+ Memory32Fixed (ReadWrite, 0x0, 0x4, MINF)
+ IO (Decode16, ACPI_PMIO_BASE, PMIO_LIMIT,
+ 0x04, PMIO_LENGTH)
+ Memory32Fixed (ReadWrite, 0x0, 0x2000, SBAR)
+ Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, , , )
+ {
+ PMC_INT
+ }
+ })
+
+ Method (_CRS, 0x0, NotSerialized)
+ {
+ CreateDwordField (^RBUF, ^IBAR._BAS, IBAS)
+ Store (PMC_BAR0, IBAS)
+
+ CreateDwordField (^RBUF, ^MDAT._BAS, MDBA)
+ Store (MCH_BASE_ADDR + MAILBOX_DATA, MDBA)
+ CreateDwordField (^RBUF, ^MINF._BAS, MIBA)
+ Store (MCH_BASE_ADDR + MAILBOX_INTF, MIBA)
+
+ CreateDwordField (^RBUF, ^SBAR._BAS, SBAS)
+ Store (PMC_SRAM_BASE_0, SBAS)
+
+ Return (^RBUF)
+ }
+ }
+
+}
\ No newline at end of file
diff --git a/src/soc/intel/apollolake/acpi/southbridge.asl b/src/soc/intel/apollolake/acpi/southbridge.asl
index 1c10f1a..e3ee1ae 100644
--- a/src/soc/intel/apollolake/acpi/southbridge.asl
+++ b/src/soc/intel/apollolake/acpi/southbridge.asl
@@ -46,5 +46,8 @@ Scope (\_SB)
/* eMMC */
#include "scs.asl"
+/* PMC IPC controller */
+#include "pmc_ipc.asl"
+
/* PCI _OSC */
#include <soc/intel/common/acpi/pci_osc.asl>
Jonathan Neuschäfer (j.neuschaefer(a)gmx.net) just uploaded a new patch set to gerrit, which you can find at https://review.coreboot.org/17188
-gerrit
commit 12cf0cdcfbd140db191009f665c10127a4bae687
Author: Jonathan Neuschäfer <j.neuschaefer(a)gmx.net>
Date: Sat Oct 29 21:48:18 2016 +0200
mb/lowrisc/nexys4ddr: Actually fix the UART clock setup
Ron's code calculated the DLL and DLM registers of the 8250 UART, but
that's the job of the UART driver. uart_input_clock_divider isn't needed
anymore because the default value of 16 works.
As a bonus, the baud rate can now be selected in Kconfig, instead of
being hardcoded at 115200.
TEST=Booted the board at 9600 and 115200 baud.
Change-Id: I3d5e49568b798a6a6d944db1161def7d0a2d3b48
Signed-off-by: Jonathan Neuschäfer <j.neuschaefer(a)gmx.net>
---
src/mainboard/lowrisc/nexys4ddr/Kconfig | 1 -
src/mainboard/lowrisc/nexys4ddr/uart.c | 13 ++-----------
2 files changed, 2 insertions(+), 12 deletions(-)
diff --git a/src/mainboard/lowrisc/nexys4ddr/Kconfig b/src/mainboard/lowrisc/nexys4ddr/Kconfig
index f0a3637..5a6bfb2 100644
--- a/src/mainboard/lowrisc/nexys4ddr/Kconfig
+++ b/src/mainboard/lowrisc/nexys4ddr/Kconfig
@@ -21,7 +21,6 @@ config BOARD_SPECIFIC_OPTIONS # dummy
select DRIVERS_UART_8250MEM
select BOOT_DEVICE_NOT_SPI_FLASH
select UART_OVERRIDE_REFCLK
- select UART_OVERRIDE_INPUT_CLOCK_DIVIDER
config MAINBOARD_DIR
string
diff --git a/src/mainboard/lowrisc/nexys4ddr/uart.c b/src/mainboard/lowrisc/nexys4ddr/uart.c
index e3c233f80..d19ce52 100644
--- a/src/mainboard/lowrisc/nexys4ddr/uart.c
+++ b/src/mainboard/lowrisc/nexys4ddr/uart.c
@@ -24,17 +24,8 @@ uintptr_t uart_platform_base(int idx)
return (uintptr_t) 0x42000000;
}
-/* these are currently not quite right but they are here for reference
- * and will be fixed when lowrisc gives us a standard clock
- * and set of values. */
-// divisor = clk_freq / (16 * Baud)
-unsigned int uart_input_clock_divider(void)
-{
- return (25 * 1000 * 1000u / (16u * 115200u)) % 0x100;
-}
-
-// System clock 25 MHz, 115200 baud rate
+/* The clock which the UART is based on */
unsigned int uart_platform_refclk(void)
{
- return (25 * 1000 * 1000u / (16u * 115200u)) >> 8;
+ return 25 * MHz;
}
Jonathan Neuschäfer (j.neuschaefer(a)gmx.net) just uploaded a new patch set to gerrit, which you can find at https://review.coreboot.org/17057
-gerrit
commit f71bf99c453b1ff5d2b99d9b66c1d85b1c489284
Author: Jonathan Neuschäfer <j.neuschaefer(a)gmx.net>
Date: Fri Oct 28 00:25:02 2016 +0200
riscv: Unify SBI call implementations under arch/riscv/
Note that currently, traps are only handled by the trap handler
installed in the bootblock. The romstage and ramstage don't override it.
TEST=Booted emulation/spike-qemu and lowrisc/nexys4ddr with a linux
payload. It worked as much as before (Linux didn't boot, but it
made some successful SBI calls)
Change-Id: Icce96ab3f41ae0f34bd86e30f9ff17c30317854e
Signed-off-by: Jonathan Neuschäfer <j.neuschaefer(a)gmx.net>
---
src/arch/riscv/Makefile.inc | 2 +-
src/arch/riscv/include/mcall.h | 70 +++++++++++++++
src/arch/riscv/include/spike_util.h | 70 ---------------
src/arch/riscv/mcall.c | 101 ++++++++++++++++++++++
src/arch/riscv/trap_handler.c | 2 +-
src/mainboard/emulation/qemu-riscv/Makefile.inc | 3 -
src/mainboard/emulation/qemu-riscv/qemu_util.c | 100 ----------------------
src/mainboard/emulation/spike-riscv/Makefile.inc | 3 -
src/mainboard/emulation/spike-riscv/spike_util.c | 100 ----------------------
src/mainboard/emulation/spike-riscv/uart.c | 1 -
src/mainboard/lowrisc/nexys4ddr/Makefile.inc | 3 -
src/mainboard/lowrisc/nexys4ddr/uart.c | 1 -
src/mainboard/lowrisc/nexys4ddr/util.c | 103 -----------------------
13 files changed, 173 insertions(+), 386 deletions(-)
diff --git a/src/arch/riscv/Makefile.inc b/src/arch/riscv/Makefile.inc
index cf6ce99..1fe8f7c 100644
--- a/src/arch/riscv/Makefile.inc
+++ b/src/arch/riscv/Makefile.inc
@@ -34,6 +34,7 @@ $(call src-to-obj,bootblock,$(dir)/id.S): $(obj)/build.h
bootblock-y = bootblock.S stages.c
bootblock-y += trap_util.S
bootblock-y += trap_handler.c
+bootblock-y += mcall.c
bootblock-y += virtual_memory.c
bootblock-y += boot.c
bootblock-y += misc.c
@@ -89,7 +90,6 @@ endif
ifeq ($(CONFIG_ARCH_RAMSTAGE_RISCV),y)
ramstage-y =
-ramstage-y += trap_handler.c
ramstage-y += virtual_memory.c
ramstage-y += stages.c
ramstage-y += misc.c
diff --git a/src/arch/riscv/include/mcall.h b/src/arch/riscv/include/mcall.h
new file mode 100644
index 0000000..a43b9cf
--- /dev/null
+++ b/src/arch/riscv/include/mcall.h
@@ -0,0 +1,70 @@
+/*
+ * This file is part of the coreboot project.
+ *
+ * Copyright (C) 2013 The ChromiumOS Authors
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ */
+
+#ifndef _MCALL_H
+#define _MCALL_H
+
+#include <arch/encoding.h>
+#include <atomic.h>
+#include <stdint.h>
+
+#define HLS_SIZE 64
+#define MENTRY_FRAME_SIZE HLS_SIZE
+
+typedef struct {
+ unsigned long base;
+ unsigned long size;
+ unsigned long node_id;
+} memory_block_info;
+
+typedef struct {
+ unsigned long dev;
+ unsigned long cmd;
+ unsigned long data;
+ unsigned long sbi_private_data;
+} sbi_device_message;
+
+
+typedef struct {
+ sbi_device_message* device_request_queue_head;
+ unsigned long device_request_queue_size;
+ sbi_device_message* device_response_queue_head;
+ sbi_device_message* device_response_queue_tail;
+
+ int hart_id;
+ int ipi_pending;
+} hls_t;
+
+#define MACHINE_STACK_TOP() ({ \
+ register uintptr_t sp asm ("sp"); \
+ (void*)((sp + RISCV_PGSIZE) & -RISCV_PGSIZE); })
+
+// hart-local storage, at top of stack
+#define HLS() ((hls_t*)(MACHINE_STACK_TOP() - HLS_SIZE))
+#define OTHER_HLS(id) ((hls_t*)((void*)HLS() + RISCV_PGSIZE * ((id) - HLS()->hart_id)))
+
+#define MACHINE_STACK_SIZE RISCV_PGSIZE
+
+uintptr_t mcall_query_memory(uintptr_t id, memory_block_info *p);
+uintptr_t mcall_console_putchar(uint8_t ch);
+uintptr_t mcall_dev_req(sbi_device_message *m);
+uintptr_t mcall_dev_resp(void);
+uintptr_t mcall_set_timer(unsigned long long when);
+uintptr_t mcall_clear_ipi(void);
+uintptr_t mcall_send_ipi(uintptr_t recipient);
+uintptr_t mcall_shutdown(void);
+void hls_init(uint32_t hart_id); // need to call this before launching linux
+
+#endif
diff --git a/src/arch/riscv/include/spike_util.h b/src/arch/riscv/include/spike_util.h
deleted file mode 100644
index 175ee6c..0000000
--- a/src/arch/riscv/include/spike_util.h
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * This file is part of the coreboot project.
- *
- * Copyright (C) 2013 The ChromiumOS Authors
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- */
-
-#ifndef _SPIKE_UTIL_H
-#define _SPIKE_UTIL_H
-
-#include <arch/encoding.h>
-#include <atomic.h>
-#include <stdint.h>
-
-#define HLS_SIZE 64
-#define MENTRY_FRAME_SIZE HLS_SIZE
-
-typedef struct {
- unsigned long base;
- unsigned long size;
- unsigned long node_id;
-} memory_block_info;
-
-typedef struct {
- unsigned long dev;
- unsigned long cmd;
- unsigned long data;
- unsigned long sbi_private_data;
-} sbi_device_message;
-
-
-typedef struct {
- sbi_device_message* device_request_queue_head;
- unsigned long device_request_queue_size;
- sbi_device_message* device_response_queue_head;
- sbi_device_message* device_response_queue_tail;
-
- int hart_id;
- int ipi_pending;
-} hls_t;
-
-#define MACHINE_STACK_TOP() ({ \
- register uintptr_t sp asm ("sp"); \
- (void*)((sp + RISCV_PGSIZE) & -RISCV_PGSIZE); })
-
-// hart-local storage, at top of stack
-#define HLS() ((hls_t*)(MACHINE_STACK_TOP() - HLS_SIZE))
-#define OTHER_HLS(id) ((hls_t*)((void*)HLS() + RISCV_PGSIZE * ((id) - HLS()->hart_id)))
-
-#define MACHINE_STACK_SIZE RISCV_PGSIZE
-
-uintptr_t mcall_query_memory(uintptr_t id, memory_block_info *p);
-uintptr_t mcall_console_putchar(uint8_t ch);
-uintptr_t mcall_dev_req(sbi_device_message *m);
-uintptr_t mcall_dev_resp(void);
-uintptr_t mcall_set_timer(unsigned long long when);
-uintptr_t mcall_clear_ipi(void);
-uintptr_t mcall_send_ipi(uintptr_t recipient);
-uintptr_t mcall_shutdown(void);
-void hls_init(uint32_t hart_id); // need to call this before launching linux
-
-#endif
diff --git a/src/arch/riscv/mcall.c b/src/arch/riscv/mcall.c
new file mode 100644
index 0000000..fdc02be
--- /dev/null
+++ b/src/arch/riscv/mcall.c
@@ -0,0 +1,101 @@
+/*
+ * Copyright (c) 2013, The Regents of the University of California (Regents).
+ * All Rights Reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the Regents nor the
+ * names of its contributors may be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * IN NO EVENT SHALL REGENTS BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT,
+ * SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING LOST PROFITS, ARISING
+ * OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF REGENTS HAS
+ * BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * REGENTS SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE. THE SOFTWARE AND ACCOMPANYING DOCUMENTATION, IF ANY, PROVIDED
+ * HEREUNDER IS PROVIDED "AS IS". REGENTS HAS NO OBLIGATION TO PROVIDE
+ * MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+ */
+
+#include <arch/barrier.h>
+#include <arch/errno.h>
+#include <atomic.h>
+#include <console/console.h>
+#include <mcall.h>
+#include <string.h>
+#include <vm.h>
+
+uintptr_t mcall_query_memory(uintptr_t id, memory_block_info *info)
+{
+ if (id == 0) {
+ mprv_write_ulong(&info->base, 2U*GiB);
+
+ /* TODO: Return the correct value */
+ mprv_write_ulong(&info->size, 1*GiB);
+ return 0;
+ }
+
+ return -1;
+}
+
+uintptr_t mcall_send_ipi(uintptr_t recipient)
+{
+ die("mcall_send_ipi is currently not implemented");
+ return 0;
+}
+
+uintptr_t mcall_clear_ipi(void)
+{
+ // only clear SSIP if no other events are pending
+ if (HLS()->device_response_queue_head == NULL) {
+ clear_csr(mip, MIP_SSIP);
+ /* Ensure the other hart sees it. */
+ mb();
+ }
+
+ return atomic_swap(&HLS()->ipi_pending, 0);
+}
+
+uintptr_t mcall_shutdown(void)
+{
+ die("mcall_shutdown is currently not implemented");
+ return 0;
+}
+
+uintptr_t mcall_set_timer(unsigned long long when)
+{
+ printk(BIOS_DEBUG, "mcall_set_timer is currently not implemented, ignoring\n");
+ return 0;
+}
+
+uintptr_t mcall_dev_req(sbi_device_message *m)
+{
+ die("mcall_dev_req is currently not implemented");
+ return 0;
+}
+
+uintptr_t mcall_dev_resp(void)
+{
+ die("mcall_dev_resp is currently not implemented");
+ return 0;
+}
+
+void hls_init(uint32_t hart_id)
+{
+ memset(HLS(), 0, sizeof(*HLS()));
+ HLS()->hart_id = hart_id;
+}
+
+uintptr_t mcall_console_putchar(uint8_t ch)
+{
+ do_putchar(ch);
+ return 0;
+}
diff --git a/src/arch/riscv/trap_handler.c b/src/arch/riscv/trap_handler.c
index ad49928..8a7b513 100644
--- a/src/arch/riscv/trap_handler.c
+++ b/src/arch/riscv/trap_handler.c
@@ -17,7 +17,7 @@
#include <arch/exception.h>
#include <arch/sbi.h>
#include <console/console.h>
-#include <spike_util.h>
+#include <mcall.h>
#include <string.h>
#include <vm.h>
diff --git a/src/mainboard/emulation/qemu-riscv/Makefile.inc b/src/mainboard/emulation/qemu-riscv/Makefile.inc
index 4fbe401..36f1fca 100644
--- a/src/mainboard/emulation/qemu-riscv/Makefile.inc
+++ b/src/mainboard/emulation/qemu-riscv/Makefile.inc
@@ -13,14 +13,11 @@
## GNU General Public License for more details.
bootblock-y += uart.c
-bootblock-y += qemu_util.c
bootblock-y += rom_media.c
romstage-y += romstage.c
-romstage-y += qemu_util.c
romstage-y += uart.c
romstage-y += rom_media.c
ramstage-y += uart.c
-ramstage-y += qemu_util.c
ramstage-y += rom_media.c
bootblock-y += memlayout.ld
diff --git a/src/mainboard/emulation/qemu-riscv/qemu_util.c b/src/mainboard/emulation/qemu-riscv/qemu_util.c
deleted file mode 100644
index c97a61f..0000000
--- a/src/mainboard/emulation/qemu-riscv/qemu_util.c
+++ /dev/null
@@ -1,100 +0,0 @@
-/*
- * Copyright (c) 2013, The Regents of the University of California (Regents).
- * All Rights Reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the Regents nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * IN NO EVENT SHALL REGENTS BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT,
- * SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING LOST PROFITS, ARISING
- * OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF REGENTS HAS
- * BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * REGENTS SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE. THE SOFTWARE AND ACCOMPANYING DOCUMENTATION, IF ANY, PROVIDED
- * HEREUNDER IS PROVIDED "AS IS". REGENTS HAS NO OBLIGATION TO PROVIDE
- * MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
- */
-
-#include <arch/barrier.h>
-#include <arch/errno.h>
-#include <atomic.h>
-#include <console/console.h>
-#include <spike_util.h>
-#include <string.h>
-#include <vm.h>
-
-uintptr_t mcall_query_memory(uintptr_t id, memory_block_info *info)
-{
- if (id == 0) {
- mprv_write_ulong(&info->base, 2U*GiB);
-
- /* TODO: Return the correct value */
- mprv_write_ulong(&info->size, 1*GiB);
- return 0;
- }
-
- return -1;
-}
-
-uintptr_t mcall_send_ipi(uintptr_t recipient)
-{
- die("mcall_send_ipi is currently not implemented");
- return 0;
-}
-
-uintptr_t mcall_clear_ipi(void)
-{
- // only clear SSIP if no other events are pending
- if (HLS()->device_response_queue_head == NULL) {
- clear_csr(mip, MIP_SSIP);
- mb();
- }
-
- return atomic_swap(&HLS()->ipi_pending, 0);
-}
-
-uintptr_t mcall_shutdown(void)
-{
- die("mcall_shutdown is currently not implemented");
- return 0;
-}
-
-uintptr_t mcall_set_timer(unsigned long long when)
-{
- printk(BIOS_DEBUG, "mcall_set_timer is currently not implemented, ignoring\n");
- return 0;
-}
-
-uintptr_t mcall_dev_req(sbi_device_message *m)
-{
- die("mcall_dev_req is currently not implemented");
- return 0;
-}
-
-uintptr_t mcall_dev_resp(void)
-{
- die("mcall_dev_resp is currently not implemented");
- return 0;
-}
-
-void hls_init(uint32_t hart_id)
-{
- memset(HLS(), 0, sizeof(*HLS()));
- HLS()->hart_id = hart_id;
-}
-
-uintptr_t mcall_console_putchar(uint8_t ch)
-{
- do_putchar(ch);
- return 0;
-}
diff --git a/src/mainboard/emulation/spike-riscv/Makefile.inc b/src/mainboard/emulation/spike-riscv/Makefile.inc
index e3c9481..36f1fca 100644
--- a/src/mainboard/emulation/spike-riscv/Makefile.inc
+++ b/src/mainboard/emulation/spike-riscv/Makefile.inc
@@ -13,14 +13,11 @@
## GNU General Public License for more details.
bootblock-y += uart.c
-bootblock-y += spike_util.c
bootblock-y += rom_media.c
romstage-y += romstage.c
romstage-y += uart.c
-romstage-y += spike_util.c
romstage-y += rom_media.c
ramstage-y += uart.c
-ramstage-y += spike_util.c
ramstage-y += rom_media.c
bootblock-y += memlayout.ld
diff --git a/src/mainboard/emulation/spike-riscv/spike_util.c b/src/mainboard/emulation/spike-riscv/spike_util.c
deleted file mode 100644
index c97a61f..0000000
--- a/src/mainboard/emulation/spike-riscv/spike_util.c
+++ /dev/null
@@ -1,100 +0,0 @@
-/*
- * Copyright (c) 2013, The Regents of the University of California (Regents).
- * All Rights Reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the Regents nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * IN NO EVENT SHALL REGENTS BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT,
- * SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING LOST PROFITS, ARISING
- * OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF REGENTS HAS
- * BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * REGENTS SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE. THE SOFTWARE AND ACCOMPANYING DOCUMENTATION, IF ANY, PROVIDED
- * HEREUNDER IS PROVIDED "AS IS". REGENTS HAS NO OBLIGATION TO PROVIDE
- * MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
- */
-
-#include <arch/barrier.h>
-#include <arch/errno.h>
-#include <atomic.h>
-#include <console/console.h>
-#include <spike_util.h>
-#include <string.h>
-#include <vm.h>
-
-uintptr_t mcall_query_memory(uintptr_t id, memory_block_info *info)
-{
- if (id == 0) {
- mprv_write_ulong(&info->base, 2U*GiB);
-
- /* TODO: Return the correct value */
- mprv_write_ulong(&info->size, 1*GiB);
- return 0;
- }
-
- return -1;
-}
-
-uintptr_t mcall_send_ipi(uintptr_t recipient)
-{
- die("mcall_send_ipi is currently not implemented");
- return 0;
-}
-
-uintptr_t mcall_clear_ipi(void)
-{
- // only clear SSIP if no other events are pending
- if (HLS()->device_response_queue_head == NULL) {
- clear_csr(mip, MIP_SSIP);
- mb();
- }
-
- return atomic_swap(&HLS()->ipi_pending, 0);
-}
-
-uintptr_t mcall_shutdown(void)
-{
- die("mcall_shutdown is currently not implemented");
- return 0;
-}
-
-uintptr_t mcall_set_timer(unsigned long long when)
-{
- printk(BIOS_DEBUG, "mcall_set_timer is currently not implemented, ignoring\n");
- return 0;
-}
-
-uintptr_t mcall_dev_req(sbi_device_message *m)
-{
- die("mcall_dev_req is currently not implemented");
- return 0;
-}
-
-uintptr_t mcall_dev_resp(void)
-{
- die("mcall_dev_resp is currently not implemented");
- return 0;
-}
-
-void hls_init(uint32_t hart_id)
-{
- memset(HLS(), 0, sizeof(*HLS()));
- HLS()->hart_id = hart_id;
-}
-
-uintptr_t mcall_console_putchar(uint8_t ch)
-{
- do_putchar(ch);
- return 0;
-}
diff --git a/src/mainboard/emulation/spike-riscv/uart.c b/src/mainboard/emulation/spike-riscv/uart.c
index 8513849..57647fe 100644
--- a/src/mainboard/emulation/spike-riscv/uart.c
+++ b/src/mainboard/emulation/spike-riscv/uart.c
@@ -17,7 +17,6 @@
#include <console/uart.h>
#include <arch/io.h>
#include <boot/coreboot_tables.h>
-#include <spike_util.h>
uintptr_t uart_platform_base(int idx)
{
diff --git a/src/mainboard/lowrisc/nexys4ddr/Makefile.inc b/src/mainboard/lowrisc/nexys4ddr/Makefile.inc
index 69519b1..abd341c 100644
--- a/src/mainboard/lowrisc/nexys4ddr/Makefile.inc
+++ b/src/mainboard/lowrisc/nexys4ddr/Makefile.inc
@@ -13,14 +13,11 @@
## GNU General Public License for more details.
bootblock-y += uart.c
-bootblock-y += util.c
bootblock-y += rom_media.c
romstage-y += romstage.c
romstage-y += uart.c
-romstage-y += util.c
romstage-y += rom_media.c
ramstage-y += uart.c
-ramstage-y += util.c
ramstage-y += rom_media.c
bootblock-y += memlayout.ld
diff --git a/src/mainboard/lowrisc/nexys4ddr/uart.c b/src/mainboard/lowrisc/nexys4ddr/uart.c
index d19ce52..7758db3 100644
--- a/src/mainboard/lowrisc/nexys4ddr/uart.c
+++ b/src/mainboard/lowrisc/nexys4ddr/uart.c
@@ -17,7 +17,6 @@
#include <console/uart.h>
#include <arch/io.h>
#include <boot/coreboot_tables.h>
-#include <spike_util.h>
uintptr_t uart_platform_base(int idx)
{
diff --git a/src/mainboard/lowrisc/nexys4ddr/util.c b/src/mainboard/lowrisc/nexys4ddr/util.c
deleted file mode 100644
index 32cdb6d..0000000
--- a/src/mainboard/lowrisc/nexys4ddr/util.c
+++ /dev/null
@@ -1,103 +0,0 @@
-/*
- * Copyright (c) 2013, The Regents of the University of California (Regents).
- * All Rights Reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the Regents nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * IN NO EVENT SHALL REGENTS BE LIABLE TO ANY PARTY FOR DIRECT,
- * INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING
- * LOST PROFITS, ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS
- * DOCUMENTATION, EVEN IF REGENTS HAS BEEN ADVISED OF THE POSSIBILITY
- * OF SUCH DAMAGE.
- *
- * REGENTS SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE. THE SOFTWARE AND ACCOMPANYING
- * DOCUMENTATION, IF ANY, PROVIDED HEREUNDER IS PROVIDED "AS
- * IS". REGENTS HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT,
- * UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
- */
-
-#include <arch/barrier.h>
-#include <arch/errno.h>
-#include <atomic.h>
-#include <console/console.h>
-#include <spike_util.h>
-#include <string.h>
-#include <vm.h>
-
-uintptr_t mcall_query_memory(uintptr_t id, memory_block_info *info)
-{
- if (id == 0) {
- mprv_write_ulong(&info->base, 2U*GiB);
-
- /* TODO: Return the correct value */
- mprv_write_ulong(&info->size, 1*GiB);
- return 0;
- }
-
- return -1;
-}
-
-uintptr_t mcall_send_ipi(uintptr_t recipient)
-{
- die("mcall_send_ipi is currently not implemented");
- return 0;
-}
-
-uintptr_t mcall_clear_ipi(void)
-{
- // only clear SSIP if no other events are pending
- if (HLS()->device_response_queue_head == NULL) {
- clear_csr(mip, MIP_SSIP);
- /* Ensure the other hart sees it. */
- mb();
- }
-
- return atomic_swap(&HLS()->ipi_pending, 0);
-}
-
-uintptr_t mcall_shutdown(void)
-{
- die("mcall_shutdown is currently not implemented");
- return 0;
-}
-
-uintptr_t mcall_set_timer(unsigned long long when)
-{
- printk(BIOS_DEBUG, "mcall_set_timer is currently not implemented, ignoring\n");
- return 0;
-}
-
-uintptr_t mcall_dev_req(sbi_device_message *m)
-{
- die("mcall_dev_req is currently not implemented");
- return 0;
-}
-
-uintptr_t mcall_dev_resp(void)
-{
- die("mcall_dev_resp is currently not implemented");
- return 0;
-}
-
-void hls_init(uint32_t hart_id)
-{
- memset(HLS(), 0, sizeof(*HLS()));
- HLS()->hart_id = hart_id;
-}
-
-uintptr_t mcall_console_putchar(uint8_t ch)
-{
- do_putchar(ch);
- return 0;
-}