diff options
Diffstat (limited to 'meta/conf/machine/include/riscv')
-rw-r--r-- | meta/conf/machine/include/riscv/arch-riscv.inc | 14 | ||||
-rw-r--r-- | meta/conf/machine/include/riscv/qemuriscv.inc | 13 | ||||
-rw-r--r-- | meta/conf/machine/include/riscv/tune-riscv.inc | 44 |
3 files changed, 42 insertions, 29 deletions
diff --git a/meta/conf/machine/include/riscv/arch-riscv.inc b/meta/conf/machine/include/riscv/arch-riscv.inc index eae2b88778..230a266563 100644 --- a/meta/conf/machine/include/riscv/arch-riscv.inc +++ b/meta/conf/machine/include/riscv/arch-riscv.inc | |||
@@ -2,12 +2,14 @@ | |||
2 | 2 | ||
3 | DEFAULTTUNE ?= "riscv64" | 3 | DEFAULTTUNE ?= "riscv64" |
4 | 4 | ||
5 | TUNE_ARCH = "${TUNE_ARCH_tune-${DEFAULTTUNE}}" | 5 | TUNE_ARCH = "${TUNE_ARCH:tune-${DEFAULTTUNE}}" |
6 | TUNE_PKGARCH = "${TUNE_PKGARCH_tune-${DEFAULTTUNE}}" | 6 | TUNE_PKGARCH = "${TUNE_PKGARCH:tune-${DEFAULTTUNE}}" |
7 | TUNE_CCARGS_append = "${@bb.utils.contains('TUNE_FEATURES', 'riscv64nf', ' -mabi=lp64', ' ', d)}" | 7 | TUNE_CCARGS:append = "${@bb.utils.contains('TUNE_FEATURES', 'riscv64nf', ' -mabi=lp64', ' ', d)}" |
8 | TUNE_CCARGS_append = "${@bb.utils.contains('TUNE_FEATURES', 'riscv32nf', ' -mabi=ilp32', ' ', d)}" | 8 | TUNE_CCARGS:append = "${@bb.utils.contains('TUNE_FEATURES', 'riscv32nf', ' -mabi=ilp32', ' ', d)}" |
9 | |||
10 | TUNE_CCARGS:append = "${@bb.utils.contains('TUNE_FEATURES', 'riscv64nc', ' -march=rv64imafd', ' ', d)}" | ||
9 | 11 | ||
10 | # Fix: ld: unrecognized option '--hash-style=sysv' | 12 | # Fix: ld: unrecognized option '--hash-style=sysv' |
11 | LINKER_HASH_STYLE_libc-newlib = "" | 13 | LINKER_HASH_STYLE:libc-newlib = "" |
12 | # Fix: ld: unrecognized option '--hash-style=gnu' | 14 | # Fix: ld: unrecognized option '--hash-style=gnu' |
13 | LINKER_HASH_STYLE_libc-baremetal = "" | 15 | LINKER_HASH_STYLE:libc-baremetal = "" |
diff --git a/meta/conf/machine/include/riscv/qemuriscv.inc b/meta/conf/machine/include/riscv/qemuriscv.inc index 47d7e9b174..d01d988eee 100644 --- a/meta/conf/machine/include/riscv/qemuriscv.inc +++ b/meta/conf/machine/include/riscv/qemuriscv.inc | |||
@@ -3,14 +3,13 @@ PREFERRED_PROVIDER_virtual/bootloader ?= "u-boot" | |||
3 | require conf/machine/include/qemu.inc | 3 | require conf/machine/include/qemu.inc |
4 | require conf/machine/include/riscv/tune-riscv.inc | 4 | require conf/machine/include/riscv/tune-riscv.inc |
5 | 5 | ||
6 | MACHINE_FEATURES = "screen keyboard ext2 ext3 serial" | 6 | MACHINE_FEATURES += "keyboard ext2 ext3 serial" |
7 | 7 | ||
8 | KERNEL_IMAGETYPE = "Image" | 8 | KERNEL_IMAGETYPE = "Image" |
9 | KERNEL_IMAGETYPES += "uImage" | 9 | KERNEL_IMAGETYPES += "uImage" |
10 | KEEPUIMAGE = "no" | 10 | KEEPUIMAGE = "no" |
11 | 11 | ||
12 | SERIAL_CONSOLES ?= "115200;ttyS0 115200;hvc0" | 12 | SERIAL_CONSOLES ?= "115200;ttyS0 115200;hvc0" |
13 | SERIAL_CONSOLES_CHECK = "${SERIAL_CONSOLES}" | ||
14 | 13 | ||
15 | IMAGE_FSTYPES += "ext4 wic.qcow2" | 14 | IMAGE_FSTYPES += "ext4 wic.qcow2" |
16 | 15 | ||
@@ -22,10 +21,11 @@ EXTRA_IMAGEDEPENDS += "opensbi" | |||
22 | RISCV_SBI_PLAT ?= "generic" | 21 | RISCV_SBI_PLAT ?= "generic" |
23 | RISCV_SBI_PAYLOAD ?= "${KERNEL_IMAGETYPE}-${MACHINE}.bin" | 22 | RISCV_SBI_PAYLOAD ?= "${KERNEL_IMAGETYPE}-${MACHINE}.bin" |
24 | 23 | ||
25 | UBOOT_ENTRYPOINT_riscv32 = "0x80400000" | 24 | UBOOT_ENTRYPOINT:riscv32 = "0x80400000" |
26 | UBOOT_ENTRYPOINT_riscv64 = "0x80200000" | 25 | UBOOT_ENTRYPOINT:riscv64 = "0x80200000" |
27 | 26 | ||
28 | # qemuboot options | 27 | # qemuboot options |
28 | QB_SMP ?= "-smp 4" | ||
29 | QB_KERNEL_CMDLINE_APPEND = "earlycon=sbi" | 29 | QB_KERNEL_CMDLINE_APPEND = "earlycon=sbi" |
30 | QB_MACHINE = "-machine virt" | 30 | QB_MACHINE = "-machine virt" |
31 | QB_DEFAULT_BIOS = "fw_jump.elf" | 31 | QB_DEFAULT_BIOS = "fw_jump.elf" |
@@ -33,4 +33,7 @@ QB_TAP_OPT = "-netdev tap,id=net0,ifname=@TAP@,script=no,downscript=no" | |||
33 | QB_NETWORK_DEVICE = "-device virtio-net-device,netdev=net0,mac=@MAC@" | 33 | QB_NETWORK_DEVICE = "-device virtio-net-device,netdev=net0,mac=@MAC@" |
34 | QB_ROOTFS_OPT = "-drive id=disk0,file=@ROOTFS@,if=none,format=raw -device virtio-blk-device,drive=disk0" | 34 | QB_ROOTFS_OPT = "-drive id=disk0,file=@ROOTFS@,if=none,format=raw -device virtio-blk-device,drive=disk0" |
35 | QB_SERIAL_OPT = "-device virtio-serial-device -chardev null,id=virtcon -device virtconsole,chardev=virtcon" | 35 | QB_SERIAL_OPT = "-device virtio-serial-device -chardev null,id=virtcon -device virtconsole,chardev=virtcon" |
36 | QB_TCPSERIAL_OPT = " -device virtio-serial-device -chardev socket,id=virtcon,port=@PORT@,host=127.0.0.1 -device virtconsole,chardev=virtcon" | 36 | QB_TCPSERIAL_OPT = " -device virtio-serial-device -chardev socket,id=virtcon,port=@PORT@,host=127.0.0.1,nodelay=on -device virtconsole,chardev=virtcon" |
37 | QB_GRAPHICS = "-device bochs-display" | ||
38 | QB_OPT_APPEND = "-device qemu-xhci -device usb-tablet -device usb-kbd" | ||
39 | QB_OPT_APPEND:riscv32 = "-device virtio-tablet-pci -device virtio-keyboard-pci" | ||
diff --git a/meta/conf/machine/include/riscv/tune-riscv.inc b/meta/conf/machine/include/riscv/tune-riscv.inc index 028548bf56..804712077e 100644 --- a/meta/conf/machine/include/riscv/tune-riscv.inc +++ b/meta/conf/machine/include/riscv/tune-riscv.inc | |||
@@ -6,28 +6,36 @@ TUNEVALID[riscv32] = "Enable 32-bit RISC-V optimizations" | |||
6 | TUNEVALID[riscv64nf] = "Enable 64-bit RISC-V optimizations no floating point" | 6 | TUNEVALID[riscv64nf] = "Enable 64-bit RISC-V optimizations no floating point" |
7 | TUNEVALID[riscv32nf] = "Enable 32-bit RISC-V optimizations no floating point" | 7 | TUNEVALID[riscv32nf] = "Enable 32-bit RISC-V optimizations no floating point" |
8 | 8 | ||
9 | TUNEVALID[riscv64nc] = "Enable 64-bit RISC-V optimizations without compressed instructions" | ||
10 | |||
9 | TUNEVALID[bigendian] = "Big endian mode" | 11 | TUNEVALID[bigendian] = "Big endian mode" |
10 | 12 | ||
11 | AVAILTUNES += "riscv64 riscv32 riscv64nf riscv32nf" | 13 | AVAILTUNES += "riscv64 riscv32 riscv64nc riscv64nf riscv32nf" |
12 | 14 | ||
13 | # Default | 15 | # Default |
14 | TUNE_FEATURES_tune-riscv64 = "riscv64" | 16 | TUNE_FEATURES:tune-riscv64 = "riscv64" |
15 | TUNE_ARCH_tune-riscv64 = "riscv64" | 17 | TUNE_ARCH:tune-riscv64 = "riscv64" |
16 | TUNE_PKGARCH_tune-riscv64 = "riscv64" | 18 | TUNE_PKGARCH:tune-riscv64 = "riscv64" |
17 | PACKAGE_EXTRA_ARCHS_tune-riscv64 = "riscv64" | 19 | PACKAGE_EXTRA_ARCHS:tune-riscv64 = "riscv64" |
18 | 20 | ||
19 | TUNE_FEATURES_tune-riscv32 = "riscv32" | 21 | TUNE_FEATURES:tune-riscv32 = "riscv32" |
20 | TUNE_ARCH_tune-riscv32 = "riscv32" | 22 | TUNE_ARCH:tune-riscv32 = "riscv32" |
21 | TUNE_PKGARCH_tune-riscv32 = "riscv32" | 23 | TUNE_PKGARCH:tune-riscv32 = "riscv32" |
22 | PACKAGE_EXTRA_ARCHS_tune-riscv32 = "riscv32" | 24 | PACKAGE_EXTRA_ARCHS:tune-riscv32 = "riscv32" |
23 | 25 | ||
24 | # No float | 26 | # No float |
25 | TUNE_FEATURES_tune-riscv64nf = "${TUNE_FEATURES_tune-riscv64} riscv64nf" | 27 | TUNE_FEATURES:tune-riscv64nf = "${TUNE_FEATURES:tune-riscv64} riscv64nf" |
26 | TUNE_ARCH_tune-riscv64nf = "riscv64" | 28 | TUNE_ARCH:tune-riscv64nf = "riscv64" |
27 | TUNE_PKGARCH_tune-riscv64nf = "riscv64nf" | 29 | TUNE_PKGARCH:tune-riscv64nf = "riscv64nf" |
28 | PACKAGE_EXTRA_ARCHS_tune-riscv64nf = "riscv64nf" | 30 | PACKAGE_EXTRA_ARCHS:tune-riscv64nf = "riscv64nf" |
29 | 31 | ||
30 | TUNE_FEATURES_tune-riscv32nf = "${TUNE_FEATURES_tune-riscv32} riscv32nf" | 32 | TUNE_FEATURES:tune-riscv32nf = "${TUNE_FEATURES:tune-riscv32} riscv32nf" |
31 | TUNE_ARCH_tune-riscv32nf = "riscv32" | 33 | TUNE_ARCH:tune-riscv32nf = "riscv32" |
32 | TUNE_PKGARCH_tune-riscv32nf = "riscv32nf" | 34 | TUNE_PKGARCH:tune-riscv32nf = "riscv32nf" |
33 | PACKAGE_EXTRA_ARCHS_tune-riscv32nf = "riscv32nf" | 35 | PACKAGE_EXTRA_ARCHS:tune-riscv32nf = "riscv32nf" |
36 | |||
37 | # no compressed | ||
38 | TUNE_FEATURES:tune-riscv64nc = "${TUNE_FEATURES:tune-riscv64} riscv64nc" | ||
39 | TUNE_ARCH:tune-riscv64nc = "riscv64" | ||
40 | TUNE_PKGARCH:tune-riscv64nc = "riscv64nc" | ||
41 | PACKAGE_EXTRA_ARCHS:tune-riscv64nc = "riscv64nc" | ||