From patchwork Wed Mar 25 18:06:38 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jon Mason X-Patchwork-Id: 84381 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 1EA8B109C055 for ; Wed, 25 Mar 2026 18:06:42 +0000 (UTC) Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by mx.groups.io with SMTP id smtpd.msgproc01-g2.29460.1774462000785207272 for ; Wed, 25 Mar 2026 11:06:41 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="dkim: body hash did not verify" header.i=@arm.com header.s=foss header.b=pSJv655R; spf=pass (domain: arm.com, ip: 217.140.110.172, mailfrom: jon.mason@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 32C3D16F2 for ; Wed, 25 Mar 2026 11:06:34 -0700 (PDT) Received: from H24V3P4C17.arm.com (usa-sjc-imap-foss1.foss.arm.com [10.121.207.14]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 032323F836 for ; Wed, 25 Mar 2026 11:06:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=arm.com; s=foss; t=1774462000; bh=T6tKa8Y0oKESv4k1/e968vKQvNJKaNWwZRDsW6w6P6E=; h=From:To:Subject:Date:From; b=pSJv655RCkPTX8Xda7eo6yakX1+Xfo60YwdbJgQfNZomZHHqcgrZmqxnfViWot8mC 1CDkXZmbt4sKY+AbGUA1pB7wXhAtJn+xLnXuYycmxcdsdhwgHX1GELnFlJ/RU27sBJ WN6JkqS+logXUXAF8dW03Lh03EkuejDQtIXIl9OU= From: Jon Mason To: meta-arm@lists.yoctoproject.org Subject: [PATCH 1/2] arm/scp-firmware: add git recipe Date: Wed, 25 Mar 2026 14:06:38 -0400 Message-ID: <20260325180639.88517-1-jon.mason@arm.com> X-Mailer: git-send-email 2.50.1 MIME-Version: 1.0 List-Id: X-Webhook-Received: from 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Wed, 25 Mar 2026 18:06:42 -0000 X-Groupsio-URL: https://lists.yoctoproject.org/g/meta-arm/message/6972 Split off the main portion of the SCP firmware recipe into an include file and create a git versioned recipe. This allows for building and testing the latest sources. Signed-off-by: Jon Mason --- ci/latest-revisions.yml | 1 + .../recipes-bsp/scp-firmware/scp-firmware.inc | 98 +++++++++++++++++ .../scp-firmware/scp-firmware_2.16.0.bb | 101 +----------------- .../scp-firmware/scp-firmware_git.bb | 11 ++ 4 files changed, 112 insertions(+), 99 deletions(-) create mode 100644 meta-arm/recipes-bsp/scp-firmware/scp-firmware.inc create mode 100644 meta-arm/recipes-bsp/scp-firmware/scp-firmware_git.bb diff --git a/ci/latest-revisions.yml b/ci/latest-revisions.yml index 94d6bc2eadc0..10c2279c8cdb 100644 --- a/ci/latest-revisions.yml +++ b/ci/latest-revisions.yml @@ -5,6 +5,7 @@ header: local_conf_header: latest_revisions: | + PREFERRED_VERSION_scp-firmware ?= "git" PREFERRED_VERSION_trusted-firmware-a ?= "git" PREFERRED_VERSION_trusted-firmware-m ?= "git" PREFERRED_VERSION_optee-client ?= "git" diff --git a/meta-arm/recipes-bsp/scp-firmware/scp-firmware.inc b/meta-arm/recipes-bsp/scp-firmware/scp-firmware.inc new file mode 100644 index 000000000000..4623afe81ff2 --- /dev/null +++ b/meta-arm/recipes-bsp/scp-firmware/scp-firmware.inc @@ -0,0 +1,98 @@ +SUMMARY = "SCP and MCP Firmware" +DESCRIPTION = "Firmware for SCP and MCP software reference implementation" +HOMEPAGE = "https://gitlab.arm.com/firmware/SCP-firmware" + +LICENSE = "BSD-3-Clause & Apache-2.0" +LIC_FILES_CHKSUM = "file://license.md;beginline=5;md5=9db9e3d2fb8d9300a6c3d15101b19731 \ + file://contrib/cmsis/git/LICENSE.txt;md5=e3fc50a88d0a364313df4b21ef20c29e" + +SRC_URI_SCP_FIRMWARE ?= "gitsm://git.gitlab.arm.com/firmware/SCP-firmware.git;protocol=https" +SRC_URI = "${SRC_URI_SCP_FIRMWARE};branch=${SRCBRANCH}" +SRCBRANCH = "main" + +PROVIDES += "virtual/control-processor-firmware" + +SCP_DEBUG ?= "${FIRMWARE_DEBUG_BUILD}" +CMAKE_BUILD_TYPE ?= "${@oe.utils.vartrue('SCP_DEBUG', 'Debug', 'RelWithDebInfo', d)}" +SCP_PLATFORM ?= "${FIRMWARE_PLATFORM}" +SCP_PRODUCT_GROUP ?= "." +SCP_LOG_LEVEL ?= "WARN" +SCP_PLATFORM_FEATURE_SET ?= "0" + +INHIBIT_DEFAULT_DEPS = "1" +DEPENDS = "gcc-arm-none-eabi-native \ + cmake-native \ + ninja-native \ + " + +inherit firmware + +B = "${WORKDIR}/build" + +# Allow platform specific copying of only scp or both scp & mcp, default to both +FW_TARGETS ?= "scp mcp" +FW_INSTALL ?= "ramfw romfw" + +COMPATIBLE_MACHINE ?= "invalid" + +export CFLAGS = "${DEBUG_PREFIX_MAP}" +export ASMFLAGS = "${DEBUG_PREFIX_MAP}" + +LDFLAGS[unexport] = "1" + +EXTRA_OECMAKE = "-D CMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} \ + -D SCP_LOG_LEVEL=${SCP_LOG_LEVEL} \ + -D SCP_PLATFORM_FEATURE_SET=${SCP_PLATFORM_FEATURE_SET} \ + -D DISABLE_CPPCHECK=1 \ + -D SCP_TOOLCHAIN=GNU \ + " + +do_configure() { + for FW in ${FW_TARGETS}; do + for TYPE in ${FW_INSTALL}; do + bbnote Configuring ${SCP_PLATFORM}/${FW}_${TYPE}... + cmake -GNinja ${EXTRA_OECMAKE} -S ${S} -B "${B}/${TYPE}/${FW}" -D SCP_FIRMWARE_SOURCE_DIR:PATH="${SCP_PRODUCT_GROUP}/${SCP_PLATFORM}/${FW}_${TYPE}" + done + done +} + +do_configure[cleandirs] += "${B}" + +do_compile() { + for FW in ${FW_TARGETS}; do + for TYPE in ${FW_INSTALL}; do + bbnote Building ${SCP_PLATFORM}/${FW}_${TYPE}... + VERBOSE=1 cmake --build ${B}/${TYPE}/${FW} --target all + done + done +} + +do_install() { + install -d ${D}${FIRMWARE_DIR} + for TYPE in ${FW_INSTALL}; do + for FW in ${FW_TARGETS}; do + if [ "$TYPE" = "romfw" ]; then + if [ "$FW" = "scp" ]; then + install -D "${B}/${TYPE}/${FW}/bin/${SCP_PLATFORM}-bl1.bin" "${D}${FIRMWARE_DIR}/${FW}_${TYPE}.bin" + install -D "${B}/${TYPE}/${FW}/bin/${SCP_PLATFORM}-bl1.elf" "${D}${FIRMWARE_DIR}/${FW}_${TYPE}.elf" + else + install -D "${B}/${TYPE}/${FW}/bin/${SCP_PLATFORM}-${FW}-bl1.bin" "${D}${FIRMWARE_DIR}/${FW}_${TYPE}.bin" + install -D "${B}/${TYPE}/${FW}/bin/${SCP_PLATFORM}-${FW}-bl1.elf" "${D}${FIRMWARE_DIR}/${FW}_${TYPE}.elf" + fi + elif [ "$TYPE" = "ramfw" ]; then + if [ "$FW" = "scp" ]; then + install -D "${B}/${TYPE}/${FW}/bin/${SCP_PLATFORM}-bl2.bin" "${D}${FIRMWARE_DIR}/${FW}_${TYPE}.bin" + install -D "${B}/${TYPE}/${FW}/bin/${SCP_PLATFORM}-bl2.elf" "${D}${FIRMWARE_DIR}/${FW}_${TYPE}.elf" + else + install -D "${B}/${TYPE}/${FW}/bin/${SCP_PLATFORM}-${FW}-bl2.bin" "${D}${FIRMWARE_DIR}/${FW}_${TYPE}.bin" + install -D "${B}/${TYPE}/${FW}/bin/${SCP_PLATFORM}-${FW}-bl2.elf" "${D}${FIRMWARE_DIR}/${FW}_${TYPE}.elf" + fi + fi + done + done +} + +# These binaries are specifically for 32-bit arm +INSANE_SKIP:${PN}-dbg += "arch" +INHIBIT_PACKAGE_DEBUG_SPLIT = "1" +INHIBIT_PACKAGE_STRIP = "1" diff --git a/meta-arm/recipes-bsp/scp-firmware/scp-firmware_2.16.0.bb b/meta-arm/recipes-bsp/scp-firmware/scp-firmware_2.16.0.bb index 6a32a734c93c..fdd7a4e72470 100644 --- a/meta-arm/recipes-bsp/scp-firmware/scp-firmware_2.16.0.bb +++ b/meta-arm/recipes-bsp/scp-firmware/scp-firmware_2.16.0.bb @@ -1,105 +1,8 @@ -SUMMARY = "SCP and MCP Firmware" -DESCRIPTION = "Firmware for SCP and MCP software reference implementation" -HOMEPAGE = "https://gitlab.arm.com/firmware/SCP-firmware" - -LICENSE = "BSD-3-Clause & Apache-2.0" -LIC_FILES_CHKSUM = "file://license.md;beginline=5;md5=9db9e3d2fb8d9300a6c3d15101b19731 \ - file://contrib/cmsis/git/LICENSE.txt;md5=e3fc50a88d0a364313df4b21ef20c29e" - -SRC_URI_SCP_FIRMWARE ?= "gitsm://git.gitlab.arm.com/firmware/SCP-firmware.git;protocol=https" -SRC_URI = "${SRC_URI_SCP_FIRMWARE};branch=${SRCBRANCH} \ - file://0001-OPTEE-Private-Includes.patch \ - " +require recipes-bsp/scp-firmware/scp-firmware.inc SRCBRANCH = "main" SRCREV = "190e938c2da3631b4834a90448516423099c79f7" - -PROVIDES += "virtual/control-processor-firmware" - -SCP_DEBUG ?= "${FIRMWARE_DEBUG_BUILD}" -CMAKE_BUILD_TYPE ?= "${@oe.utils.vartrue('SCP_DEBUG', 'Debug', 'RelWithDebInfo', d)}" -SCP_PLATFORM ?= "${FIRMWARE_PLATFORM}" -SCP_PRODUCT_GROUP ?= "." -SCP_LOG_LEVEL ?= "WARN" -SCP_PLATFORM_FEATURE_SET ?= "0" - -INHIBIT_DEFAULT_DEPS = "1" -DEPENDS = "gcc-arm-none-eabi-native \ - cmake-native \ - ninja-native \ - " +SRC_URI += "file://0001-OPTEE-Private-Includes.patch" # For now we only build with GCC, so stop meta-clang trying to get involved TOOLCHAIN = "gcc" - -inherit firmware - -B = "${WORKDIR}/build" - -# Allow platform specific copying of only scp or both scp & mcp, default to both -FW_TARGETS ?= "scp mcp" -FW_INSTALL ?= "ramfw romfw" - -COMPATIBLE_MACHINE ?= "invalid" - -export CFLAGS = "${DEBUG_PREFIX_MAP}" -export ASMFLAGS = "${DEBUG_PREFIX_MAP}" - -LDFLAGS[unexport] = "1" - -EXTRA_OECMAKE = "-D CMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} \ - -D SCP_LOG_LEVEL=${SCP_LOG_LEVEL} \ - -D SCP_PLATFORM_FEATURE_SET=${SCP_PLATFORM_FEATURE_SET} \ - -D DISABLE_CPPCHECK=1 \ - -D SCP_TOOLCHAIN=GNU \ - " - -do_configure() { - for FW in ${FW_TARGETS}; do - for TYPE in ${FW_INSTALL}; do - bbnote Configuring ${SCP_PLATFORM}/${FW}_${TYPE}... - cmake -GNinja ${EXTRA_OECMAKE} -S ${S} -B "${B}/${TYPE}/${FW}" -D SCP_FIRMWARE_SOURCE_DIR:PATH="${SCP_PRODUCT_GROUP}/${SCP_PLATFORM}/${FW}_${TYPE}" - done - done -} - -do_configure[cleandirs] += "${B}" - -do_compile() { - for FW in ${FW_TARGETS}; do - for TYPE in ${FW_INSTALL}; do - bbnote Building ${SCP_PLATFORM}/${FW}_${TYPE}... - VERBOSE=1 cmake --build ${B}/${TYPE}/${FW} --target all - done - done -} - -do_install() { - install -d ${D}${FIRMWARE_DIR} - for TYPE in ${FW_INSTALL}; do - for FW in ${FW_TARGETS}; do - if [ "$TYPE" = "romfw" ]; then - if [ "$FW" = "scp" ]; then - install -D "${B}/${TYPE}/${FW}/bin/${SCP_PLATFORM}-bl1.bin" "${D}${FIRMWARE_DIR}/${FW}_${TYPE}.bin" - install -D "${B}/${TYPE}/${FW}/bin/${SCP_PLATFORM}-bl1.elf" "${D}${FIRMWARE_DIR}/${FW}_${TYPE}.elf" - else - install -D "${B}/${TYPE}/${FW}/bin/${SCP_PLATFORM}-${FW}-bl1.bin" "${D}${FIRMWARE_DIR}/${FW}_${TYPE}.bin" - install -D "${B}/${TYPE}/${FW}/bin/${SCP_PLATFORM}-${FW}-bl1.elf" "${D}${FIRMWARE_DIR}/${FW}_${TYPE}.elf" - fi - elif [ "$TYPE" = "ramfw" ]; then - if [ "$FW" = "scp" ]; then - install -D "${B}/${TYPE}/${FW}/bin/${SCP_PLATFORM}-bl2.bin" "${D}${FIRMWARE_DIR}/${FW}_${TYPE}.bin" - install -D "${B}/${TYPE}/${FW}/bin/${SCP_PLATFORM}-bl2.elf" "${D}${FIRMWARE_DIR}/${FW}_${TYPE}.elf" - else - install -D "${B}/${TYPE}/${FW}/bin/${SCP_PLATFORM}-${FW}-bl2.bin" "${D}${FIRMWARE_DIR}/${FW}_${TYPE}.bin" - install -D "${B}/${TYPE}/${FW}/bin/${SCP_PLATFORM}-${FW}-bl2.elf" "${D}${FIRMWARE_DIR}/${FW}_${TYPE}.elf" - fi - fi - done - done -} - -# These binaries are specifically for 32-bit arm -INSANE_SKIP:${PN}-dbg += "arch" -INHIBIT_PACKAGE_DEBUG_SPLIT = "1" -INHIBIT_PACKAGE_STRIP = "1" diff --git a/meta-arm/recipes-bsp/scp-firmware/scp-firmware_git.bb b/meta-arm/recipes-bsp/scp-firmware/scp-firmware_git.bb new file mode 100644 index 000000000000..ab2daf45e4e5 --- /dev/null +++ b/meta-arm/recipes-bsp/scp-firmware/scp-firmware_git.bb @@ -0,0 +1,11 @@ +require recipes-bsp/scp-firmware/scp-firmware.inc + +SRCBRANCH = "main" +SRCREV = "57bb4a303d848f11cef182b24ef16060d371858c" + +# For now we only build with GCC, so stop meta-clang trying to get involved +TOOLCHAIN = "gcc" + +# Not a release recipe, try our hardest to not pull this in implicitly +DEFAULT_PREFERENCE = "-1" +UPSTREAM_CHECK_COMMITS = "1" From patchwork Wed Mar 25 18:06:39 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jon Mason X-Patchwork-Id: 84380 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 1119E109C04D for ; Wed, 25 Mar 2026 18:06:42 +0000 (UTC) Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by mx.groups.io with SMTP id smtpd.msgproc02-g2.29903.1774462000805537863 for ; Wed, 25 Mar 2026 11:06:41 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="dkim: body hash did not verify" header.i=@arm.com header.s=foss header.b=vwiW/nxe; spf=pass (domain: arm.com, ip: 217.140.110.172, mailfrom: jon.mason@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 663882444 for ; Wed, 25 Mar 2026 11:06:34 -0700 (PDT) Received: from H24V3P4C17.arm.com (usa-sjc-imap-foss1.foss.arm.com [10.121.207.14]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 431843FC23 for ; Wed, 25 Mar 2026 11:06:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=arm.com; s=foss; t=1774462000; bh=qBlTZFLazOydPJUtvVGRV2dm5h4h0myXyXwUyzKjcCQ=; h=From:To:Subject:Date:In-Reply-To:References:From; b=vwiW/nxeVTste194yTeeb3qdHYHkSK7xbYAWvZT1HYERTOF48TAOzDMnQDH1DMIrT sZOzFwBDNKNojkL9C7AfCFbm1WAZONcHi4uyo5yoDfD0PyawBPcqMBXJFcVf1qyzGg d/sWh6oaQofbEtuYGuArNGCkpTk86GVf4iEzc/zY= From: Jon Mason To: meta-arm@lists.yoctoproject.org Subject: [PATCH 2/2] arm/optee: add UPSTREAM_CHECK_COMMITS for git recipes Date: Wed, 25 Mar 2026 14:06:39 -0400 Message-ID: <20260325180639.88517-2-jon.mason@arm.com> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20260325180639.88517-1-jon.mason@arm.com> References: <20260325180639.88517-1-jon.mason@arm.com> MIME-Version: 1.0 List-Id: X-Webhook-Received: from 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Wed, 25 Mar 2026 18:06:42 -0000 X-Groupsio-URL: https://lists.yoctoproject.org/g/meta-arm/message/6971 Seeing UNKNOWN_BROKEN in the OP-TEE git recipes. Add UPSTREAM_CHECK_COMMITS to address this issue. Signed-off-by: Jon Mason --- meta-arm/recipes-security/optee/optee-client_git.bb | 1 + meta-arm/recipes-security/optee/optee-examples_git.bb | 1 + meta-arm/recipes-security/optee/optee-os-tadevkit_git.bb | 1 + meta-arm/recipes-security/optee/optee-os_git.bb | 1 + meta-arm/recipes-security/optee/optee-test_git.bb | 1 + 5 files changed, 5 insertions(+) diff --git a/meta-arm/recipes-security/optee/optee-client_git.bb b/meta-arm/recipes-security/optee/optee-client_git.bb index b974e012affa..24e2d1941299 100644 --- a/meta-arm/recipes-security/optee/optee-client_git.bb +++ b/meta-arm/recipes-security/optee/optee-client_git.bb @@ -3,6 +3,7 @@ require recipes-security/optee/optee-client.inc # v4.9.0 SRCREV = "9f5e90918093c1d1cd264d8149081b64ab7ba672" PV .= "+git" +UPSTREAM_CHECK_COMMITS = "1" # Not a release recipe, try our hardest to not pull this in implicitly DEFAULT_PREFERENCE = "-1" diff --git a/meta-arm/recipes-security/optee/optee-examples_git.bb b/meta-arm/recipes-security/optee/optee-examples_git.bb index e0c85660a8a3..4fda635b72eb 100644 --- a/meta-arm/recipes-security/optee/optee-examples_git.bb +++ b/meta-arm/recipes-security/optee/optee-examples_git.bb @@ -3,6 +3,7 @@ require recipes-security/optee/optee-examples.inc # v4.8.0 SRCREV = "3ef17eb1f309def91113637f95f67613b1d89119" PV .= "+git" +UPSTREAM_CHECK_COMMITS = "1" # Not a release recipe, try our hardest to not pull this in implicitly DEFAULT_PREFERENCE = "-1" diff --git a/meta-arm/recipes-security/optee/optee-os-tadevkit_git.bb b/meta-arm/recipes-security/optee/optee-os-tadevkit_git.bb index 78588b8111f4..64765df00c2f 100644 --- a/meta-arm/recipes-security/optee/optee-os-tadevkit_git.bb +++ b/meta-arm/recipes-security/optee/optee-os-tadevkit_git.bb @@ -1,4 +1,5 @@ require recipes-security/optee/optee-os_${PV}.bb +UPSTREAM_CHECK_COMMITS = "1" SUMMARY = "OP-TEE Trusted OS TA devkit" DESCRIPTION = "OP-TEE TA devkit for build TAs" diff --git a/meta-arm/recipes-security/optee/optee-os_git.bb b/meta-arm/recipes-security/optee/optee-os_git.bb index 244ff9b71877..03b0f1cc74fd 100644 --- a/meta-arm/recipes-security/optee/optee-os_git.bb +++ b/meta-arm/recipes-security/optee/optee-os_git.bb @@ -5,6 +5,7 @@ DEPENDS += "dtc-native" # v4.8.0 SRCREV = "86660925433a8d4d1b19cfa5fe940081d77b34b4" PV .= "+git" +UPSTREAM_CHECK_COMMITS = "1" # Not a release recipe, try our hardest to not pull this in implicitly DEFAULT_PREFERENCE = "-1" diff --git a/meta-arm/recipes-security/optee/optee-test_git.bb b/meta-arm/recipes-security/optee/optee-test_git.bb index 37b00908b577..1d4ee44ea77d 100644 --- a/meta-arm/recipes-security/optee/optee-test_git.bb +++ b/meta-arm/recipes-security/optee/optee-test_git.bb @@ -3,6 +3,7 @@ require recipes-security/optee/optee-test.inc # v4.8.0 SRCREV = "6569cd7b13e1b37b37069e090d592adca7d3926d" PV .= "+git" +UPSTREAM_CHECK_COMMITS = "1" LIC_FILES_CHKSUM = "file://LICENSE.md;md5=a8fa504109e4cd7ea575bc49ea4be560 \ file://LICENSE-BSD;md5=dca16d6efa93b55d0fd662ae5cd6feeb \