Skip to content

Commit b68bb06

Browse files
committed
example: add rules for QEMU tests in Makefile
This adds rules for QEMU tests on x86 and enables the 'capdl_spec.json' file generation for analysis. Signed-off-by: Terry Bai <tianyi.bai@unsw.edu.au>
1 parent 2ae2c19 commit b68bb06

1 file changed

Lines changed: 33 additions & 2 deletions

File tree

example/cap_sharing/Makefile

Lines changed: 33 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,8 @@ LIBS := -lmicrokit -Tmicrokit.ld
5555

5656
IMAGE_FILE = $(BUILD_DIR)/loader.img
5757
REPORT_FILE = $(BUILD_DIR)/report.txt
58+
SPEC = $(BUILD_DIR)/capdl_spec.json
59+
KERNEL_32B = $(BUILD_DIR)/sel4_32.elf
5860

5961
all: $(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

Comments
 (0)