@@ -55,6 +55,8 @@ LIBS := -lmicrokit -Tmicrokit.ld
5555
5656IMAGE_FILE = $(BUILD_DIR ) /loader.img
5757REPORT_FILE = $(BUILD_DIR ) /report.txt
58+ SPEC = $(BUILD_DIR ) /capdl_spec.json
59+ KERNEL_32B = $(BUILD_DIR ) /sel4_32.elf
5860
5961all : $(IMAGE_FILE )
6062
@@ -67,5 +69,34 @@ $(BUILD_DIR)/%.o: %.c Makefile | $(BUILD_DIR)
6769$(BUILD_DIR ) /% .elf : $(BUILD_DIR ) /% .o
6870 $(LD ) $(LDFLAGS ) $^ $(LIBS ) -o $@
6971
70- $(IMAGE_FILE ) $(REPORT_FILE ) : $(addprefix $(BUILD_DIR ) /, $(IMAGES ) ) cap_sharing.system
71- $(MICROKIT_TOOL ) cap_sharing.system --search-path $(BUILD_DIR ) --board $(MICROKIT_BOARD ) --config $(MICROKIT_CONFIG ) -o $(IMAGE_FILE ) -r $(REPORT_FILE )
72+ $(IMAGE_FILE ) $(KERNEL_32B ) $(REPORT_FILE ) : $(addprefix $(BUILD_DIR ) /, $(IMAGES ) ) cap_sharing.system
73+ $(MICROKIT_TOOL ) cap_sharing.system --search-path $(BUILD_DIR ) --board $(MICROKIT_BOARD ) --config $(MICROKIT_CONFIG ) -o $(IMAGE_FILE ) -r $(REPORT_FILE ) --capdl-json $(SPEC )
74+
75+ ifeq ($(ARCH ) ,x86_64)
76+ qemu : $(KERNEL_32B ) $(IMAGE_FILE )
77+ qemu-system-x86_64 \
78+ -cpu qemu64,+fsgsbase,+pdpe1gb,+xsaveopt,+xsave \
79+ -m " 1G" \
80+ -display none \
81+ -serial mon:stdio \
82+ -kernel $(KERNEL_32B ) \
83+ -initrd $(IMAGE_FILE )
84+ else ifeq ($(ARCH),aarch64)
85+ qemu : $(IMAGE_FILE )
86+ qemu-system-aarch64 \
87+ -machine virt,virtualization=on -cpu cortex-a53 \
88+ -nographic \
89+ -m size=2G \
90+ -serial mon:stdio \
91+ -device loader,file=$(IMAGE_FILE ) ,addr=0x70000000,cpu-num=0
92+ else ifeq ($(ARCH),riscv64)
93+ qemu : $(IMAGE_FILE )
94+ qemu-system-riscv64 \
95+ -machine virt \
96+ -kernel $(IMAGE_FILE ) \
97+ -nographic \
98+ -m size=2G \
99+ -serial mon:stdio
100+ else
101+ $(error Unsupported ARCH)
102+ endif
0 commit comments