From d55a93172d12fc3f7ab0495c31ecb8fbaa0e65cb Mon Sep 17 00:00:00 2001 From: Jiajie Chen Date: Sat, 27 Apr 2019 21:14:54 +0800 Subject: [PATCH 1/3] Use a patched version of opensbi fu540.elf --- tools/opensbi/README.md | 10 ++++------ tools/opensbi/fu540.elf | Bin 359536 -> 363424 bytes 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/tools/opensbi/README.md b/tools/opensbi/README.md index 2546f40..a992b69 100644 --- a/tools/opensbi/README.md +++ b/tools/opensbi/README.md @@ -2,14 +2,12 @@ These are binary release of OpenSBI on this [commit](https://github.com/riscv/opensbi/tree/194dbbe5a13dff2255411c26d249f3ad4ef42c0b) at 2019.04.15. -- fu540.elf: opensbi-0.3-rv64-bin/platform/sifive/fu540/firmware/fw_jump.elf - virt_rv32.elf: opensbi-0.3-rv32-bin/platform/qemu/virt/firmware/fw_jump.elf - virt_rv64.elf: opensbi-0.3-rv64-bin/platform/qemu/virt/firmware/fw_jump.elf -NOTE: The [official v0.3 release](https://github.com/riscv/opensbi/releases/tag/v0.3) has bug on serial interrupt. +NOTE: The [official v0.3 release](https://github.com/riscv/opensbi/releases/tag/v0.3) has bug on serial interrupt. Also, Rocket-Chip based CPUs (including SiFive Unleashed) seem to have unintended behavior on +For K210 & SiFive Unleashed: It needs some modification. The binary is from this [commit](https://github.com/rcore-os/opensbi/commit/a9638d092756975ceb50073d736a17cef439c7b6). - -For K210: It needs some modification. The binary is from this [commit](https://github.com/rcore-os/opensbi/commit/4400a1a7d40b5399b3e07b4bad9fd303885c8c16). - -* k210.elf: build/platform/kendryte/k210/firmware/fw_payload.elf \ No newline at end of file +* k210.elf: build/platform/kendryte/k210/firmware/fw_payload.elf +* fu540.elf: build/platform/sifive/fu540/firmware/fw_jump.elf diff --git a/tools/opensbi/fu540.elf b/tools/opensbi/fu540.elf index 4b76fae3fa3f33f996a051d197eba6b973d5bd53..5aeeb11873bd88053f51c519003f2dc1db4c6650 100755 GIT binary patch delta 94659 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 z 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 CnD;RN delta 95465 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 Date: Sat, 27 Apr 2019 23:01:44 +0800 Subject: [PATCH 2/3] Add initial support for Rocket Chip platform --- kernel/Cargo.toml | 1 + kernel/Makefile | 3 ++- kernel/src/arch/riscv32/memory.rs | 2 ++ kernel/src/arch/riscv32/mod.rs | 3 ++- 4 files changed, 7 insertions(+), 2 deletions(-) diff --git a/kernel/Cargo.toml b/kernel/Cargo.toml index 74a7eb4..9e9791e 100644 --- a/kernel/Cargo.toml +++ b/kernel/Cargo.toml @@ -24,6 +24,7 @@ default = ["sv39"] sv39 = [] board_u540 = ["sv39", "link_user"] board_k210 = ["sv39", "link_user"] +board_rocket_chip = ["sv39", "link_user"] # (for aarch64 RaspberryPi3) nographic = [] board_raspi3 = ["bcm2837", "link_user"] diff --git a/kernel/Makefile b/kernel/Makefile index edb5858..59fb48b 100644 --- a/kernel/Makefile +++ b/kernel/Makefile @@ -26,6 +26,7 @@ # | pc Only available on x86_64, run on real pc # | u540 Only available on riscv64, run on HiFive U540, use Sv39 # | k210 Only available on riscv64, run on K210, use Sv39 +# | rocket_chip Only available on riscv64, run on Rocket Chip, use Sv39 # | raspi3 Only available on aarch64, run on Raspberry Pi 3 Model B/B+ # pci_passthru = 0000:00:00.1 Only available on x86_64, passthrough the specified PCI device # init = /bin/ls Only available on riscv64, run specified program instead of user shell @@ -60,7 +61,7 @@ ifeq ($(arch), $(filter $(arch), aarch64 mipsel)) export SFSIMG = $(user_dir)/build/$(arch).img else # board is pc or qemu? -ifeq ($(board), $(filter $(board), pc u540 k210)) +ifeq ($(board), $(filter $(board), pc u540 k210 rocket_chip)) #link user img, so use original image export SFSIMG = $(user_dir)/build/$(arch).img else diff --git a/kernel/src/arch/riscv32/memory.rs b/kernel/src/arch/riscv32/memory.rs index ef0509b..314c7f2 100644 --- a/kernel/src/arch/riscv32/memory.rs +++ b/kernel/src/arch/riscv32/memory.rs @@ -92,6 +92,8 @@ fn remap_the_kernel(dtb: usize) { Linear::new(offset), "bss", ); + // TODO: dtb on rocket chip + #[cfg(not(feature = "board_rocket_chip"))] ms.push( dtb, dtb + super::consts::MAX_DTB_SIZE, diff --git a/kernel/src/arch/riscv32/mod.rs b/kernel/src/arch/riscv32/mod.rs index f05a082..75b7ccc 100644 --- a/kernel/src/arch/riscv32/mod.rs +++ b/kernel/src/arch/riscv32/mod.rs @@ -53,10 +53,11 @@ pub extern "C" fn rust_main(hartid: usize, device_tree_paddr: usize) -> ! { memory::init(device_tree_vaddr); timer::init(); // FIXME: init driver on u540 - #[cfg(not(feature = "board_u540"))] + #[cfg(not(any(feature = "board_u540", feature = "board_rocket_chip")))] crate::drivers::init(device_tree_vaddr); #[cfg(not(feature = "board_k210"))] unsafe { + #[cfg(not(feature = "board_rocket_chip"))] board::enable_serial_interrupt(); board::init_external_interrupt(); } From cd2c78dd46ec8c60b24aaec24aab7a729e478d8d Mon Sep 17 00:00:00 2001 From: Jiajie Chen Date: Sat, 27 Apr 2019 23:04:10 +0800 Subject: [PATCH 3/3] Add Rocket Chip platform in README --- README.md | 2 +- crate/memory/src/memory_set/mod.rs | 3 +- kernel/src/arch/riscv32/boot/linker64.ld | 49 ++++++++++++++++++++++++ 3 files changed, 52 insertions(+), 2 deletions(-) create mode 100644 kernel/src/arch/riscv32/boot/linker64.ld diff --git a/README.md b/README.md index 7c5d6bd..35f5a35 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ Going to be the next generation teaching operating system. Supported architectures: x86_64, RISCV32/64, AArch64, MIPS32 -Tested boards: QEMU, HiFive Unleashed, x86_64 PC (i5/i7), Raspberry Pi 3B+ +Tested boards: QEMU, HiFive Unleashed, x86_64 PC (i5/i7), Raspberry Pi 3B+, Kendryte K210 and FPGA running Rocket Chip ![demo](./docs/2_OSLab/os2atc/demo.png) diff --git a/crate/memory/src/memory_set/mod.rs b/crate/memory/src/memory_set/mod.rs index 94d8765..4f0f9a5 100644 --- a/crate/memory/src/memory_set/mod.rs +++ b/crate/memory/src/memory_set/mod.rs @@ -58,7 +58,8 @@ impl MemoryArea { fn check_read_array(&self, ptr: *const S, count: usize) -> bool { // page align ptr as usize >= Page::of_addr(self.start_addr).start_address() - && unsafe { ptr.add(count) as usize } < Page::of_addr(self.end_addr + PAGE_SIZE - 1).start_address() + && unsafe { ptr.add(count) as usize } + < Page::of_addr(self.end_addr + PAGE_SIZE - 1).start_address() } /// Check the array is within the writable memory fn check_write_array(&self, ptr: *mut S, count: usize) -> bool { diff --git a/kernel/src/arch/riscv32/boot/linker64.ld b/kernel/src/arch/riscv32/boot/linker64.ld new file mode 100644 index 0000000..87ca826 --- /dev/null +++ b/kernel/src/arch/riscv32/boot/linker64.ld @@ -0,0 +1,49 @@ +/* Copy from bbl-ucore : https://ring00.github.io/bbl-ucore */ + +/* Simple linker script for the ucore kernel. + See the GNU ld 'info' manual ("info ld") to learn the syntax. */ + +OUTPUT_ARCH(riscv) +ENTRY(_start) + +BASE_ADDRESS = 0xffffffffc0200000; + +SECTIONS +{ + /* Load the kernel at this address: "." means the current address */ + . = BASE_ADDRESS; + start = .; + + .text : { + stext = .; + *(.text.entry) + *(.text .text.*) + . = ALIGN(4K); + etext = .; + } + + .rodata : { + srodata = .; + *(.rodata .rodata.*) + . = ALIGN(4K); + erodata = .; + } + + .data : { + sdata = .; + *(.data .data.*) + edata = .; + } + + .stack : { + *(.bss.stack) + } + + .bss : { + sbss = .; + *(.bss .bss.*) + ebss = .; + } + + PROVIDE(end = .); +}