diff options
-rw-r--r-- | docs/platform/generic.md | 2 | ||||
-rw-r--r-- | docs/platform/spike.md | 20 | ||||
-rw-r--r-- | platform/spike/config.mk | 36 | ||||
-rw-r--r-- | platform/spike/objects.mk | 7 | ||||
-rw-r--r-- | platform/spike/platform.c | 86 | ||||
-rwxr-xr-x | scripts/create-binary-archive.sh | 1 |
6 files changed, 12 insertions, 140 deletions
diff --git a/docs/platform/generic.md b/docs/platform/generic.md index f4281a2..e2d1b63 100644 --- a/docs/platform/generic.md +++ b/docs/platform/generic.md @@ -40,5 +40,7 @@ RISC-V Platforms Using Generic Platform --------------------------------------- * **QEMU RISC-V Virt Machine** (*[qemu_virt.md]*) +* **Spike** (*[spike.md]*) [qemu_virt.md]: qemu_virt.md +[spike.md]: spike.md diff --git a/docs/platform/spike.md b/docs/platform/spike.md index 40fa4ba..8d6b422 100644 --- a/docs/platform/spike.md +++ b/docs/platform/spike.md @@ -9,7 +9,7 @@ on **Spike** simulator and QEMU Spike machine. For more details, refer [Spike on GitHub](https://github.com/riscv/riscv-isa-sim) To build the platform-specific library and firmware images, provide the -*PLATFORM=spike* parameter to the top level `make` command. +*PLATFORM=generic* parameter to the top level `make` command. Platform Options ---------------- @@ -23,12 +23,12 @@ Execution on Spike Simulator Build: ``` -make PLATFORM=spike +make PLATFORM=generic ``` Run: ``` -spike build/platform/spike/firmware/fw_payload.elf +spike build/platform/generic/firmware/fw_payload.elf ``` **Linux Kernel Payload** @@ -38,12 +38,12 @@ Note: We assume that the Linux kernel is compiled using Build: ``` -make PLATFORM=spike FW_PAYLOAD_PATH=<linux_build_directory>/arch/riscv/boot/Image +make PLATFORM=generic FW_PAYLOAD_PATH=<linux_build_directory>/arch/riscv/boot/Image ``` Run: ``` -spike --initrd <path_to_cpio_ramdisk> build/platform/spike/firmware/fw_payload.elf +spike --initrd <path_to_cpio_ramdisk> build/platform/generic/firmware/fw_payload.elf ``` Execution on QEMU RISC-V 64-bit @@ -53,13 +53,13 @@ Execution on QEMU RISC-V 64-bit Build: ``` -make PLATFORM=spike +make PLATFORM=generic ``` Run: ``` qemu-system-riscv64 -M spike -m 256M -nographic \ - -kernel build/platform/spike/firmware/fw_payload.elf + -kernel build/platform/generic/firmware/fw_payload.elf ``` **Linux Kernel Payload** @@ -69,20 +69,20 @@ Note: We assume that the Linux kernel is compiled using Build: ``` -make PLATFORM=spike FW_PAYLOAD_PATH=<linux_build_directory>/arch/riscv/boot/Image +make PLATFORM=generic FW_PAYLOAD_PATH=<linux_build_directory>/arch/riscv/boot/Image ``` Run: ``` qemu-system-riscv64 -M spike -m 256M -nographic \ - -kernel build/platform/spike/firmware/fw_payload.elf \ + -kernel build/platform/generic/firmware/fw_payload.elf \ -initrd <path_to_cpio_ramdisk> \ -append "root=/dev/ram rw console=hvc0 earlycon=sbi" ``` or ``` qemu-system-riscv64 -M spike -m 256M -nographic \ - -bios build/platform/spike/firmware/fw_jump.elf \ + -bios build/platform/generic/firmware/fw_jump.elf \ -kernel <linux_build_directory>/arch/riscv/boot/Image \ -initrd <path_to_cpio_ramdisk> \ -append "root=/dev/ram rw console=hvc0 earlycon=sbi" diff --git a/platform/spike/config.mk b/platform/spike/config.mk deleted file mode 100644 index 4bde3fd..0000000 --- a/platform/spike/config.mk +++ /dev/null @@ -1,36 +0,0 @@ -# -# SPDX-License-Identifier: BSD-2-Clause -# -# Copyright (c) 2020 Western Digital Corporation or its affiliates. -# - -# Compiler flags -platform-cppflags-y = -platform-cflags-y = -platform-asflags-y = -platform-ldflags-y = - -# Command for platform specific "make run" -platform-runcmd = spike \ - $(build_dir)/platform/spike/firmware/fw_payload.elf - -# Blobs to build -FW_TEXT_START=0x80000000 -FW_JUMP=y -ifeq ($(PLATFORM_RISCV_XLEN), 32) - # This needs to be 4MB aligned for 32-bit system - FW_JUMP_ADDR=0x80400000 -else - # This needs to be 2MB aligned for 64-bit system - FW_JUMP_ADDR=0x80200000 -endif -FW_JUMP_FDT_ADDR=0x82200000 -FW_PAYLOAD=y -ifeq ($(PLATFORM_RISCV_XLEN), 32) - # This needs to be 4MB aligned for 32-bit system - FW_PAYLOAD_OFFSET=0x400000 -else - # This needs to be 2MB aligned for 64-bit system - FW_PAYLOAD_OFFSET=0x200000 -endif -FW_PAYLOAD_FDT_ADDR=0x82200000 diff --git a/platform/spike/objects.mk b/platform/spike/objects.mk deleted file mode 100644 index 30a3c4f..0000000 --- a/platform/spike/objects.mk +++ /dev/null @@ -1,7 +0,0 @@ -# -# SPDX-License-Identifier: BSD-2-Clause -# -# Copyright (c) 2020 Western Digital Corporation or its affiliates. -# - -platform-objs-y += platform.o diff --git a/platform/spike/platform.c b/platform/spike/platform.c deleted file mode 100644 index 066720a..0000000 --- a/platform/spike/platform.c +++ /dev/null @@ -1,86 +0,0 @@ -/* - * SPDX-License-Identifier: BSD-2-Clause - * - * Copyright (c) 2020 Western Digital Corporation or its affiliates. - */ - -#include <sbi/sbi_platform.h> -#include <sbi_utils/sys/clint.h> -#include <sbi_utils/sys/htif.h> - -/* clang-format off */ - -#define SPIKE_HART_COUNT 8 - -#define SPIKE_CLINT_ADDR 0x2000000 - -/* clang-format on */ - -static int spike_final_init(bool cold_boot) -{ - return 0; -} - -static int spike_console_init(void) -{ - return 0; -} - -static int spike_irqchip_init(bool cold_boot) -{ - return 0; -} - -static int spike_ipi_init(bool cold_boot) -{ - int ret; - - if (cold_boot) { - ret = clint_cold_ipi_init(SPIKE_CLINT_ADDR, - SPIKE_HART_COUNT); - if (ret) - return ret; - } - - return clint_warm_ipi_init(); -} - -static int spike_timer_init(bool cold_boot) -{ - int rc; - - if (cold_boot) { - rc = clint_cold_timer_init(SPIKE_CLINT_ADDR, - SPIKE_HART_COUNT, TRUE); - if (rc) - return rc; - } - - return clint_warm_timer_init(); -} - -const struct sbi_platform_operations platform_ops = { - .final_init = spike_final_init, - .console_putc = htif_putc, - .console_getc = htif_getc, - .console_init = spike_console_init, - .irqchip_init = spike_irqchip_init, - .ipi_send = clint_ipi_send, - .ipi_clear = clint_ipi_clear, - .ipi_init = spike_ipi_init, - .timer_value = clint_timer_value, - .timer_event_stop = clint_timer_event_stop, - .timer_event_start = clint_timer_event_start, - .timer_init = spike_timer_init, - .system_reset = htif_system_reset -}; - -const struct sbi_platform platform = { - .opensbi_version = OPENSBI_VERSION, - .platform_version = SBI_PLATFORM_VERSION(0x0, 0x01), - .name = "Spike", - .features = SBI_PLATFORM_DEFAULT_FEATURES, - .hart_count = SPIKE_HART_COUNT, - .hart_stack_size = SBI_PLATFORM_DEFAULT_HART_STACK_SIZE, - .platform_ops_addr = (unsigned long)&platform_ops -}; diff --git a/scripts/create-binary-archive.sh b/scripts/create-binary-archive.sh index 32e53cf..c19af26 100755 --- a/scripts/create-binary-archive.sh +++ b/scripts/create-binary-archive.sh @@ -107,7 +107,6 @@ build_opensbi() { BUILD_PLATFORM_SUBDIR+=("fpga/openpiton") BUILD_PLATFORM_SUBDIR+=("andes/ae350") BUILD_PLATFORM_SUBDIR+=("thead/c910") - BUILD_PLATFORM_SUBDIR+=("spike") BUILD_PLATFORM_SUBDIR+=("generic") ;; *) |