Skip to content

Commit f63a417

Browse files
committed
feat: adapt for new cargo-byteos
1 parent a063585 commit f63a417

File tree

2 files changed

+18
-40
lines changed

2 files changed

+18
-40
lines changed

Makefile

Lines changed: 10 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,16 @@
11
SHELL := /bin/bash
2+
ARCH := riscv64
3+
BOARD:= qemu
4+
byteos = $(shell byteos $(1) byteos.toml $(ARCH)-$(BOARD) $(2))
5+
byteos_config = $(call byteos,config,get_cfg $(1))
6+
byteos_env = $(call byteos,config,get_env $(1))
27
NVME := off
38
NET := off
4-
ARCH := riscv64
59
LOG := error
6-
BOARD:= qemu
710
RELEASE := release
811
QEMU_EXEC ?=
9-
BUILD_ARGS :=
1012
GDB ?= gdb-multiarch
11-
MOUNT_IMG_PATH ?= $(shell pwd)/mount.img
12-
ROOT_FS := fat32
13+
ROOT_FS := $(call byteos_config,root_fs)
1314

1415
BUS := device
1516
ifeq ($(ARCH), x86_64)
@@ -34,7 +35,6 @@ else ifeq ($(ARCH), aarch64)
3435
else ifeq ($(ARCH), loongarch64)
3536
TARGET := loongarch64-unknown-none
3637
QEMU_EXEC += qemu-system-$(ARCH) -kernel $(KERNEL_ELF)
37-
BUILD_ARGS += -Z build-std
3838
BUS := pci
3939
else
4040
$(error "ARCH" must be one of "x86_64", "riscv64", "aarch64" or "loongarch64")
@@ -54,9 +54,6 @@ QEMU_EXEC += -m 128M\
5454
-smp 1 \
5555
-D qemu.log -d in_asm,int,pcall,cpu_reset,guest_errors
5656

57-
ifeq ($(RELEASE), release)
58-
BUILD_ARGS += --release
59-
endif
6057
TESTCASE := testcase-$(ARCH)
6158
ifeq ($(NVME), on)
6259
QEMU_EXEC += -drive file=$(FS_IMG),if=none,id=nvm \
@@ -78,38 +75,32 @@ features += k210
7875
endif
7976

8077
all: build
81-
8278
offline:
8379
RUST_BACKTRACE=1 LOG=$(LOG) cargo build $(BUILD_ARGS) --features "$(features)" --offline
8480
#cp $(SBI) sbi-qemu
8581
#cp $(KERNEL_ELF) kernel-qemu
8682
rust-objcopy --binary-architecture=riscv64 $(KERNEL_ELF) --strip-all -O binary os.bin
8783

8884
fs-img:
89-
ifeq ($(ROOT_FS), fat32)
85+
@echo "ROOT_FS: $(ROOT_FS)"
9086
rm -f $(FS_IMG)
9187
dd if=/dev/zero of=$(FS_IMG) bs=1M count=128
88+
sync
89+
ifeq ($(ROOT_FS), fat32)
9290
mkfs.vfat -F 32 $(FS_IMG)
9391
mkdir mount/ -p
9492
sudo mount $(FS_IMG) mount/ -o uid=1000,gid=1000
9593
sudo rm -rf mount/*
96-
sudo cp -rf tools/$(TESTCASE)/* mount/
97-
sudo chmod 777 $(FS_IMG)
98-
sync
99-
sudo umount $(FS_IMG)
10094
else ifeq ($(ROOT_FS), ext4)
101-
rm -f $(FS_IMG)
102-
dd if=/dev/zero of=$(FS_IMG) bs=1M count=128
10395
mkfs.ext4 -F -O ^metadata_csum_seed $(FS_IMG)
10496
mkdir mount/ -p
10597
sudo mount $(FS_IMG) mount/
98+
endif
10699
sudo cp -rf tools/$(TESTCASE)/* mount/
107100
sync
108101
sudo umount $(FS_IMG)
109-
endif
110102

111103
build:
112-
#RUST_BACKTRACE=1 LOG=$(LOG) MOUNT_IMG_PATH=$(MOUNT_IMG_PATH) cargo build --target $(TARGET) $(BUILD_ARGS) --features "$(features)"
113104
byteos build byteos.toml $(ARCH)-$(BOARD)
114105
rust-objcopy --binary-architecture=$(ARCH) $(KERNEL_ELF) --strip-all -O binary $(KERNEL_BIN)
115106

byteos.toml

Lines changed: 8 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,49 +1,36 @@
11
# build for riscv64-qemu
2+
[global.configs]
3+
board = "qemu"
4+
root_fs = "fat32"
5+
6+
[global.env]
7+
HEAP_SIZE = "0x0180_0000"
8+
MOUNT_IMG_PATH = "mount.img"
9+
210
[bin.riscv64-qemu]
311
target = "riscv64gc-unknown-none-elf"
412
[bin.riscv64-qemu.configs]
5-
board = "qemu"
613
driver = "kvirtio,kgoldfish-rtc,ns16550a"
7-
root_fs = "ext4"
8-
9-
[bin.riscv64-qemu.env]
10-
HEAP_SIZE = "0x0180_0000"
11-
MOUNT_IMG_PATH = "mount.img"
1214

1315
# build for x86_64-qemu
1416
[bin.x86_64-qemu]
1517
target = "x86_64-unknown-none"
1618
[bin.x86_64-qemu.configs]
17-
board = "qemu"
1819
driver = "kvirtio,kgoldfish-rtc,ns16550a"
1920
root_fs = "ext4"
2021

21-
[bin.x86_64-qemu.env]
22-
HEAP_SIZE = "0x0180_0000"
23-
MOUNT_IMG_PATH = "mount.img"
24-
2522
# build for aarch64-qemu
2623
[bin.aarch64-qemu]
2724
target = "aarch64-unknown-none-softfloat"
2825
[bin.aarch64-qemu.configs]
29-
board = "qemu"
3026
driver = "kvirtio,kgoldfish-rtc,ns16550a"
31-
root_fs = "fat32"
32-
33-
[bin.aarch64-qemu.env]
34-
HEAP_SIZE = "0x0180_0000"
35-
MOUNT_IMG_PATH = "mount.img"
3627

3728
# build for loongarch64-qemu
3829
[bin.loongarch64-qemu]
3930
target = "loongarch64-unknown-none"
4031
build_std = true
4132
[bin.loongarch64-qemu.configs]
42-
board = "qemu"
4333
driver = "kramdisk"
44-
root_fs = "ext4"
4534

4635
[bin.loongarch64-qemu.env]
47-
HEAP_SIZE = "0x0180_0000"
4836
CARGO_CFG_DRIVER = "kramdisk"
49-
MOUNT_IMG_PATH = "mount.img"

0 commit comments

Comments
 (0)