Add "make qemu", which runs a QEMU-based system
This currently has support for a virtio disk, and the Makefiles will create an empty one for you.
This commit is contained in:
parent
3765145708
commit
86de0ac05a
27
Makefile
27
Makefile
@ -40,6 +40,12 @@ spike_srcdir := $(srcdir)/riscv-isa-sim
|
||||
spike_wrkdir := $(wrkdir)/riscv-isa-sim
|
||||
spike := $(spike_wrkdir)/prefix/bin/spike
|
||||
|
||||
qemu_srcdir := $(srcdir)/riscv-qemu
|
||||
qemu_wrkdir := $(wrkdir)/riscv-qemu
|
||||
qemu := $(qemu_wrkdir)/prefix/bin/qemu-system-riscv64
|
||||
|
||||
rootfs := $(wrkdir)/rootfs.bin
|
||||
|
||||
target := riscv64-unknown-linux-gnu
|
||||
|
||||
.PHONY: all
|
||||
@ -110,7 +116,7 @@ $(bbl): $(pk_srcdir) $(vmlinux_stripped)
|
||||
cd $(pk_wrkdir) && $</configure \
|
||||
--host=$(target) \
|
||||
--with-payload=$(vmlinux_stripped) \
|
||||
--enable-logo \
|
||||
--enable-logo --enable-print-device-tree \
|
||||
--with-logo=$(abspath conf/sifive_logo.txt)
|
||||
CFLAGS="-mabi=$(ABI) -march=$(ISA)" $(MAKE) -C $(pk_wrkdir)
|
||||
|
||||
@ -141,6 +147,21 @@ $(spike): $(spike_srcdir) $(libfesvr)
|
||||
$(MAKE) -C $(spike_wrkdir) install
|
||||
touch -c $@
|
||||
|
||||
$(qemu): $(qemu_srcdir)
|
||||
rm -rf $(qemu_wrkdir)
|
||||
mkdir -p $(qemu_wrkdir)
|
||||
mkdir -p $(dir $@)
|
||||
cd $(qemu_wrkdir) && $</configure \
|
||||
--prefix=$(dir $(abspath $(dir $@))) \
|
||||
--target-list=riscv64-softmmu
|
||||
$(MAKE) -C $(qemu_wrkdir)
|
||||
$(MAKE) -C $(qemu_wrkdir) install
|
||||
touch -c $@
|
||||
|
||||
$(rootfs):
|
||||
truncate --size=1G $@
|
||||
mkfs.ext4 $@
|
||||
|
||||
.PHONY: sysroot vmlinux bbl
|
||||
sysroot: $(sysroot)
|
||||
vmlinux: $(vmlinux)
|
||||
@ -153,3 +174,7 @@ clean:
|
||||
.PHONY: sim
|
||||
sim: $(spike) $(bbl)
|
||||
$(spike) --isa=$(ISA) -p4 $(bbl)
|
||||
|
||||
.PHONY: qemu
|
||||
qemu: $(qemu) $(bbl) $(rootfs)
|
||||
$(qemu) -nographic -machine virt -kernel $(bbl) -drive file=$(rootfs),format=raw,id=hd0 -device virtio-blk-device,drive=hd0
|
||||
|
@ -30,6 +30,7 @@ CONFIG_INET=y
|
||||
CONFIG_DEVTMPFS=y
|
||||
CONFIG_DEVTMPFS_MOUNT=y
|
||||
# CONFIG_FIRMWARE_IN_KERNEL is not set
|
||||
CONFIG_VIRTIO_BLK=y
|
||||
CONFIG_BLK_DEV_SD=y
|
||||
CONFIG_ATA=y
|
||||
CONFIG_SATA_AHCI=y
|
||||
@ -46,6 +47,7 @@ CONFIG_USB=y
|
||||
CONFIG_USB_XHCI_HCD=y
|
||||
CONFIG_USB_EHCI_HCD=y
|
||||
CONFIG_USB_STORAGE=y
|
||||
CONFIG_VIRTIO_MMIO=y
|
||||
# CONFIG_IOMMU_SUPPORT is not set
|
||||
CONFIG_EXT3_FS=y
|
||||
# CONFIG_FILE_LOCKING is not set
|
||||
|
@ -1 +1 @@
|
||||
Subproject commit 2ab905517f367c4ac60603080c4d9abec658a647
|
||||
Subproject commit cd2c21d70361f6887e265860c4f0dbb49ad323ca
|
Loading…
Reference in New Issue
Block a user