From 6fc70eb4f3494bee2be10ee24fe3ea1c8b5ff988 Mon Sep 17 00:00:00 2001 From: Jon Mason Date: Tue, 5 Mar 2019 17:32:19 -0500 Subject: qemuarm: Swap for an arm7ve (A15) configuration Add new QEMU BSP for a Arm Cortex-A15 system and use this as qemuarm, moving the old armv5te Versatile PB based machine to qemuarmv5. The new machine uses the QEMU virt machine type, which should be faster to emulate and updates the qemuarm support to a modern architecture. Signed-off-by: Jon Mason Signed-off-by: Richard Purdie --- meta/conf/machine/qemuarm.conf | 34 +++++++++++++++------- meta/conf/machine/qemuarmv5.conf | 23 +++++++++++++++ meta/recipes-kernel/linux/linux-yocto-rt_4.19.bb | 2 +- meta/recipes-kernel/linux/linux-yocto-rt_5.0.bb | 2 +- meta/recipes-kernel/linux/linux-yocto-tiny_4.19.bb | 2 +- meta/recipes-kernel/linux/linux-yocto-tiny_5.0.bb | 2 +- meta/recipes-kernel/linux/linux-yocto_4.19.bb | 2 +- meta/recipes-kernel/linux/linux-yocto_5.0.bb | 2 +- 8 files changed, 52 insertions(+), 17 deletions(-) create mode 100644 meta/conf/machine/qemuarmv5.conf diff --git a/meta/conf/machine/qemuarm.conf b/meta/conf/machine/qemuarm.conf index a544312627..9555046189 100644 --- a/meta/conf/machine/qemuarm.conf +++ b/meta/conf/machine/qemuarm.conf @@ -1,21 +1,33 @@ #@TYPE: Machine -#@NAME: arm_versatile_926ejs -#@DESCRIPTION: arm_versatile_926ejs +#@NAME: generic Arm Cortex-A15 machine +#@DESCRIPTION: Machine configuration for running a generic armv7 +require conf/machine/include/tune-cortexa15.inc require conf/machine/include/qemu.inc -require conf/machine/include/tune-arm926ejs.inc -#require conf/machine/include/tune-arm1136jf-s.inc KERNEL_IMAGETYPE = "zImage" -SERIAL_CONSOLES ?= "115200;ttyAMA0 115200;ttyAMA1" +SERIAL_CONSOLES ?= "115200;ttyAMA0 115200;hvc0" # For runqemu QB_SYSTEM_NAME = "qemu-system-arm" -QB_MACHINE = "-machine versatilepb" -QB_KERNEL_CMDLINE_APPEND = "console=ttyAMA0,115200 console=tty" -QB_OPT_APPEND = "-show-cursor -usb -device usb-tablet" -# Add the 'virtio-rng-pci' device otherwise the guest may run out of entropy +QB_MEM = "-m 512" +QB_MACHINE = "-machine virt" +QB_CPU = "-cpu cortex-a15" +# Standard Serial console +QB_KERNEL_CMDLINE_APPEND = "console=ttyAMA0" +# For graphics to work we need to define the VGA device as well as the necessary USB devices +QB_OPT_APPEND = "-show-cursor -device VGA,edid=on" +QB_OPT_APPEND += "-device qemu-xhci -device usb-tablet -device usb-kbd" +# Add the virtio RNG QB_OPT_APPEND += "-object rng-random,filename=/dev/urandom,id=rng0 -device virtio-rng-pci,rng=rng0" -PREFERRED_VERSION_linux-yocto ??= "4.18%" -QB_DTB = "${@oe.utils.version_less_or_equal('PREFERRED_VERSION_linux-yocto', '4.7', '', 'zImage-versatile-pb.dtb', d)}" +# Virtio Networking support +QB_TAP_OPT = "-netdev tap,id=net0,ifname=@TAP@,script=no,downscript=no" +QB_NETWORK_DEVICE = "-device virtio-net-device,netdev=net0,mac=@MAC@" +# Virtio block device +QB_ROOTFS_OPT = "-drive id=disk0,file=@ROOTFS@,if=none,format=raw -device virtio-blk-device,drive=disk0" +# Virtio serial console +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" + +KMACHINE_qemuarm = "qemuarma15" diff --git a/meta/conf/machine/qemuarmv5.conf b/meta/conf/machine/qemuarmv5.conf new file mode 100644 index 0000000000..5f90accc24 --- /dev/null +++ b/meta/conf/machine/qemuarmv5.conf @@ -0,0 +1,23 @@ +#@TYPE: Machine +#@NAME: arm_versatile_926ejs +#@DESCRIPTION: arm_versatile_926ejs + +require conf/machine/include/qemu.inc +require conf/machine/include/tune-arm926ejs.inc +#require conf/machine/include/tune-arm1136jf-s.inc + +KERNEL_IMAGETYPE = "zImage" + +SERIAL_CONSOLES ?= "115200;ttyAMA0 115200;ttyAMA1" + +# For runqemu +QB_SYSTEM_NAME = "qemu-system-arm" +QB_MACHINE = "-machine versatilepb" +QB_KERNEL_CMDLINE_APPEND = "console=ttyAMA0,115200 console=tty" +QB_OPT_APPEND = "-show-cursor -usb -device usb-tablet" +# Add the 'virtio-rng-pci' device otherwise the guest may run out of entropy +QB_OPT_APPEND += "-object rng-random,filename=/dev/urandom,id=rng0 -device virtio-rng-pci,rng=rng0" +PREFERRED_VERSION_linux-yocto ??= "4.18%" +QB_DTB = "${@oe.utils.version_less_or_equal('PREFERRED_VERSION_linux-yocto', '4.7', '', 'zImage-versatile-pb.dtb', d)}" + +KMACHINE_qemuarmv5 = "qemuarm" \ No newline at end of file diff --git a/meta/recipes-kernel/linux/linux-yocto-rt_4.19.bb b/meta/recipes-kernel/linux/linux-yocto-rt_4.19.bb index 07dc5b77a1..36761b9943 100644 --- a/meta/recipes-kernel/linux/linux-yocto-rt_4.19.bb +++ b/meta/recipes-kernel/linux/linux-yocto-rt_4.19.bb @@ -31,7 +31,7 @@ KCONF_BSP_AUDIT_LEVEL = "2" LINUX_KERNEL_TYPE = "preempt-rt" -COMPATIBLE_MACHINE = "(qemux86|qemux86-64|qemuarm|qemuarm64|qemuppc|qemumips)" +COMPATIBLE_MACHINE = "(qemux86|qemux86-64|qemuarm|qemuarma15|qemuarm64|qemuppc|qemumips)" KERNEL_DEVICETREE_qemuarm = "versatile-pb.dtb" diff --git a/meta/recipes-kernel/linux/linux-yocto-rt_5.0.bb b/meta/recipes-kernel/linux/linux-yocto-rt_5.0.bb index 8629e5a867..2487da88d2 100644 --- a/meta/recipes-kernel/linux/linux-yocto-rt_5.0.bb +++ b/meta/recipes-kernel/linux/linux-yocto-rt_5.0.bb @@ -31,7 +31,7 @@ KCONF_BSP_AUDIT_LEVEL = "2" LINUX_KERNEL_TYPE = "preempt-rt" -COMPATIBLE_MACHINE = "(qemux86|qemux86-64|qemuarm|qemuarm64|qemuppc|qemumips)" +COMPATIBLE_MACHINE = "(qemux86|qemux86-64|qemuarm|qemuarmv5|qemuarm64|qemuppc|qemumips)" KERNEL_DEVICETREE_qemuarm = "versatile-pb.dtb" diff --git a/meta/recipes-kernel/linux/linux-yocto-tiny_4.19.bb b/meta/recipes-kernel/linux/linux-yocto-tiny_4.19.bb index c6d1594a82..52dbabd7a4 100644 --- a/meta/recipes-kernel/linux/linux-yocto-tiny_4.19.bb +++ b/meta/recipes-kernel/linux/linux-yocto-tiny_4.19.bb @@ -24,7 +24,7 @@ PV = "${LINUX_VERSION}+git${SRCPV}" SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;branch=${KBRANCH};name=machine \ git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-4.19;destsuffix=${KMETA}" -COMPATIBLE_MACHINE = "qemux86|qemux86-64|qemuarm" +COMPATIBLE_MACHINE = "qemux86|qemux86-64|qemuarm|qemuarma15" # Functionality flags KERNEL_FEATURES = "" diff --git a/meta/recipes-kernel/linux/linux-yocto-tiny_5.0.bb b/meta/recipes-kernel/linux/linux-yocto-tiny_5.0.bb index 086b53bbbe..04b319f1ca 100644 --- a/meta/recipes-kernel/linux/linux-yocto-tiny_5.0.bb +++ b/meta/recipes-kernel/linux/linux-yocto-tiny_5.0.bb @@ -24,7 +24,7 @@ PV = "${LINUX_VERSION}+git${SRCPV}" SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;branch=${KBRANCH};name=machine \ git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-5.0;destsuffix=${KMETA}" -COMPATIBLE_MACHINE = "qemux86|qemux86-64|qemuarm" +COMPATIBLE_MACHINE = "qemux86|qemux86-64|qemuarm|qemuarmv5" # Functionality flags KERNEL_FEATURES = "" diff --git a/meta/recipes-kernel/linux/linux-yocto_4.19.bb b/meta/recipes-kernel/linux/linux-yocto_4.19.bb index b7e71395e6..aca9f15404 100644 --- a/meta/recipes-kernel/linux/linux-yocto_4.19.bb +++ b/meta/recipes-kernel/linux/linux-yocto_4.19.bb @@ -38,7 +38,7 @@ KCONF_BSP_AUDIT_LEVEL = "2" KERNEL_DEVICETREE_qemuarm = "versatile-pb.dtb" -COMPATIBLE_MACHINE = "qemuarm|qemuarm64|qemux86|qemuppc|qemumips|qemumips64|qemux86-64" +COMPATIBLE_MACHINE = "qemuarm|qemuarma15|qemuarm64|qemux86|qemuppc|qemumips|qemumips64|qemux86-64" # Functionality flags KERNEL_EXTRA_FEATURES ?= "features/netfilter/netfilter.scc" diff --git a/meta/recipes-kernel/linux/linux-yocto_5.0.bb b/meta/recipes-kernel/linux/linux-yocto_5.0.bb index ab8e5aff50..787710d860 100644 --- a/meta/recipes-kernel/linux/linux-yocto_5.0.bb +++ b/meta/recipes-kernel/linux/linux-yocto_5.0.bb @@ -40,7 +40,7 @@ KCONF_BSP_AUDIT_LEVEL = "2" KERNEL_DEVICETREE_qemuarm = "versatile-pb.dtb" -COMPATIBLE_MACHINE = "qemuarm|qemuarm64|qemux86|qemuppc|qemumips|qemumips64|qemux86-64" +COMPATIBLE_MACHINE = "qemuarm|qemuarmv5|qemuarm64|qemux86|qemuppc|qemumips|qemumips64|qemux86-64" # Functionality flags KERNEL_EXTRA_FEATURES ?= "features/netfilter/netfilter.scc" -- cgit 1.2.3-korg