From patchwork Mon Apr 22 13:37:34 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ross Burton X-Patchwork-Id: 42748 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id BB01AC4345F for ; Mon, 22 Apr 2024 13:37:52 +0000 (UTC) Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by mx.groups.io with SMTP id smtpd.web11.18718.1713793063694118815 for ; Mon, 22 Apr 2024 06:37:43 -0700 Authentication-Results: mx.groups.io; dkim=none (message not signed); spf=pass (domain: arm.com, ip: 217.140.110.172, mailfrom: ross.burton@arm.com) Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 887CF1063; Mon, 22 Apr 2024 06:38:11 -0700 (PDT) Received: from cesw-amp-gbt-1s-m12830-04.oss.cambridge.arm.com (usa-sjc-imap-foss1.foss.arm.com [10.121.207.14]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id CF0FF3F73F; Mon, 22 Apr 2024 06:37:42 -0700 (PDT) From: Ross Burton To: meta-arm@lists.yoctoproject.org Cc: nd@arm.com Subject: [PATCH 1/6] arm-bsp/linux-yocto-rt: include linux-arm-platforms unconditionally Date: Mon, 22 Apr 2024 13:37:34 +0000 Message-Id: <20240422133739.190536-1-ross.burton@arm.com> X-Mailer: git-send-email 2.34.1 MIME-Version: 1.0 List-Id: X-Webhook-Received: from li982-79.members.linode.com [45.33.32.79] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Mon, 22 Apr 2024 13:37:52 -0000 X-Groupsio-URL: https://lists.yoctoproject.org/g/meta-arm/message/5578 Every platform should have the chance to try the -rt patches. Signed-off-by: Ross Burton --- meta-arm-bsp/recipes-kernel/linux/linux-yocto-rt_%.bbappend | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/meta-arm-bsp/recipes-kernel/linux/linux-yocto-rt_%.bbappend b/meta-arm-bsp/recipes-kernel/linux/linux-yocto-rt_%.bbappend index b1efabf3..db850eab 100644 --- a/meta-arm-bsp/recipes-kernel/linux/linux-yocto-rt_%.bbappend +++ b/meta-arm-bsp/recipes-kernel/linux/linux-yocto-rt_%.bbappend @@ -1,5 +1,3 @@ -# Only enable linux-yocto-rt for n1sdp and the Armv8-R AArch64 AEM FVP -LINUX_YOCTO_RT_REQUIRE ?= "" -LINUX_YOCTO_RT_REQUIRE:n1sdp = "linux-arm-platforms.inc" +# Add support for Arm Platforms (boards or simulators) -require ${LINUX_YOCTO_RT_REQUIRE} +require linux-arm-platforms.inc From patchwork Mon Apr 22 13:37:35 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ross Burton X-Patchwork-Id: 42751 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id E6AC8C10F1A for ; Mon, 22 Apr 2024 13:37:52 +0000 (UTC) Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by mx.groups.io with SMTP id smtpd.web11.18719.1713793064348813027 for ; Mon, 22 Apr 2024 06:37:44 -0700 Authentication-Results: mx.groups.io; dkim=none (message not signed); spf=pass (domain: arm.com, ip: 217.140.110.172, mailfrom: ross.burton@arm.com) Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 364E213D5; Mon, 22 Apr 2024 06:38:12 -0700 (PDT) Received: from cesw-amp-gbt-1s-m12830-04.oss.cambridge.arm.com (usa-sjc-imap-foss1.foss.arm.com [10.121.207.14]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 7D8A83F73F; Mon, 22 Apr 2024 06:37:43 -0700 (PDT) From: Ross Burton To: meta-arm@lists.yoctoproject.org Cc: nd@arm.com Subject: [PATCH 2/6] ci/testimage: don't :append to IMAGE_FEATURES Date: Mon, 22 Apr 2024 13:37:35 +0000 Message-Id: <20240422133739.190536-2-ross.burton@arm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20240422133739.190536-1-ross.burton@arm.com> References: <20240422133739.190536-1-ross.burton@arm.com> MIME-Version: 1.0 List-Id: X-Webhook-Received: from li982-79.members.linode.com [45.33.32.79] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Mon, 22 Apr 2024 13:37:52 -0000 X-Groupsio-URL: https://lists.yoctoproject.org/g/meta-arm/message/5579 Some BSPs use a proper initramfs and putting a SSH server into them via this :append isn't ideal. Adding using += should be sufficient. Signed-off-by: Ross Burton --- ci/testimage.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ci/testimage.yml b/ci/testimage.yml index a0e90250..4b71a5e1 100644 --- a/ci/testimage.yml +++ b/ci/testimage.yml @@ -12,7 +12,7 @@ local_conf_header: slirp: | TEST_RUNQEMUPARAMS = "slirp" sshd: | - IMAGE_FEATURES:append = " ssh-server-dropbear" + IMAGE_FEATURES += "ssh-server-dropbear" sshkeys: | CORE_IMAGE_EXTRA_INSTALL += "ssh-pregen-hostkeys" universally_failing_tests: | From patchwork Mon Apr 22 13:37:36 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ross Burton X-Patchwork-Id: 42750 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id ED0FCC41513 for ; Mon, 22 Apr 2024 13:37:52 +0000 (UTC) Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by mx.groups.io with SMTP id smtpd.web11.18720.1713793065044736907 for ; Mon, 22 Apr 2024 06:37:45 -0700 Authentication-Results: mx.groups.io; dkim=none (message not signed); spf=pass (domain: arm.com, ip: 217.140.110.172, mailfrom: ross.burton@arm.com) Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id D833E1063; Mon, 22 Apr 2024 06:38:12 -0700 (PDT) Received: from cesw-amp-gbt-1s-m12830-04.oss.cambridge.arm.com (usa-sjc-imap-foss1.foss.arm.com [10.121.207.14]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 2BA6B3F73F; Mon, 22 Apr 2024 06:37:44 -0700 (PDT) From: Ross Burton To: meta-arm@lists.yoctoproject.org Cc: nd@arm.com Subject: [PATCH 3/6] CI: add genericarm64 Date: Mon, 22 Apr 2024 13:37:36 +0000 Message-Id: <20240422133739.190536-3-ross.burton@arm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20240422133739.190536-1-ross.burton@arm.com> References: <20240422133739.190536-1-ross.burton@arm.com> MIME-Version: 1.0 List-Id: X-Webhook-Received: from li982-79.members.linode.com [45.33.32.79] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Mon, 22 Apr 2024 13:37:52 -0000 X-Groupsio-URL: https://lists.yoctoproject.org/g/meta-arm/message/5580 Add the new genericarm64 in meta-yocto-bsp to the CI. This new BSP is heavily based on the meta-arm generic-arm64 machine, but with an all-new fragmented kernel configuration. Signed-off-by: Ross Burton --- .gitlab-ci.yml | 9 +++++++++ ci/genericarm64.yml | 16 ++++++++++++++++ 2 files changed, 25 insertions(+) create mode 100644 ci/genericarm64.yml diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 4f16fcf3..36d3a6d6 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -160,6 +160,15 @@ arm-systemready-ir-acs: fvps: extends: .build +genericarm64: + extends: .build + parallel: + matrix: + - TOOLCHAINS: [gcc, clang] + TESTING: testimage + - KERNEL: linux-yocto-dev + TESTING: testimage + generic-arm64: extends: .build diff --git a/ci/genericarm64.yml b/ci/genericarm64.yml new file mode 100644 index 00000000..fd66bd40 --- /dev/null +++ b/ci/genericarm64.yml @@ -0,0 +1,16 @@ +header: + version: 14 + includes: + - ci/base.yml + +repos: + poky: + layers: + meta-yocto-bsp: + +local_conf_header: + bootloader: | + # If running genericarm64 in a qemu we need to manually build the bootloader + EXTRA_IMAGEDEPENDS += "virtual/bootloader" + +machine: genericarm64 From patchwork Mon Apr 22 13:37:37 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ross Burton X-Patchwork-Id: 42752 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 08AAEC16B13 for ; Mon, 22 Apr 2024 13:37:53 +0000 (UTC) Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by mx.groups.io with SMTP id smtpd.web10.18669.1713793065536584667 for ; Mon, 22 Apr 2024 06:37:45 -0700 Authentication-Results: mx.groups.io; dkim=none (message not signed); spf=pass (domain: arm.com, ip: 217.140.110.172, mailfrom: ross.burton@arm.com) Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 8801213D5; Mon, 22 Apr 2024 06:38:13 -0700 (PDT) Received: from cesw-amp-gbt-1s-m12830-04.oss.cambridge.arm.com (usa-sjc-imap-foss1.foss.arm.com [10.121.207.14]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id CE9883F73F; Mon, 22 Apr 2024 06:37:44 -0700 (PDT) From: Ross Burton To: meta-arm@lists.yoctoproject.org Cc: nd@arm.com Subject: [PATCH 4/6] arm-bsp: add new sbsa-ref machine Date: Mon, 22 Apr 2024 13:37:37 +0000 Message-Id: <20240422133739.190536-4-ross.burton@arm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20240422133739.190536-1-ross.burton@arm.com> References: <20240422133739.190536-1-ross.burton@arm.com> MIME-Version: 1.0 List-Id: X-Webhook-Received: from li982-79.members.linode.com [45.33.32.79] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Mon, 22 Apr 2024 13:37:53 -0000 X-Groupsio-URL: https://lists.yoctoproject.org/g/meta-arm/message/5581 This is mostly based on the existing qemu-generic-arm64 machine, but by not being based on the genericarm64 and instead being specifically a machine to run on the qemu sbsa-ref machine we get to tune differently. Specifically, this configures sbsa-ref to be a Neoverse N2 (v9), and the tune is set to match. Another notable difference to qemu-generic-arm64 is that the kernel configuration is at present defconfig. We may wish to change this in the future to be the same fragmented configuration as genericarm64. We have to ignore two testimage parselogs failures: one from NUMA which will be fixed in a future EDK2 release, and one from efifb where we should be using the bochsdrm driver instead (further investigation is needed) Signed-off-by: Ross Burton --- .gitlab-ci.yml | 10 +++++ ci/sbsa-ref.yml | 10 +++++ meta-arm-bsp/conf/layer.conf | 2 + meta-arm-bsp/conf/machine/sbsa-ref.conf | 43 +++++++++++++++++++ .../cases/parselogs-ignores-sbsa-ref.txt | 5 +++ .../trusted-firmware-a-sbsa-ref.inc | 6 +++ .../trusted-firmware-a_%.bbappend | 1 + .../uefi/edk2-firmware-sbsa-ref.inc | 19 ++++++++ .../recipes-bsp/uefi/edk2-firmware_%.bbappend | 1 + .../linux/linux-arm-platforms.inc | 7 +++ .../optee/optee-ftpm_%.bbappend | 1 + .../optee/optee-os-sbsa-ref.inc | 1 + .../optee/optee-os_4.%.bbappend | 1 + 13 files changed, 107 insertions(+) create mode 100644 ci/sbsa-ref.yml create mode 100644 meta-arm-bsp/conf/machine/sbsa-ref.conf create mode 100644 meta-arm-bsp/lib/oeqa/runtime/cases/parselogs-ignores-sbsa-ref.txt create mode 100644 meta-arm-bsp/recipes-bsp/trusted-firmware-a/trusted-firmware-a-sbsa-ref.inc create mode 100644 meta-arm-bsp/recipes-bsp/uefi/edk2-firmware-sbsa-ref.inc create mode 100644 meta-arm-bsp/recipes-security/optee/optee-ftpm_%.bbappend create mode 100644 meta-arm-bsp/recipes-security/optee/optee-os-sbsa-ref.inc diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 36d3a6d6..e94ea733 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -172,6 +172,16 @@ genericarm64: generic-arm64: extends: .build +sbsa-ref: + extends: .build + parallel: + matrix: + - KERNEL: [linux-yocto, linux-yocto-rt] + TOOLCHAINS: [gcc, clang] + TESTING: testimage + - KERNEL: linux-yocto-dev + TESTING: testimage + juno: extends: .build parallel: diff --git a/ci/sbsa-ref.yml b/ci/sbsa-ref.yml new file mode 100644 index 00000000..23680bd1 --- /dev/null +++ b/ci/sbsa-ref.yml @@ -0,0 +1,10 @@ +header: + version: 14 + includes: + - ci/base.yml + +machine: sbsa-ref + +target: + - core-image-sato + - sbsa-acs diff --git a/meta-arm-bsp/conf/layer.conf b/meta-arm-bsp/conf/layer.conf index 9013d11f..1a458400 100644 --- a/meta-arm-bsp/conf/layer.conf +++ b/meta-arm-bsp/conf/layer.conf @@ -26,3 +26,5 @@ BBFILES_DYNAMIC += " \ " WARN_QA:append:layer-meta-arm-bsp = " patch-status" + +addpylib ${LAYERDIR}/lib oeqa diff --git a/meta-arm-bsp/conf/machine/sbsa-ref.conf b/meta-arm-bsp/conf/machine/sbsa-ref.conf new file mode 100644 index 00000000..ccfc45a8 --- /dev/null +++ b/meta-arm-bsp/conf/machine/sbsa-ref.conf @@ -0,0 +1,43 @@ +#@TYPE: Machine +#@NAME: sbsa-ref +#@DESCRIPTION: Reference SBSA machine in qemu-system-aarch64 on Neoverse N2 + +require conf/machine/include/arm/armv9a/tune-neoversen2.inc +require conf/machine/include/qemu.inc + +PREFERRED_PROVIDER_virtual/kernel ?= "linux-yocto" +KERNEL_IMAGETYPE = "Image" +MACHINE_EXTRA_RRECOMMENDS += "kernel-modules" + +MACHINE_FEATURES = " alsa bluetooth efi qemu-usermode rtc screen usbhost vfat wifi" + +IMAGE_FSTYPES += "wic.qcow2" + +# 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" + +EFI_PROVIDER ?= "${@bb.utils.contains("DISTRO_FEATURES", "systemd", "systemd-boot", "grub-efi", d)}" + +SERIAL_CONSOLES ?= "115200;ttyAMA0 115200;hvc0" + +EXTRA_IMAGEDEPENDS += "edk2-firmware" + +QB_SYSTEM_NAME = "qemu-system-aarch64" +QB_MACHINE = "-machine sbsa-ref" +QB_CPU = "-cpu neoverse-n2" +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 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" +# sbsa-ref is a true virtual machine so can't use KVM +QEMU_USE_KVM = "0" diff --git a/meta-arm-bsp/lib/oeqa/runtime/cases/parselogs-ignores-sbsa-ref.txt b/meta-arm-bsp/lib/oeqa/runtime/cases/parselogs-ignores-sbsa-ref.txt new file mode 100644 index 00000000..dd477996 --- /dev/null +++ b/meta-arm-bsp/lib/oeqa/runtime/cases/parselogs-ignores-sbsa-ref.txt @@ -0,0 +1,5 @@ +# The release of EDK2 after 202402 should fix this +NUMA: Failed to initialise from firmware + +# TODO: we should be using bochsdrm over efifb? +efifb: cannot reserve video memory at 0x80000000 diff --git a/meta-arm-bsp/recipes-bsp/trusted-firmware-a/trusted-firmware-a-sbsa-ref.inc b/meta-arm-bsp/recipes-bsp/trusted-firmware-a/trusted-firmware-a-sbsa-ref.inc new file mode 100644 index 00000000..15061397 --- /dev/null +++ b/meta-arm-bsp/recipes-bsp/trusted-firmware-a/trusted-firmware-a-sbsa-ref.inc @@ -0,0 +1,6 @@ +# sbsa-ref specific TF-A support + +COMPATIBLE_MACHINE = "sbsa-ref" + +TFA_PLATFORM = "qemu_sbsa" +TFA_INSTALL_TARGET = "bl1 fip" diff --git a/meta-arm-bsp/recipes-bsp/trusted-firmware-a/trusted-firmware-a_%.bbappend b/meta-arm-bsp/recipes-bsp/trusted-firmware-a/trusted-firmware-a_%.bbappend index cb482a6f..214996a9 100644 --- a/meta-arm-bsp/recipes-bsp/trusted-firmware-a/trusted-firmware-a_%.bbappend +++ b/meta-arm-bsp/recipes-bsp/trusted-firmware-a/trusted-firmware-a_%.bbappend @@ -7,6 +7,7 @@ MACHINE_TFA_REQUIRE:corstone1000 = "trusted-firmware-a-corstone1000.inc" MACHINE_TFA_REQUIRE:fvp-base = "trusted-firmware-a-fvp-base.inc" MACHINE_TFA_REQUIRE:juno = "trusted-firmware-a-juno.inc" MACHINE_TFA_REQUIRE:n1sdp = "trusted-firmware-a-n1sdp.inc" +MACHINE_TFA_REQUIRE:sbsa-ref = "trusted-firmware-a-sbsa-ref.inc" MACHINE_TFA_REQUIRE:sgi575 = "trusted-firmware-a-sgi575.inc" MACHINE_TFA_REQUIRE:tc = "trusted-firmware-a-tc.inc" diff --git a/meta-arm-bsp/recipes-bsp/uefi/edk2-firmware-sbsa-ref.inc b/meta-arm-bsp/recipes-bsp/uefi/edk2-firmware-sbsa-ref.inc new file mode 100644 index 00000000..450f6af2 --- /dev/null +++ b/meta-arm-bsp/recipes-bsp/uefi/edk2-firmware-sbsa-ref.inc @@ -0,0 +1,19 @@ +COMPATIBLE_MACHINE:sbsa-ref = "sbsa-ref" + +DEPENDS:append:sbsa-ref = " trusted-firmware-a coreutils-native" + +EDK2_PLATFORM:sbsa-ref = "SbsaQemu" +EDK2_PLATFORM_DSC:sbsa-ref = "Platform/Qemu/SbsaQemu/SbsaQemu.dsc" +EDK2_BIN_NAME:sbsa-ref = "SBSA_FLASH0.fd" + +do_compile:prepend:sbsa-ref() { + 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:sbsa-ref() { + 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 +} diff --git a/meta-arm-bsp/recipes-bsp/uefi/edk2-firmware_%.bbappend b/meta-arm-bsp/recipes-bsp/uefi/edk2-firmware_%.bbappend index e5018bb0..cba48460 100644 --- a/meta-arm-bsp/recipes-bsp/uefi/edk2-firmware_%.bbappend +++ b/meta-arm-bsp/recipes-bsp/uefi/edk2-firmware_%.bbappend @@ -4,6 +4,7 @@ MACHINE_EDK2_REQUIRE ?= "" MACHINE_EDK2_REQUIRE:fvp-base = "edk2-firmware-fvp-base.inc" MACHINE_EDK2_REQUIRE:juno = "edk2-firmware-juno.inc" +MACHINE_EDK2_REQUIRE:sbsa-ref = "edk2-firmware-sbsa-ref.inc" MACHINE_EDK2_REQUIRE:sgi575 = "edk2-firmware-sgi575.inc" MACHINE_EDK2_REQUIRE:n1sdp = "edk2-firmware-n1sdp.inc" diff --git a/meta-arm-bsp/recipes-kernel/linux/linux-arm-platforms.inc b/meta-arm-bsp/recipes-kernel/linux/linux-arm-platforms.inc index 2856b461..933acc3e 100644 --- a/meta-arm-bsp/recipes-kernel/linux/linux-arm-platforms.inc +++ b/meta-arm-bsp/recipes-kernel/linux/linux-arm-platforms.inc @@ -100,3 +100,10 @@ KCONFIG_MODE:sgi575 = "--alldefconfig" COMPATIBLE_MACHINE:tc = "(tc0|tc1)" KBUILD_DEFCONFIG:tc = "defconfig" KCONFIG_MODE:tc = "--alldefconfig" + +# +# sbsa-ref KMACHINE +# +COMPATIBLE_MACHINE:sbsa-ref = "sbsa-ref" +KBUILD_DEFCONFIG:sbsa-ref = "defconfig" +KCONFIG_MODE:sbsa-ref = "--alldefconfig" diff --git a/meta-arm-bsp/recipes-security/optee/optee-ftpm_%.bbappend b/meta-arm-bsp/recipes-security/optee/optee-ftpm_%.bbappend new file mode 100644 index 00000000..6e46c371 --- /dev/null +++ b/meta-arm-bsp/recipes-security/optee/optee-ftpm_%.bbappend @@ -0,0 +1 @@ +COMPATIBLE_MACHINE:sbsa-ref = "sbsa-ref" diff --git a/meta-arm-bsp/recipes-security/optee/optee-os-sbsa-ref.inc b/meta-arm-bsp/recipes-security/optee/optee-os-sbsa-ref.inc new file mode 100644 index 00000000..6e46c371 --- /dev/null +++ b/meta-arm-bsp/recipes-security/optee/optee-os-sbsa-ref.inc @@ -0,0 +1 @@ +COMPATIBLE_MACHINE:sbsa-ref = "sbsa-ref" diff --git a/meta-arm-bsp/recipes-security/optee/optee-os_4.%.bbappend b/meta-arm-bsp/recipes-security/optee/optee-os_4.%.bbappend index 788a23ef..ee0945d9 100644 --- a/meta-arm-bsp/recipes-security/optee/optee-os_4.%.bbappend +++ b/meta-arm-bsp/recipes-security/optee/optee-os_4.%.bbappend @@ -3,5 +3,6 @@ MACHINE_OPTEE_OS_REQUIRE ?= "" MACHINE_OPTEE_OS_REQUIRE:corstone1000 = "optee-os-corstone1000-common.inc" MACHINE_OPTEE_OS_REQUIRE:n1sdp = "optee-os-n1sdp.inc" +MACHINE_OPTEE_OS_REQUIRE:sbsa-ref = "optee-os-sbsa-ref.inc" require ${MACHINE_OPTEE_OS_REQUIRE} From patchwork Mon Apr 22 13:37:38 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ross Burton X-Patchwork-Id: 42753 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id DFBFEC07E8E for ; Mon, 22 Apr 2024 13:37:52 +0000 (UTC) Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by mx.groups.io with SMTP id smtpd.web10.18670.1713793066461501772 for ; Mon, 22 Apr 2024 06:37:46 -0700 Authentication-Results: mx.groups.io; dkim=none (message not signed); spf=pass (domain: arm.com, ip: 217.140.110.172, mailfrom: ross.burton@arm.com) Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 51D7B1063; Mon, 22 Apr 2024 06:38:14 -0700 (PDT) Received: from cesw-amp-gbt-1s-m12830-04.oss.cambridge.arm.com (usa-sjc-imap-foss1.foss.arm.com [10.121.207.14]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 7E96B3F73F; Mon, 22 Apr 2024 06:37:45 -0700 (PDT) From: Ross Burton To: meta-arm@lists.yoctoproject.org Cc: nd@arm.com Subject: [PATCH 5/6] arm: remove generic-arm64 and qemu-generic-arm64 Date: Mon, 22 Apr 2024 13:37:38 +0000 Message-Id: <20240422133739.190536-5-ross.burton@arm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20240422133739.190536-1-ross.burton@arm.com> References: <20240422133739.190536-1-ross.burton@arm.com> MIME-Version: 1.0 List-Id: X-Webhook-Received: from li982-79.members.linode.com [45.33.32.79] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Mon, 22 Apr 2024 13:37:52 -0000 X-Groupsio-URL: https://lists.yoctoproject.org/g/meta-arm/message/5582 These BSPs are now obsolete. Users of generic-arm64 should use genericarm64 from meta-yocto-bsp. Users of qemu-generic-arm64 should use sbsa-ref from meta-arm-bsp. Signed-off-by: Ross Burton --- .gitlab-ci.yml | 13 ------- ci/generic-arm64.yml | 6 ---- ci/qemu-generic-arm64.yml | 14 -------- meta-arm/conf/machine/generic-arm64.conf | 25 -------------- meta-arm/conf/machine/qemu-generic-arm64.conf | 34 ------------------- .../trusted-firmware-a_%.bbappend | 3 -- .../recipes-bsp/uefi/edk2-firmware_%.bbappend | 18 ---------- .../generic-arm64-preempt-rt-tweaks.cfg | 4 --- .../generic-arm64-preempt-rt.scc | 7 ---- .../generic-arm64-standard.scc | 6 ---- .../linux/linux-yocto%.bbappend | 6 ---- .../optee-ftpm/optee-ftpm_git.bb | 1 - meta-arm/recipes-security/optee/optee.inc | 1 - 13 files changed, 138 deletions(-) delete mode 100644 ci/generic-arm64.yml delete mode 100644 ci/qemu-generic-arm64.yml delete mode 100644 meta-arm/conf/machine/generic-arm64.conf delete mode 100644 meta-arm/conf/machine/qemu-generic-arm64.conf delete mode 100644 meta-arm/recipes-kernel/linux/files/generic-arm64-kmeta/generic-arm64-preempt-rt-tweaks.cfg delete mode 100644 meta-arm/recipes-kernel/linux/files/generic-arm64-kmeta/generic-arm64-preempt-rt.scc delete mode 100644 meta-arm/recipes-kernel/linux/files/generic-arm64-kmeta/generic-arm64-standard.scc diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index e94ea733..a0d25063 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -169,9 +169,6 @@ genericarm64: - KERNEL: linux-yocto-dev TESTING: testimage -generic-arm64: - extends: .build - sbsa-ref: extends: .build parallel: @@ -201,16 +198,6 @@ n1sdp: matrix: - TESTING: [none, n1sdp-ts, n1sdp-optee, tftf] -qemu-generic-arm64: - extends: .build - parallel: - matrix: - - KERNEL: [linux-yocto, linux-yocto-rt] - TOOLCHAINS: [gcc, clang] - TESTING: testimage - - KERNEL: linux-yocto-dev - TESTING: testimage - qemuarm64-secureboot: extends: .build parallel: diff --git a/ci/generic-arm64.yml b/ci/generic-arm64.yml deleted file mode 100644 index 5d944ef1..00000000 --- a/ci/generic-arm64.yml +++ /dev/null @@ -1,6 +0,0 @@ -header: - version: 14 - includes: - - ci/base.yml - -machine: generic-arm64 diff --git a/ci/qemu-generic-arm64.yml b/ci/qemu-generic-arm64.yml deleted file mode 100644 index 43ae2563..00000000 --- a/ci/qemu-generic-arm64.yml +++ /dev/null @@ -1,14 +0,0 @@ -header: - version: 14 - includes: - - ci/generic-arm64.yml - -local_conf_header: - failing_tests: | - DEFAULT_TEST_SUITES:remove = "parselogs" - -machine: qemu-generic-arm64 - -target: - - core-image-sato - - sbsa-acs diff --git a/meta-arm/conf/machine/generic-arm64.conf b/meta-arm/conf/machine/generic-arm64.conf deleted file mode 100644 index 9594e041..00000000 --- a/meta-arm/conf/machine/generic-arm64.conf +++ /dev/null @@ -1,25 +0,0 @@ -#@TYPE: Machine -#@NAME: generic-arm64 -#@DESCRIPTION: Generic Arm64 machine for typical SystemReady platforms, which -#have working firmware and boot via EFI. - -require conf/machine/include/arm/arch-armv8a.inc - -PREFERRED_PROVIDER_virtual/kernel ?= "linux-yocto" -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" - -SERIAL_CONSOLES ?= "115200;ttyAMA0 115200;hvc0" - -XSERVER ?= "xserver-xorg \ - xf86-video-fbdev \ - xf86-video-modesetting \ - " diff --git a/meta-arm/conf/machine/qemu-generic-arm64.conf b/meta-arm/conf/machine/qemu-generic-arm64.conf deleted file mode 100644 index 6925854f..00000000 --- a/meta-arm/conf/machine/qemu-generic-arm64.conf +++ /dev/null @@ -1,34 +0,0 @@ -#@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 - -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" -# sbsa-ref is a true virtual machine so can't use KVM -QEMU_USE_KVM = "0" diff --git a/meta-arm/recipes-bsp/trusted-firmware-a/trusted-firmware-a_%.bbappend b/meta-arm/recipes-bsp/trusted-firmware-a/trusted-firmware-a_%.bbappend index b3624bb3..3d42a97c 100644 --- a/meta-arm/recipes-bsp/trusted-firmware-a/trusted-firmware-a_%.bbappend +++ b/meta-arm/recipes-bsp/trusted-firmware-a/trusted-firmware-a_%.bbappend @@ -1,5 +1,4 @@ COMPATIBLE_MACHINE:qemuarm64-secureboot = "qemuarm64-secureboot" -COMPATIBLE_MACHINE:qemu-generic-arm64 = "qemu-generic-arm64" COMPATIBLE_MACHINE:qemuarm-secureboot = "qemuarm-secureboot" #FIXME - clang fails to build tfa for qemuarm-secureboot, and possibly other @@ -14,7 +13,6 @@ SRC_URI:append:qemuarm64-secureboot = " \ " TFA_PLATFORM:qemuarm64-secureboot = "qemu" -TFA_PLATFORM:qemu-generic-arm64 = "qemu_sbsa" TFA_PLATFORM:qemuarm-secureboot = "qemu" # Trusted Services secure partitions require arm-ffa machine feature. @@ -32,7 +30,6 @@ TFA_BUILD_TARGET:aarch64:qemuall = "all fip" TFA_BUILD_TARGET:arm:qemuall = "all fip" TFA_INSTALL_TARGET:qemuarm64-secureboot = "flash.bin" -TFA_INSTALL_TARGET:qemu-generic-arm64 = "bl1 fip" TFA_INSTALL_TARGET:qemuarm-secureboot = "flash.bin" DEPENDS:append:aarch64:qemuall = " optee-os" diff --git a/meta-arm/recipes-bsp/uefi/edk2-firmware_%.bbappend b/meta-arm/recipes-bsp/uefi/edk2-firmware_%.bbappend index 7a39bb03..e923d9f0 100644 --- a/meta-arm/recipes-bsp/uefi/edk2-firmware_%.bbappend +++ b/meta-arm/recipes-bsp/uefi/edk2-firmware_%.bbappend @@ -13,24 +13,6 @@ EDK2_PLATFORM:qemuarm = "ArmVirtQemu-ARM" EDK2_PLATFORM_DSC:qemuarm = "ArmVirtPkg/ArmVirtQemu.dsc" EDK2_BIN_NAME:qemuarm = "QEMU_EFI.fd" -COMPATIBLE_MACHINE:qemu-generic-arm64 = "qemu-generic-arm64" -DEPENDS:append:qemu-generic-arm64 = " trusted-firmware-a coreutils-native" -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" - -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: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 -} - do_install:append:qemuarm64() { install ${B}/Build/${EDK2_PLATFORM}/${EDK2_BUILD_MODE}_${EDK_COMPILER}/FV/${EDK2_BIN_NAME} ${D}/firmware/ } diff --git a/meta-arm/recipes-kernel/linux/files/generic-arm64-kmeta/generic-arm64-preempt-rt-tweaks.cfg b/meta-arm/recipes-kernel/linux/files/generic-arm64-kmeta/generic-arm64-preempt-rt-tweaks.cfg deleted file mode 100644 index 84e0dd71..00000000 --- a/meta-arm/recipes-kernel/linux/files/generic-arm64-kmeta/generic-arm64-preempt-rt-tweaks.cfg +++ /dev/null @@ -1,4 +0,0 @@ -# These configurations have a dependency on !PREEMPT_RT. Set them to `n` to -# avoid complain when do_kernel_configcheck. -CONFIG_LEDS_TRIGGER_CPU=n -CONFIG_TRANSPARENT_HUGEPAGE=n diff --git a/meta-arm/recipes-kernel/linux/files/generic-arm64-kmeta/generic-arm64-preempt-rt.scc b/meta-arm/recipes-kernel/linux/files/generic-arm64-kmeta/generic-arm64-preempt-rt.scc deleted file mode 100644 index ae97c2e2..00000000 --- a/meta-arm/recipes-kernel/linux/files/generic-arm64-kmeta/generic-arm64-preempt-rt.scc +++ /dev/null @@ -1,7 +0,0 @@ -define KMACHINE generic-arm64 -define KTYPE preempt-rt -define KARCH arm64 - -kconf hardware generic-arm64-preempt-rt-tweaks.cfg -include ktypes/preempt-rt/preempt-rt.scc -include features/bluetooth/bluetooth.scc diff --git a/meta-arm/recipes-kernel/linux/files/generic-arm64-kmeta/generic-arm64-standard.scc b/meta-arm/recipes-kernel/linux/files/generic-arm64-kmeta/generic-arm64-standard.scc deleted file mode 100644 index 70364769..00000000 --- a/meta-arm/recipes-kernel/linux/files/generic-arm64-kmeta/generic-arm64-standard.scc +++ /dev/null @@ -1,6 +0,0 @@ -define KMACHINE generic-arm64 -define KTYPE standard -define KARCH arm64 - -include ktypes/standard/standard.scc -include features/bluetooth/bluetooth.scc diff --git a/meta-arm/recipes-kernel/linux/linux-yocto%.bbappend b/meta-arm/recipes-kernel/linux/linux-yocto%.bbappend index c4e351bb..a287d0e1 100644 --- a/meta-arm/recipes-kernel/linux/linux-yocto%.bbappend +++ b/meta-arm/recipes-kernel/linux/linux-yocto%.bbappend @@ -1,11 +1,5 @@ ARMFILESPATHS := "${THISDIR}/files:" -COMPATIBLE_MACHINE:generic-arm64 = "generic-arm64" -FILESEXTRAPATHS:prepend:generic-arm64 = "${ARMFILESPATHS}" -SRC_URI:append:generic-arm64 = " \ - file://generic-arm64-kmeta;type=kmeta;destsuffix=generic-arm64-kmeta \ - " - FILESEXTRAPATHS:prepend:qemuarm64-secureboot = "${ARMFILESPATHS}" SRC_URI:append:qemuarm64-secureboot = " \ file://tee.cfg \ diff --git a/meta-arm/recipes-security/optee-ftpm/optee-ftpm_git.bb b/meta-arm/recipes-security/optee-ftpm/optee-ftpm_git.bb index 1bb76819..d5f6e01d 100644 --- a/meta-arm/recipes-security/optee-ftpm/optee-ftpm_git.bb +++ b/meta-arm/recipes-security/optee-ftpm/optee-ftpm_git.bb @@ -5,7 +5,6 @@ HOMEPAGE = "https://github.com/microsoft/ms-tpm-20-ref/" COMPATIBLE_MACHINE ?= "invalid" COMPATIBLE_MACHINE:qemuarm64 = "qemuarm64" COMPATIBLE_MACHINE:qemuarm64-secureboot = "qemuarm64" -COMPATIBLE_MACHINE:qemu-generic-arm64 = "qemu-generic-arm64" COMPATIBLE_MACHINE:qemuarm-secureboot = "qemuarm" #FIXME - doesn't currently work with clang diff --git a/meta-arm/recipes-security/optee/optee.inc b/meta-arm/recipes-security/optee/optee.inc index 1569a9df..37676f14 100644 --- a/meta-arm/recipes-security/optee/optee.inc +++ b/meta-arm/recipes-security/optee/optee.inc @@ -2,7 +2,6 @@ UPSTREAM_CHECK_GITTAGREGEX = "^(?P\d+(\.\d+)+)$" COMPATIBLE_MACHINE ?= "invalid" COMPATIBLE_MACHINE:qemuarm64 ?= "qemuarm64" -COMPATIBLE_MACHINE:qemu-generic-arm64 ?= "qemu-generic-arm64" COMPATIBLE_MACHINE:qemuarm ?= "qemuarm" # Please add supported machines below or set it in .bbappend or .conf From patchwork Mon Apr 22 13:37:39 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ross Burton X-Patchwork-Id: 42749 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id CE01DC07C79 for ; Mon, 22 Apr 2024 13:37:52 +0000 (UTC) Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by mx.groups.io with SMTP id smtpd.web10.18672.1713793067072759563 for ; Mon, 22 Apr 2024 06:37:47 -0700 Authentication-Results: mx.groups.io; dkim=none (message not signed); spf=pass (domain: arm.com, ip: 217.140.110.172, mailfrom: ross.burton@arm.com) Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 004EB150C; Mon, 22 Apr 2024 06:38:15 -0700 (PDT) Received: from cesw-amp-gbt-1s-m12830-04.oss.cambridge.arm.com (usa-sjc-imap-foss1.foss.arm.com [10.121.207.14]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 483553F73F; Mon, 22 Apr 2024 06:37:46 -0700 (PDT) From: Ross Burton To: meta-arm@lists.yoctoproject.org Cc: nd@arm.com Subject: [PATCH 6/6] CI: sort jobs alphabetically Date: Mon, 22 Apr 2024 13:37:39 +0000 Message-Id: <20240422133739.190536-6-ross.burton@arm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20240422133739.190536-1-ross.burton@arm.com> References: <20240422133739.190536-1-ross.burton@arm.com> MIME-Version: 1.0 List-Id: X-Webhook-Received: from li982-79.members.linode.com [45.33.32.79] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Mon, 22 Apr 2024 13:37:52 -0000 X-Groupsio-URL: https://lists.yoctoproject.org/g/meta-arm/message/5583 Signed-off-by: Ross Burton --- .gitlab-ci.yml | 176 ++++++++++++++++++++++++------------------------- 1 file changed, 88 insertions(+), 88 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index a0d25063..53a99a76 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -119,6 +119,29 @@ update-repos: # VIRT: [none, xen] # TESTING: testimage +arm-systemready-ir-acs: + extends: .build + timeout: 12h + parallel: + matrix: + # arm-systemready-ir-acs must be specified after fvp-base for ordering + # purposes for the jobs-to-kas output. It is not enough to just have it + # in the job name because fvp-base.yml overwrites the target. + - PLATFORM: fvp-base + ARM_SYSTEMREADY_IR_ACS: arm-systemready-ir-acs + tags: + - ${ACS_TAG} + +# Validate layers are Yocto Project Compatible +check-layers: + extends: .setup + script: + - kas shell --update --force-checkout ci/base.yml:ci/meta-openembedded.yml:lockfile.yml --command \ + "yocto-check-layer-wrapper $CI_PROJECT_DIR/$LAYER --dependency $CI_PROJECT_DIR/meta-* $KAS_WORK_DIR/meta-openembedded/meta-oe --no-auto-dependency" + parallel: + matrix: + - LAYER: [meta-arm, meta-arm-bsp, meta-arm-toolchain] + corstone1000-fvp: extends: .build parallel: @@ -136,6 +159,29 @@ corstone1000-mps3: TESTING: [none, tftf] - FIRMWARE: none +documentation: + extends: .setup + script: + - | + # This can be removed when the kas container has python3-venv installed + sudo apt-get update && sudo apt-get install --yes python3-venv + + python3 -m venv venv + . ./venv/bin/activate + + pip3 install -r meta-arm-bsp/documentation/requirements.txt + + for CONF in meta-*/documentation/*/conf.py ; do + echo Building $CONF... + SOURCE_DIR=$(dirname $CONF) + MACHINE=$(basename $SOURCE_DIR) + sphinx-build -vW $SOURCE_DIR build-docs/$MACHINE + done + test -d build-docs/ + artifacts: + paths: + - build-docs/ + fvp-base: extends: .build parallel: @@ -144,19 +190,6 @@ fvp-base: - FIRMWARE: edk2 - SYSTEMREADY_FIRMWARE: arm-systemready-firmware -arm-systemready-ir-acs: - extends: .build - timeout: 12h - parallel: - matrix: - # arm-systemready-ir-acs must be specified after fvp-base for ordering - # purposes for the jobs-to-kas output. It is not enough to just have it - # in the job name because fvp-base.yml overwrites the target. - - PLATFORM: fvp-base - ARM_SYSTEMREADY_IR_ACS: arm-systemready-ir-acs - tags: - - ${ACS_TAG} - fvps: extends: .build @@ -169,16 +202,6 @@ genericarm64: - KERNEL: linux-yocto-dev TESTING: testimage -sbsa-ref: - extends: .build - parallel: - matrix: - - KERNEL: [linux-yocto, linux-yocto-rt] - TOOLCHAINS: [gcc, clang] - TESTING: testimage - - KERNEL: linux-yocto-dev - TESTING: testimage - juno: extends: .build parallel: @@ -186,6 +209,22 @@ juno: - TOOLCHAINS: [gcc, clang] FIRMWARE: [u-boot, edk2] +# What percentage of machines in the layer do we build +machine-coverage: + extends: .setup + script: + - ./ci/check-machine-coverage + coverage: '/Coverage: \d+/' + +metrics: + extends: .setup + artifacts: + reports: + metrics: metrics.txt + script: + - kas shell --update --force-checkout ci/base.yml --command \ + "$CI_PROJECT_DIR/ci/patchreview $CI_PROJECT_DIR/meta-* --verbose --metrics $CI_PROJECT_DIR/metrics.txt" + musca-b1: extends: .build @@ -198,6 +237,20 @@ n1sdp: matrix: - TESTING: [none, n1sdp-ts, n1sdp-optee, tftf] +pending-updates: + extends: .setup + artifacts: + paths: + - update-report + script: + - rm -fr update-report + # This configuration has all of the layers we need enabled + - kas shell --update --force-checkout ci/qemuarm64.yml:ci/meta-openembedded.yml:ci/meta-secure-core.yml:lockfile.yml --command \ + "$CI_PROJECT_DIR/scripts/machine-summary.py -t report -o $CI_PROJECT_DIR/update-report $($CI_PROJECT_DIR/ci/listmachines.py meta-arm meta-arm-bsp)" + # Do this on x86 whilst the compilers are x86-only + tags: + - x86_64 + qemuarm64-secureboot: extends: .build parallel: @@ -263,11 +316,15 @@ qemuarmv5: - DISTRO: poky-tiny TESTING: testimage -sgi575: - extends: .build - -toolchains: +sbsa-ref: extends: .build + parallel: + matrix: + - KERNEL: [linux-yocto, linux-yocto-rt] + TOOLCHAINS: [gcc, clang] + TESTING: testimage + - KERNEL: linux-yocto-dev + TESTING: testimage selftest: extends: .setup @@ -275,65 +332,8 @@ selftest: - KASFILES=./ci/qemuarm64.yml:./ci/selftest.yml:lockfile.yml - kas shell --update --force-checkout $KASFILES -c 'oe-selftest --num-processes 2 --select-tag meta-arm --run-all-tests' -# Validate layers are Yocto Project Compatible -check-layers: - extends: .setup - script: - - kas shell --update --force-checkout ci/base.yml:ci/meta-openembedded.yml:lockfile.yml --command \ - "yocto-check-layer-wrapper $CI_PROJECT_DIR/$LAYER --dependency $CI_PROJECT_DIR/meta-* $KAS_WORK_DIR/meta-openembedded/meta-oe --no-auto-dependency" - parallel: - matrix: - - LAYER: [meta-arm, meta-arm-bsp, meta-arm-toolchain] - -pending-updates: - extends: .setup - artifacts: - paths: - - update-report - script: - - rm -fr update-report - # This configuration has all of the layers we need enabled - - kas shell --update --force-checkout ci/qemuarm64.yml:ci/meta-openembedded.yml:ci/meta-secure-core.yml:lockfile.yml --command \ - "$CI_PROJECT_DIR/scripts/machine-summary.py -t report -o $CI_PROJECT_DIR/update-report $($CI_PROJECT_DIR/ci/listmachines.py meta-arm meta-arm-bsp)" - # Do this on x86 whilst the compilers are x86-only - tags: - - x86_64 - -# What percentage of machines in the layer do we build -machine-coverage: - extends: .setup - script: - - ./ci/check-machine-coverage - coverage: '/Coverage: \d+/' - -metrics: - extends: .setup - artifacts: - reports: - metrics: metrics.txt - script: - - kas shell --update --force-checkout ci/base.yml --command \ - "$CI_PROJECT_DIR/ci/patchreview $CI_PROJECT_DIR/meta-* --verbose --metrics $CI_PROJECT_DIR/metrics.txt" - -documentation: - extends: .setup - script: - - | - # This can be removed when the kas container has python3-venv installed - sudo apt-get update && sudo apt-get install --yes python3-venv - - python3 -m venv venv - . ./venv/bin/activate - - pip3 install -r meta-arm-bsp/documentation/requirements.txt +sgi575: + extends: .build - for CONF in meta-*/documentation/*/conf.py ; do - echo Building $CONF... - SOURCE_DIR=$(dirname $CONF) - MACHINE=$(basename $SOURCE_DIR) - sphinx-build -vW $SOURCE_DIR build-docs/$MACHINE - done - test -d build-docs/ - artifacts: - paths: - - build-docs/ +toolchains: + extends: .build