feat(adapter-riscv): load init from VirtIO block device with FAT16 filesystem
Adapter probes for VirtIO block device, reads init.elf from FAT16 disk, parses ELF, maps into userspace, and launches. Falls back to embedded minimal init if no disk is present. Also: VirtIO MMIO driver, boot FAT16 reader, disk image build script, Makefile targets for build/run/run-disk.
This commit is contained in:
45
Makefile
Normal file
45
Makefile
Normal file
@@ -0,0 +1,45 @@
|
||||
.PHONY: check fmt clippy test kani build all image run
|
||||
|
||||
RISCV_TARGET = riscv64gc-unknown-none-elf
|
||||
KERNEL_BIN = target/$(RISCV_TARGET)/release/adapter-riscv
|
||||
|
||||
all: check fmt clippy test
|
||||
|
||||
check:
|
||||
cargo check --workspace
|
||||
|
||||
fmt:
|
||||
cargo fmt --all -- --check
|
||||
|
||||
clippy:
|
||||
cargo clippy --workspace -- -D warnings
|
||||
|
||||
test:
|
||||
cargo test --workspace
|
||||
|
||||
kani-types:
|
||||
cargo kani -p types
|
||||
|
||||
kani-domain:
|
||||
cargo kani -p domain
|
||||
|
||||
kani-kernel:
|
||||
cargo kani -p kernel
|
||||
|
||||
kani: kani-types kani-domain kani-kernel
|
||||
|
||||
build:
|
||||
cargo build -p adapter-riscv --target $(RISCV_TARGET) --release
|
||||
|
||||
image: build
|
||||
scripts/make-disk-image.sh
|
||||
|
||||
run: build
|
||||
qemu-system-riscv64 -machine virt -nographic -bios default \
|
||||
-kernel $(KERNEL_BIN)
|
||||
|
||||
run-disk: image
|
||||
qemu-system-riscv64 -machine virt -nographic -bios default \
|
||||
-kernel $(KERNEL_BIN) \
|
||||
-drive file=boot.img,format=raw,id=hd0 \
|
||||
-device virtio-blk-device,drive=hd0
|
||||
Reference in New Issue
Block a user