1
0
mirror of https://git.yoctoproject.org/meta-arm synced 2026-06-05 02:20:30 +00:00

arm/qemuarm64-sbsa: replace with qemu-generic-arm64

Migrate the qemuarm64-sbsa machine to use the generic-arm64 machine as a
base.  This new qemu-generic-arm64 should contain only the parts
necessary to boot the generic-arm64 in qemu (using the SBSA machine).
This allows for a single generic image with testing for SBSA compliance.

NOTE: a unique WIC file is needed due to the inability to pass kernel
bootargs (due to needing DHCP for testimage).

Signed-off-by: Jon Mason <jon.mason@arm.com>
This commit is contained in:
Jon Mason
2021-11-11 17:16:28 -05:00
parent 91233ff996
commit c40fb5348b
12 changed files with 103 additions and 138 deletions
+1 -1
View File
@@ -171,7 +171,7 @@ qemu-cortex-m3/testimage-zephyr:
qemu-cortex-r5:
extends: .build
qemuarm64-sbsa:
qemu-generic-arm64/testimage:
extends: .build
qemuarm64-secureboot/testimage:
+15
View File
@@ -0,0 +1,15 @@
header:
version: 9
includes:
- generic-arm64.yml
local_conf_header:
failing_tests: |
DEFAULT_TEST_SUITES:remove = "parselogs"
machine: qemu-generic-arm64
target:
- core-image-base
- perf
- sbsa-acs
-11
View File
@@ -1,11 +0,0 @@
header:
version: 9
includes:
- base.yml
machine: qemuarm64-sbsa
target:
- core-image-base
- perf
- sbsa-acs
+10 -12
View File
@@ -6,18 +6,16 @@
require conf/machine/include/arm/arch-armv8a.inc
PREFERRED_PROVIDER_virtual/kernel ?= "linux-yocto"
KERNEL_IMAGETYPE = "Image"
IMAGE_FSTYPES ?= "wic"
WKS_FILE ?= "efi-disk.wks.in"
MACHINE_FEATURES += "alsa bluetooth efi qemu-usermode rtc screen usbhost vfat wifi"
EFI_PROVIDER ?= "${@bb.utils.contains("DISTRO_FEATURES", "systemd", "systemd-boot", "grub-efi", d)}"
# Newer versions of the kernel are not booting on QEMU. Hold it back to a
# known working version until it is determined why
PREFERRED_VERSION_linux-yocto ?= "5.10%"
KBUILD_DEFCONFIG = "defconfig"
KCONFIG_MODE = "--alldefconfig"
KERNEL_IMAGETYPE = "Image"
MACHINE_EXTRA_RRECOMMENDS += "kernel-modules linux-firmware"
IMAGE_FSTYPES ?= "wic"
WKS_FILE ?= "efi-disk.wks.in"
EFI_PROVIDER ?= "${@bb.utils.contains("DISTRO_FEATURES", "systemd", "systemd-boot", "grub-efi", d)}"
MACHINE_FEATURES:append = " alsa bluetooth efi qemu-usermode rtc screen usbhost vfat wifi"
@@ -0,0 +1,35 @@
#@TYPE: Machine
#@NAME: qemu-generic-arm64
#@DESCRIPTION: Generic Arm64 machine for typical SystemReady platforms, which
#have working firmware and boot via EFI.
MACHINEOVERRIDES =. "generic-arm64:"
require conf/machine/generic-arm64.conf
require conf/machine/include/qemu.inc
SERIAL_CONSOLES ?= "115200;ttyAMA0 115200;hvc0"
SERIAL_CONSOLES_CHECK = "${SERIAL_CONSOLES}"
EXTRA_IMAGEDEPENDS += "edk2-firmware"
# This unique WIC file is necessary because kernel boot args cannot be passed
# because there is no default kernel (see below). There is no default kernel
# because QEMU will only allow firmware or kernel to be passed in as a
# parameter, and we need the firmware. So, to allow for "ip=dhcp" as a kernel
# boot arg (which we need for testimage), we have to have a WIC file unique to
# this platform.
WKS_FILE = "qemu-efi-disk.wks.in"
IMAGE_FSTYPES += "wic.qcow2"
QB_SYSTEM_NAME = "qemu-system-aarch64"
QB_MACHINE = "-machine sbsa-ref"
QB_MEM = "-m 1024"
QB_DEFAULT_FSTYPE = "wic.qcow2"
QB_NETWORK_DEVICE = "-device virtio-net-pci,netdev=net0,mac=@MAC@"
QB_DRIVE_TYPE = "/dev/hd"
QB_ROOTFS_OPT = "-drive file=@ROOTFS@,if=ide,format=qcow2"
QB_DEFAULT_KERNEL = "none"
QB_OPT_APPEND = "-device qemu-xhci -device usb-tablet -device usb-kbd -pflash @DEPLOY_DIR_IMAGE@/SBSA_FLASH0.fd -pflash @DEPLOY_DIR_IMAGE@/SBSA_FLASH1.fd"
QB_SERIAL_OPT = "-device virtio-serial-pci -chardev null,id=virtcon -device virtconsole,chardev=virtcon"
QB_TCPSERIAL_OPT = "-device virtio-serial-pci -chardev socket,id=virtcon,port=@PORT@,host=127.0.0.1 -device virtconsole,chardev=virtcon"
-30
View File
@@ -1,30 +0,0 @@
#@TYPE: Machine
#@NAME: qemuarm64_sbsa
#@DESCRIPTION: QEMU Machine for Arm Server Base System Architecture
MACHINEOVERRIDES =. "qemuarm64:"
require ${COREBASE}/meta/conf/machine/qemuarm64.conf
KMACHINE = "qemuarm64"
QB_MACHINE = "-machine sbsa-ref"
QB_MEM = "-m 1024"
QB_DEFAULT_FSTYPE = "wic.qcow2"
QB_NETWORK_DEVICE = ""
QB_DRIVE_TYPE = "/dev/hd"
QB_ROOTFS_OPT = "-drive file=@ROOTFS@,if=ide,format=qcow2"
QB_DEFAULT_KERNEL = "none"
QB_OPT_APPEND = "-device qemu-xhci -device usb-tablet -device usb-kbd"
IMAGE_BOOT_FILES = "${KERNEL_IMAGETYPE}"
IMAGE_FSTYPES += "wic wic.qcow2"
WKS_FILE ?= "mkefidisk.wks"
MACHINE_FEATURES += "efi"
EXTRA_IMAGEDEPENDS += "edk2-firmware"
KBUILD_DEFCONFIG = "defconfig"
KCONFIG_MODE = "--alldefconfig"
@@ -1,7 +1,8 @@
COMPATIBLE_MACHINE:qemuarm64 = "qemuarm64"
COMPATIBLE_MACHINE:qemu-generic-arm64 = "qemu-generic-arm64"
TFA_PLATFORM:qemuarm64-secureboot = "qemu"
TFA_PLATFORM:qemuarm64-sbsa = "qemu_sbsa"
TFA_PLATFORM:qemu-generic-arm64 = "qemu_sbsa"
TFA_SPD:qemuarm64-secureboot = "opteed"
@@ -9,7 +10,7 @@ TFA_UBOOT:qemuarm64-secureboot = "1"
TFA_BUILD_TARGET:aarch64:qemuall = "all fip"
TFA_INSTALL_TARGET:qemuarm64-secureboot = "flash.bin"
TFA_INSTALL_TARGET:qemuarm64-sbsa = "bl1 fip"
TFA_INSTALL_TARGET:qemu-generic-arm64 = "bl1 fip"
DEPENDS:append:aarch64:qemuall = " optee-os"
@@ -1,26 +1,27 @@
COMPATIBLE_MACHINE = "qemuarm64"
COMPATIBLE_MACHINE:qemuarm64-secureboot = "qemuarm64"
COMPATIBLE_MACHINE:qemu-generic-arm64 = "qemu-generic-arm64"
DEPENDS:append:qemuarm64-sbsa = " virtual/trusted-firmware-a"
DEPENDS:append:qemu-generic-arm64 = " virtual/trusted-firmware-a coreutils-native"
EDK2_BUILD_RELEASE:aarch64:qemuall = "1"
EDK2_ARCH:aarch64:qemuall = "AARCH64"
EDK2_PLATFORM:qemuarm64-sbsa = "SbsaQemu"
EDK2_PLATFORM_DSC:qemuarm64-sbsa = "Platform/Qemu/SbsaQemu/SbsaQemu.dsc"
EDK2_BIN_NAME:qemuarm64-sbsa = "SBSA_FLASH0.fd"
EDK2_PLATFORM:qemu-generic-arm64 = "SbsaQemu"
EDK2_PLATFORM_DSC:qemu-generic-arm64 = "Platform/Qemu/SbsaQemu/SbsaQemu.dsc"
EDK2_BIN_NAME:qemu-generic-arm64 = "SBSA_FLASH0.fd"
EDK2_PLATFORM:qemuarm64-secureboot = "ArmVirtQemu-AARCH64"
EDK2_PLATFORM_DSC:qemuarm64-secureboot = "ArmVirtPkg/ArmVirtQemu.dsc"
EDK2_BIN_NAME:qemuarm64-secureboot = "QEMU_EFI.fd"
do_compile:prepend:qemuarm64-sbsa() {
do_compile:prepend:qemu-generic-arm64() {
mkdir -p ${B}/Platform/Qemu/Sbsa/
cp ${RECIPE_SYSROOT}/firmware/bl1.bin ${B}/Platform/Qemu/Sbsa/
cp ${RECIPE_SYSROOT}/firmware/fip.bin ${B}/Platform/Qemu/Sbsa/
}
do_install:append:qemuarm64-sbsa() {
install ${B}/Build/${EDK2_PLATFORM}/${EDK2_BUILD_MODE}_${EDK_COMPILER}/FV/SBSA_FLASH0.fd ${D}/firmware/ovmf-tfa.bin
install ${B}/Build/${EDK2_PLATFORM}/${EDK2_BUILD_MODE}_${EDK_COMPILER}/FV/SBSA_FLASH1.fd ${D}/firmware/ovmf-uefi.bin
/usr/bin/truncate -s 256M ${D}/firmware/ovmf*.bin
do_install:append:qemu-generic-arm64() {
install ${B}/Build/${EDK2_PLATFORM}/${EDK2_BUILD_MODE}_${EDK_COMPILER}/FV/SBSA_FLASH*.fd ${D}/firmware/
# QEMU requires that the images be minimum of 256M in size
truncate -s 256M ${D}/firmware/SBSA_FLASH*.fd
}
@@ -21,10 +21,10 @@ Signed-off-by: Ross Burton <ross.burton@arm.com>
1 file changed, 1 deletion(-)
diff --git a/arch/arm64/configs/defconfig b/arch/arm64/configs/defconfig
index 9907a431db0d..f50751b6eaec 100644
index 6d84761d1285..9bb5a97d24f0 100644
--- a/arch/arm64/configs/defconfig
+++ b/arch/arm64/configs/defconfig
@@ -538,7 +538,6 @@ CONFIG_GPIO_PCA953X_IRQ=y
@@ -514,7 +514,6 @@ CONFIG_GPIO_PCA953X_IRQ=y
CONFIG_GPIO_BD9571MWV=m
CONFIG_GPIO_MAX77620=y
CONFIG_GPIO_SL28CPLD=m
@@ -51,13 +51,13 @@ Signed-off-by: Ross Burton <ross.burton@arm.com>
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/arm64/configs/defconfig b/arch/arm64/configs/defconfig
index f50751b6eaec..15595d6db256 100644
index 6d84761d1285..84a75ed7e167 100644
--- a/arch/arm64/configs/defconfig
+++ b/arch/arm64/configs/defconfig
@@ -789,7 +789,7 @@ CONFIG_SND_AUDIO_GRAPH_CARD=m
CONFIG_HID_MULTITOUCH=m
CONFIG_I2C_HID_ACPI=m
CONFIG_I2C_HID_OF=m
@@ -727,7 +727,7 @@ CONFIG_SND_SOC_WSA881X=m
CONFIG_SND_SIMPLE_CARD=m
CONFIG_SND_AUDIO_GRAPH_CARD=m
CONFIG_I2C_HID=m
-CONFIG_USB_CONN_GPIO=m
+CONFIG_USB_CONN_GPIO=y
CONFIG_USB=y
@@ -67,66 +67,15 @@ index f50751b6eaec..15595d6db256 100644
2.25.1
From 26e4f7955080cc0f5670471823d73b972d3fe080 Mon Sep 17 00:00:00 2001
From: Ross Burton <ross.burton@arm.com>
Date: Wed, 8 Sep 2021 11:51:03 +0100
Subject: [PATCH 4/5] arm64: defconfig: remove obsolete CONFIG_ARCH_AGILEX and
CONFIG_ARCH_N5X
These config options were removed in 4a9a1a5602 ("arm64: socfpga: merge
Agilex and N5X into ARCH_INTEL_SOCFPGA"), so remove them from the
defconfig.
Fixes: 4a9a1a5602 ("arm64: socfpga: merge Agilex and N5X into ARCH_INTEL_SOCFPGA")
Signed-off-by: Ross Burton <ross.burton@arm.com>
---
arch/arm64/configs/defconfig | 2 --
1 file changed, 2 deletions(-)
diff --git a/arch/arm64/configs/defconfig b/arch/arm64/configs/defconfig
index 15595d6db256..257167463b60 100644
index 6d84761d1285..0f45921cf5b2 100644
--- a/arch/arm64/configs/defconfig
+++ b/arch/arm64/configs/defconfig
@@ -28,8 +28,6 @@ CONFIG_KALLSYMS_ALL=y
# CONFIG_COMPAT_BRK is not set
CONFIG_PROFILING=y
CONFIG_ARCH_ACTIONS=y
-CONFIG_ARCH_AGILEX=y
-CONFIG_ARCH_N5X=y
CONFIG_ARCH_SUNXI=y
CONFIG_ARCH_ALPINE=y
CONFIG_ARCH_APPLE=y
--
2.25.1
From 0931745bfa4e9a8db2885dd20d07426dbaf2fa73 Mon Sep 17 00:00:00 2001
From: Ross Burton <ross.burton@arm.com>
Date: Wed, 8 Sep 2021 12:19:33 +0100
Subject: [PATCH 5/5] arm64: defconfig: don't set CONFIG_ACPI_APEI_PCIEAER
Since 8c8ff55 ("PCI/AER: Don't select CONFIG_PCIEAER by default"), PCIe
Advanced Error Reporting isn't enabled by default.. As this means just
enabling CONFIG_CPI_APEI_PCIEAR does not have an effect, remove it from
the defconfig for clarity.
Signed-off-by: Ross Burton <ross.burton@arm.com>
---
arch/arm64/configs/defconfig | 1 -
1 file changed, 1 deletion(-)
diff --git a/arch/arm64/configs/defconfig b/arch/arm64/configs/defconfig
index 257167463b60..f620f31b0323 100644
--- a/arch/arm64/configs/defconfig
+++ b/arch/arm64/configs/defconfig
@@ -110,7 +110,6 @@ CONFIG_IMX_SCU_PD=y
CONFIG_ACPI=y
CONFIG_ACPI_APEI=y
CONFIG_ACPI_APEI_GHES=y
-CONFIG_ACPI_APEI_PCIEAER=y
CONFIG_ACPI_APEI_MEMORY_FAILURE=y
CONFIG_ACPI_APEI_EINJ=y
CONFIG_VIRTUALIZATION=y
--
2.25.1
@@ -683,7 +683,6 @@ CONFIG_DRM_PANFROST=m
CONFIG_FB=y
CONFIG_FB_MODE_HELPERS=y
CONFIG_FB_EFI=y
-CONFIG_BACKLIGHT_GENERIC=m
CONFIG_BACKLIGHT_PWM=m
CONFIG_BACKLIGHT_LP855X=m
CONFIG_LOGO=y
@@ -7,11 +7,6 @@ SRC_URI:append:generic-arm64 = " \
file://tcpci.cfg \
"
FILESEXTRAPATHS:prepend:qemuarm64-sbsa = "${ARMFILESPATHS}"
SRC_URI:append:qemuarm64-sbsa = " \
file://defconfig.patch \
"
FILESEXTRAPATHS:prepend:qemuarm64-secureboot = "${ARMFILESPATHS}"
SRC_URI:append:qemuarm64-secureboot = " \
file://zone_dma_revert.patch \
@@ -2,6 +2,7 @@ UPSTREAM_CHECK_GITTAGREGEX = "^(?P<pver>\d+(\.\d+)+)$"
COMPATIBLE_MACHINE ?= "invalid"
COMPATIBLE_MACHINE:qemuarm64 ?= "qemuarm64"
COMPATIBLE_MACHINE:qemu-generic-arm64 ?= "qemu-generic-arm64"
# Please add supported machines below or set it in .bbappend or .conf
OPTEEMACHINE ?= "${MACHINE}"
+11
View File
@@ -0,0 +1,11 @@
# short-description: Create an EFI disk image
# long-description: Creates a partitioned EFI disk image that the user
# can directly dd to boot media.
part /boot --source bootimg-efi --sourceparams="loader=${EFI_PROVIDER}" --label boot --active --align 1024 --use-uuid
part / --source rootfs --fstype=ext4 --label root --align 1024 --use-uuid
part swap --size 44 --label swap --fstype=swap --use-uuid
bootloader --ptable gpt --timeout=5 --append="rootfstype=ext4 ip=dhcp"