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, 41 insertions, 30 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 @@ DEFAULTTUNE ?= "riscv64" -TUNE_ARCH = "${TUNE_ARCH_tune-${DEFAULTTUNE}}" -TUNE_PKGARCH = "${TUNE_PKGARCH_tune-${DEFAULTTUNE}}" -TUNE_CCARGS_append = "${@bb.utils.contains('TUNE_FEATURES', 'riscv64nf', ' -mabi=lp64', ' ', d)}" -TUNE_CCARGS_append = "${@bb.utils.contains('TUNE_FEATURES', 'riscv32nf', ' -mabi=ilp32', ' ', d)}" +TUNE_ARCH = "${TUNE_ARCH:tune-${DEFAULTTUNE}}" +TUNE_PKGARCH = "${TUNE_PKGARCH:tune-${DEFAULTTUNE}}" +TUNE_CCARGS:append = "${@bb.utils.contains('TUNE_FEATURES', 'riscv64nf', ' -mabi=lp64', ' ', d)}" +TUNE_CCARGS:append = "${@bb.utils.contains('TUNE_FEATURES', 'riscv32nf', ' -mabi=ilp32', ' ', d)}" + +TUNE_CCARGS:append = "${@bb.utils.contains('TUNE_FEATURES', 'riscv64nc', ' -march=rv64imafd', ' ', d)}" # Fix: ld: unrecognized option '--hash-style=sysv' -LINKER_HASH_STYLE_libc-newlib = "" +LINKER_HASH_STYLE:libc-newlib = "" # Fix: ld: unrecognized option '--hash-style=gnu' -LINKER_HASH_STYLE_libc-baremetal = "" +LINKER_HASH_STYLE:libc-baremetal = "" diff --git a/meta/conf/machine/include/riscv/qemuriscv.inc b/meta/conf/machine/include/riscv/qemuriscv.inc index 428d28bde1..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" require conf/machine/include/qemu.inc require conf/machine/include/riscv/tune-riscv.inc -MACHINE_FEATURES = "screen keyboard ext2 ext3 serial" +MACHINE_FEATURES += "keyboard ext2 ext3 serial" KERNEL_IMAGETYPE = "Image" KERNEL_IMAGETYPES += "uImage" KEEPUIMAGE = "no" SERIAL_CONSOLES ?= "115200;ttyS0 115200;hvc0" -SERIAL_CONSOLES_CHECK = "${SERIAL_CONSOLES}" IMAGE_FSTYPES += "ext4 wic.qcow2" @@ -22,10 +21,11 @@ EXTRA_IMAGEDEPENDS += "opensbi" RISCV_SBI_PLAT ?= "generic" RISCV_SBI_PAYLOAD ?= "${KERNEL_IMAGETYPE}-${MACHINE}.bin" -UBOOT_ENTRYPOINT_riscv32 = "0x80400000" -UBOOT_ENTRYPOINT_riscv64 = "0x80200000" +UBOOT_ENTRYPOINT:riscv32 = "0x80400000" +UBOOT_ENTRYPOINT:riscv64 = "0x80200000" # qemuboot options +QB_SMP ?= "-smp 4" QB_KERNEL_CMDLINE_APPEND = "earlycon=sbi" QB_MACHINE = "-machine virt" QB_DEFAULT_BIOS = "fw_jump.elf" @@ -33,6 +33,7 @@ QB_TAP_OPT = "-netdev tap,id=net0,ifname=@TAP@,script=no,downscript=no" QB_NETWORK_DEVICE = "-device virtio-net-device,netdev=net0,mac=@MAC@" QB_ROOTFS_OPT = "-drive id=disk0,file=@ROOTFS@,if=none,format=raw -device virtio-blk-device,drive=disk0" QB_SERIAL_OPT = "-device virtio-serial-device -chardev null,id=virtcon -device virtconsole,chardev=virtcon" -QB_TCPSERIAL_OPT = " -device virtio-serial-device -chardev socket,id=virtcon,port=@PORT@,host=127.0.0.1 -device virtconsole,chardev=virtcon" +QB_TCPSERIAL_OPT = " -device virtio-serial-device -chardev socket,id=virtcon,port=@PORT@,host=127.0.0.1,nodelay=on -device virtconsole,chardev=virtcon" QB_GRAPHICS = "-device bochs-display" -QB_OPT_APPEND = "-device virtio-mouse-pci -device virtio-keyboard-pci" +QB_OPT_APPEND = "-device qemu-xhci -device usb-tablet -device usb-kbd" +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" TUNEVALID[riscv64nf] = "Enable 64-bit RISC-V optimizations no floating point" TUNEVALID[riscv32nf] = "Enable 32-bit RISC-V optimizations no floating point" +TUNEVALID[riscv64nc] = "Enable 64-bit RISC-V optimizations without compressed instructions" + TUNEVALID[bigendian] = "Big endian mode" -AVAILTUNES += "riscv64 riscv32 riscv64nf riscv32nf" +AVAILTUNES += "riscv64 riscv32 riscv64nc riscv64nf riscv32nf" # Default -TUNE_FEATURES_tune-riscv64 = "riscv64" -TUNE_ARCH_tune-riscv64 = "riscv64" -TUNE_PKGARCH_tune-riscv64 = "riscv64" -PACKAGE_EXTRA_ARCHS_tune-riscv64 = "riscv64" +TUNE_FEATURES:tune-riscv64 = "riscv64" +TUNE_ARCH:tune-riscv64 = "riscv64" +TUNE_PKGARCH:tune-riscv64 = "riscv64" +PACKAGE_EXTRA_ARCHS:tune-riscv64 = "riscv64" -TUNE_FEATURES_tune-riscv32 = "riscv32" -TUNE_ARCH_tune-riscv32 = "riscv32" -TUNE_PKGARCH_tune-riscv32 = "riscv32" -PACKAGE_EXTRA_ARCHS_tune-riscv32 = "riscv32" +TUNE_FEATURES:tune-riscv32 = "riscv32" +TUNE_ARCH:tune-riscv32 = "riscv32" +TUNE_PKGARCH:tune-riscv32 = "riscv32" +PACKAGE_EXTRA_ARCHS:tune-riscv32 = "riscv32" # No float -TUNE_FEATURES_tune-riscv64nf = "${TUNE_FEATURES_tune-riscv64} riscv64nf" -TUNE_ARCH_tune-riscv64nf = "riscv64" -TUNE_PKGARCH_tune-riscv64nf = "riscv64nf" -PACKAGE_EXTRA_ARCHS_tune-riscv64nf = "riscv64nf" - -TUNE_FEATURES_tune-riscv32nf = "${TUNE_FEATURES_tune-riscv32} riscv32nf" -TUNE_ARCH_tune-riscv32nf = "riscv32" -TUNE_PKGARCH_tune-riscv32nf = "riscv32nf" -PACKAGE_EXTRA_ARCHS_tune-riscv32nf = "riscv32nf" +TUNE_FEATURES:tune-riscv64nf = "${TUNE_FEATURES:tune-riscv64} riscv64nf" +TUNE_ARCH:tune-riscv64nf = "riscv64" +TUNE_PKGARCH:tune-riscv64nf = "riscv64nf" +PACKAGE_EXTRA_ARCHS:tune-riscv64nf = "riscv64nf" + +TUNE_FEATURES:tune-riscv32nf = "${TUNE_FEATURES:tune-riscv32} riscv32nf" +TUNE_ARCH:tune-riscv32nf = "riscv32" +TUNE_PKGARCH:tune-riscv32nf = "riscv32nf" +PACKAGE_EXTRA_ARCHS:tune-riscv32nf = "riscv32nf" + +# no compressed +TUNE_FEATURES:tune-riscv64nc = "${TUNE_FEATURES:tune-riscv64} riscv64nc" +TUNE_ARCH:tune-riscv64nc = "riscv64" +TUNE_PKGARCH:tune-riscv64nc = "riscv64nc" +PACKAGE_EXTRA_ARCHS:tune-riscv64nc = "riscv64nc" |