@@ -5,30 +5,20 @@ KERNEL_ELF := target/$(TARGET)/$(MODE)/os
55KERNEL_BIN := $(KERNEL_ELF ) .bin
66DISASM_TMP := target/$(TARGET ) /$(MODE ) /asm
77FS_IMG := ../user/target/$(TARGET ) /$(MODE ) /fs.img
8- SDCARD := /dev/sdb
98APPS := ../user/src/bin/*
109
1110# BOARD
12- BOARD ? = qemu
11+ BOARD : = qemu
1312SBI ?= rustsbi
1413BOOTLOADER := ../bootloader/$(SBI ) -$(BOARD ) .bin
15- K210_BOOTLOADER_SIZE := 131072
1614
1715# Building mode argument
1816ifeq ($(MODE ) , release)
1917 MODE_ARG := --release
2018endif
2119
2220# KERNEL ENTRY
23- ifeq ($(BOARD ) , qemu)
24- KERNEL_ENTRY_PA := 0x80200000
25- else ifeq ($(BOARD), k210)
26- KERNEL_ENTRY_PA := 0x80020000
27- endif
28-
29- # Run K210
30- K210-SERIALPORT = /dev/ttyUSB0
31- K210-BURNER = ../tools/kflash.py
21+ KERNEL_ENTRY_PA := 0x80200000
3222
3323# Binutils
3424OBJDUMP := rust-objdump --arch-name=riscv64
@@ -40,26 +30,14 @@ DISASM ?= -x
4030# Run usertests or usershell
4131TEST ?=
4232
43- build : env switch-check $(KERNEL_BIN ) fs-img
44-
45- switch-check :
46- ifeq ($(BOARD ) , qemu)
47- (which last-qemu) || (rm -f last-k210 && touch last-qemu && make clean)
48- else ifeq ($(BOARD), k210)
49- (which last-k210) || (rm -f last-qemu && touch last-k210 && make clean)
50- endif
33+ build : env $(KERNEL_BIN ) fs-img
5134
5235env :
5336 (rustup target list | grep " riscv64gc-unknown-none-elf (installed)" ) || rustup target add $(TARGET )
5437 cargo install cargo-binutils
5538 rustup component add rust-src
5639 rustup component add llvm-tools-preview
5740
58- sdcard : fs-img
59- @echo " Are you sure write to $( SDCARD) ? [y/N] " && read ans && [ $$ {ans:-N} = y ]
60- @sudo dd if=/dev/zero of=$(SDCARD ) bs=1048576 count=32
61- @sudo dd if=$(FS_IMG ) of=$(SDCARD )
62-
6341$(KERNEL_BIN ) : kernel
6442 @$(OBJCOPY ) $(KERNEL_ELF ) --strip-all -O binary $@
6543
@@ -73,7 +51,7 @@ $(APPS):
7351kernel :
7452 @echo Platform: $(BOARD )
7553 @cp src/linker-$(BOARD ) .ld src/linker.ld
76- @cargo build --release --features " board_ $( BOARD ) "
54+ @cargo build --release
7755 @rm src/linker.ld
7856
7957clean :
@@ -105,7 +83,6 @@ ifeq ($(BOARD),qemu)
10583endif
10684
10785run-inner : build
108- ifeq ($(BOARD ) ,qemu)
10986 @qemu-system-riscv64 \
11087 -M 128m \
11188 -machine virt \
@@ -118,15 +95,6 @@ ifeq ($(BOARD),qemu)
11895 -device virtio-keyboard-device \
11996 -device virtio-mouse-device \
12097 -serial stdio
121- else
122- (which $(K210-BURNER)) || (cd .. && git clone https://github.com/sipeed/kflash.py.git && mv kflash.py tools)
123- @cp $(BOOTLOADER) $(BOOTLOADER).copy
124- @dd if=$(KERNEL_BIN) of=$(BOOTLOADER).copy bs=$(K210_BOOTLOADER_SIZE) seek=1
125- @mv $(BOOTLOADER).copy $(KERNEL_BIN)
126- @sudo chmod 777 $(K210-SERIALPORT)
127- python3 $(K210-BURNER) -p $(K210-SERIALPORT) -b 1500000 $(KERNEL_BIN)
128- python3 -m serial.tools.miniterm --eol LF --dtr 0 --rts 0 --filter direct $(K210-SERIALPORT) 115200
129- endif
13098
13199debug : build
132100 @tmux new-session -d \
@@ -141,4 +109,4 @@ gdbserver: build
141109gdbclient :
142110 @riscv64-unknown-elf-gdb -ex ' file $(KERNEL_ELF)' -ex ' set arch riscv:rv64' -ex ' target remote localhost:1234'
143111
144- .PHONY : build env kernel clean disasm disasm-vim run-inner switch-check fs-img gdbserver gdbclient
112+ .PHONY : build env kernel clean disasm disasm-vim run-inner fs-img gdbserver gdbclient
0 commit comments