diff --git a/bootloader/rustsbi-k210.bin b/bootloader/rustsbi-k210.bin deleted file mode 100755 index c53ed1fc198816f8d4a0cfec958eaae3f2976cd0..0000000000000000000000000000000000000000 Binary files a/bootloader/rustsbi-k210.bin and /dev/null differ diff --git a/os/Makefile b/os/Makefile index d56bf6b4cc378a9f36d87b072a38dcd6ae996453..21b9614053e72940bca05e7cf28f404796b6192d 100644 --- a/os/Makefile +++ b/os/Makefile @@ -6,10 +6,9 @@ KERNEL_BIN := $(KERNEL_ELF).bin DISASM_TMP := target/$(TARGET)/$(MODE)/asm # BOARD -BOARD ?= qemu +BOARD := qemu SBI ?= rustsbi BOOTLOADER := ../bootloader/$(SBI)-$(BOARD).bin -K210_BOOTLOADER_SIZE := 131072 # Building mode argument ifeq ($(MODE), release) @@ -17,15 +16,7 @@ ifeq ($(MODE), release) endif # KERNEL ENTRY -ifeq ($(BOARD), qemu) - KERNEL_ENTRY_PA := 0x80200000 -else ifeq ($(BOARD), k210) - KERNEL_ENTRY_PA := 0x80020000 -endif - -# Run K210 -K210-SERIALPORT = /dev/ttyUSB0 -K210-BURNER = ../tools/kflash.py +KERNEL_ENTRY_PA := 0x80200000 # Binutils OBJDUMP := rust-objdump --arch-name=riscv64 @@ -34,14 +25,7 @@ OBJCOPY := rust-objcopy --binary-architecture=riscv64 # Disassembly DISASM ?= -x -build: env switch-check $(KERNEL_BIN) - -switch-check: -ifeq ($(BOARD), qemu) - (which last-qemu) || (rm -f last-k210 && touch last-qemu && make clean) -else ifeq ($(BOARD), k210) - (which last-k210) || (rm -f last-qemu && touch last-k210 && make clean) -endif +build: env $(KERNEL_BIN) env: (rustup target list | grep "riscv64gc-unknown-none-elf (installed)") || rustup target add $(TARGET) @@ -56,7 +40,7 @@ kernel: @cd ../user && make build @echo Platform: $(BOARD) @cp src/linker-$(BOARD).ld src/linker.ld - @cargo build $(MODE_ARG) --features "board_$(BOARD)" + @cargo build $(MODE_ARG) @rm src/linker.ld clean: @@ -75,21 +59,11 @@ run: run-inner run-inner: build -ifeq ($(BOARD),qemu) @qemu-system-riscv64 \ -machine virt \ -nographic \ -bios $(BOOTLOADER) \ -device loader,file=$(KERNEL_BIN),addr=$(KERNEL_ENTRY_PA) -else - (which $(K210-BURNER)) || (cd .. && git clone https://github.com/sipeed/kflash.py.git && mv kflash.py tools) - @cp $(BOOTLOADER) $(BOOTLOADER).copy - @dd if=$(KERNEL_BIN) of=$(BOOTLOADER).copy bs=$(K210_BOOTLOADER_SIZE) seek=1 - @mv $(BOOTLOADER).copy $(KERNEL_BIN) - @sudo chmod 777 $(K210-SERIALPORT) - python3 $(K210-BURNER) -p $(K210-SERIALPORT) -b 1500000 $(KERNEL_BIN) - python3 -m serial.tools.miniterm --eol LF --dtr 0 --rts 0 --filter direct $(K210-SERIALPORT) 115200 -endif debug: build @tmux new-session -d \ @@ -103,4 +77,4 @@ gdbserver: build gdbclient: @riscv64-unknown-elf-gdb -ex 'file $(KERNEL_ELF)' -ex 'set arch riscv:rv64' -ex 'target remote localhost:1234' -.PHONY: build env kernel clean disasm disasm-vim run-inner switch-check gdbserver gdbclient +.PHONY: build env kernel clean disasm disasm-vim run-inner gdbserver gdbclient diff --git a/os/src/linker-k210.ld b/os/src/linker-k210.ld deleted file mode 100644 index 2ef74ca0ad1934e14e53aacdc4236fd9f3942036..0000000000000000000000000000000000000000 --- a/os/src/linker-k210.ld +++ /dev/null @@ -1,48 +0,0 @@ -OUTPUT_ARCH(riscv) -ENTRY(_start) -BASE_ADDRESS = 0x80020000; - -SECTIONS -{ - . = BASE_ADDRESS; - skernel = .; - - stext = .; - .text : { - *(.text.entry) - *(.text .text.*) - } - - . = ALIGN(4K); - etext = .; - srodata = .; - .rodata : { - *(.rodata .rodata.*) - *(.srodata .srodata.*) - } - - . = ALIGN(4K); - erodata = .; - sdata = .; - .data : { - *(.data .data.*) - *(.sdata .sdata.*) - } - - . = ALIGN(4K); - edata = .; - .bss : { - *(.bss.stack) - sbss = .; - *(.bss .bss.*) - *(.sbss .sbss.*) - } - - . = ALIGN(4K); - ebss = .; - ekernel = .; - - /DISCARD/ : { - *(.eh_frame) - } -} \ No newline at end of file diff --git a/os/src/sbi.rs b/os/src/sbi.rs index bda8034d4ff28dbc588d591dbe947fb0806b7e60..9739e3b9ca07a54cc8651281e09c234f53168dc9 100644 --- a/os/src/sbi.rs +++ b/os/src/sbi.rs @@ -5,14 +5,13 @@ use core::arch::asm; const SBI_SET_TIMER: usize = 0; const SBI_CONSOLE_PUTCHAR: usize = 1; -#[cfg(feature = "board_k210")] -const SBI_SHUTDOWN: usize = 8; // const SBI_CONSOLE_GETCHAR: usize = 2; // const SBI_CLEAR_IPI: usize = 3; // const SBI_SEND_IPI: usize = 4; // const SBI_REMOTE_FENCE_I: usize = 5; // const SBI_REMOTE_SFENCE_VMA: usize = 6; // const SBI_REMOTE_SFENCE_VMA_ASID: usize = 7; +// const SBI_SHUTDOWN: usize = 8; /// handle SBI call with `which` SBI_id and other arguments #[inline(always)] @@ -46,16 +45,8 @@ pub fn console_putchar(c: usize) { // sbi_call(SBI_CONSOLE_GETCHAR, 0, 0, 0) // } -#[cfg(feature = "board_qemu")] use crate::board::QEMUExit; /// use sbi call to shutdown the kernel pub fn shutdown() -> ! { - #[cfg(feature = "board_k210")] - sbi_call(SBI_SHUTDOWN, 0, 0, 0); - - #[cfg(feature = "board_qemu")] crate::board::QEMU_EXIT_HANDLE.exit_failure(); - - #[cfg(feature = "board_k210")] - panic!("It should shutdown!"); } diff --git a/os/src/task/mod.rs b/os/src/task/mod.rs index d3e7b0f0bc1ea0cc188ae8be6a2cdba078ba0548..860fecaf13a7933f92433fe55169972cb038a8b6 100644 --- a/os/src/task/mod.rs +++ b/os/src/task/mod.rs @@ -134,14 +134,8 @@ impl TaskManager { // go back to user mode } else { println!("All applications completed!"); - - #[cfg(feature = "board_qemu")] use crate::board::QEMUExit; - #[cfg(feature = "board_qemu")] crate::board::QEMU_EXIT_HANDLE.exit_success(); - - #[cfg(feature = "board_k210")] - panic!("All applications completed!"); } } }