diff options
Diffstat (limited to 'meta/conf/machine/include/riscv')
-rw-r--r-- | meta/conf/machine/include/riscv/arch-riscv.inc | 10 | ||||
-rw-r--r-- | meta/conf/machine/include/riscv/qemuriscv.inc | 45 | ||||
-rw-r--r-- | meta/conf/machine/include/riscv/tune-riscv.inc | 19 |
3 files changed, 74 insertions, 0 deletions
diff --git a/meta/conf/machine/include/riscv/arch-riscv.inc b/meta/conf/machine/include/riscv/arch-riscv.inc new file mode 100644 index 0000000000..19f8f3e211 --- /dev/null +++ b/meta/conf/machine/include/riscv/arch-riscv.inc | |||
@@ -0,0 +1,10 @@ | |||
1 | # RISCV Architecture definition | ||
2 | |||
3 | DEFAULTTUNE ?= "riscv64" | ||
4 | |||
5 | TUNE_ARCH = "${TUNE_ARCH_tune-${DEFAULTTUNE}}" | ||
6 | TUNE_PKGARCH = "${TUNE_PKGARCH_tune-${DEFAULTTUNE}}" | ||
7 | TUNE_CCARGS .= "" | ||
8 | |||
9 | # QEMU usermode fails with invalid instruction error (For riscv32) | ||
10 | MACHINE_FEATURES_BACKFILL_CONSIDERED_append = "${@bb.utils.contains('TUNE_FEATURES', 'riscv32', ' qemu-usermode', '', d)}" | ||
diff --git a/meta/conf/machine/include/riscv/qemuriscv.inc b/meta/conf/machine/include/riscv/qemuriscv.inc new file mode 100644 index 0000000000..aa1eba77da --- /dev/null +++ b/meta/conf/machine/include/riscv/qemuriscv.inc | |||
@@ -0,0 +1,45 @@ | |||
1 | PREFERRED_PROVIDER_virtual/bootloader ?= "u-boot" | ||
2 | |||
3 | require conf/machine/include/qemu.inc | ||
4 | require conf/machine/include/riscv/tune-riscv.inc | ||
5 | |||
6 | MACHINE_FEATURES = "screen keyboard ext2 ext3 serial" | ||
7 | |||
8 | KERNEL_IMAGETYPE = "Image" | ||
9 | |||
10 | SERIAL_CONSOLES ?= "115200;ttyS0 115200;hvc0" | ||
11 | |||
12 | IMAGE_FSTYPES_append = " ext4" | ||
13 | |||
14 | MACHINE_EXTRA_RRECOMMENDS += " kernel-modules" | ||
15 | |||
16 | EXTRA_IMAGEDEPENDS += "opensbi" | ||
17 | RISCV_SBI_PLAT ?= "qemu/virt" | ||
18 | RISCV_SBI_PAYLOAD ?= "${KERNEL_IMAGETYPE}-${MACHINE}.bin" | ||
19 | |||
20 | # qemuboot options | ||
21 | QB_KERNEL_CMDLINE_APPEND = "earlycon=sbi" | ||
22 | QB_MEM = "-m 512" | ||
23 | QB_MACHINE = "-machine virt" | ||
24 | QB_DEFAULT_KERNEL = "fw_jump.elf" | ||
25 | QB_TAP_OPT = "-netdev tap,id=net0,ifname=@TAP@,script=no,downscript=no" | ||
26 | QB_NETWORK_DEVICE = "-device virtio-net-device,netdev=net0,mac=@MAC@" | ||
27 | QB_ROOTFS_OPT = "-drive id=disk0,file=@ROOTFS@,if=none,format=raw -device virtio-blk-device,drive=disk0" | ||
28 | QB_SERIAL_OPT = "-device virtio-serial-device -chardev null,id=virtcon -device virtconsole,chardev=virtcon" | ||
29 | QB_TCPSERIAL_OPT = " -device virtio-serial-device -chardev socket,id=virtcon,port=@PORT@,host=127.0.0.1 -device virtconsole,chardev=virtcon" | ||
30 | # Add the 'virtio-rng-pci' device otherwise the guest may run out of entropy | ||
31 | QB_OPT_APPEND = " -object rng-random,filename=/dev/urandom,id=rng0 -device virtio-rng-device,rng=rng0" | ||
32 | |||
33 | BAD_RECOMMENDATIONS += "\ | ||
34 | libcxx-dev \ | ||
35 | libcxx-staticdev \ | ||
36 | compiler-rt-dev \ | ||
37 | compiler-rt-staticdev \ | ||
38 | " | ||
39 | |||
40 | ASSUME_PROVIDED += "\ | ||
41 | libcxx-dev \ | ||
42 | libcxx-staticdev \ | ||
43 | compiler-rt-dev \ | ||
44 | compiler-rt-staticdev \ | ||
45 | " | ||
diff --git a/meta/conf/machine/include/riscv/tune-riscv.inc b/meta/conf/machine/include/riscv/tune-riscv.inc new file mode 100644 index 0000000000..1e3a1081e0 --- /dev/null +++ b/meta/conf/machine/include/riscv/tune-riscv.inc | |||
@@ -0,0 +1,19 @@ | |||
1 | require conf/machine/include/riscv/arch-riscv.inc | ||
2 | |||
3 | TUNEVALID[riscv64] = "Enable 64-bit RISC-V optimizations" | ||
4 | TUNEVALID[riscv32] = "Enable 32-bit RISC-V optimizations" | ||
5 | |||
6 | TUNEVALID[littleendian] = "Little endian mode" | ||
7 | |||
8 | AVAILTUNES += "riscv64 riscv32" | ||
9 | |||
10 | TUNE_FEATURES_tune-riscv64 = "riscv64 littleendian" | ||
11 | TUNE_ARCH_tune-riscv64 = "riscv64" | ||
12 | TUNE_PKGARCH_tune-riscv64 = "riscv64" | ||
13 | PACKAGE_EXTRA_ARCHS_tune-riscv64 = "riscv64" | ||
14 | |||
15 | TUNE_FEATURES_tune-riscv32 = "riscv32 littleendian" | ||
16 | TUNE_ARCH_tune-riscv32 = "riscv32" | ||
17 | TUNE_PKGARCH_tune-riscv32 = "riscv32" | ||
18 | PACKAGE_EXTRA_ARCHS_tune-riscv32 = "riscv32" | ||
19 | |||