From patchwork Tue Dec 16 16:23:09 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peter Hoyes X-Patchwork-Id: 76768 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 2448DD609D2 for ; Tue, 16 Dec 2025 16:23:37 +0000 (UTC) Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by mx.groups.io with SMTP id smtpd.msgproc01-g2.27032.1765902212274394945 for ; Tue, 16 Dec 2025 08:23:32 -0800 Authentication-Results: mx.groups.io; dkim=none (message not signed); spf=pass (domain: arm.com, ip: 217.140.110.172, mailfrom: peter.hoyes@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 CFB4DFEC for ; Tue, 16 Dec 2025 08:23:24 -0800 (PST) Received: from e133390.cambridge.arm.com (unknown [10.1.198.56]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id AAF7A3F73F for ; Tue, 16 Dec 2025 08:23:31 -0800 (PST) From: Peter Hoyes To: meta-arm@lists.yoctoproject.org Subject: [PATCH 3/4] arm/scp-firmware: Use firmware.bbclass Date: Tue, 16 Dec 2025 16:23:09 +0000 Message-ID: <20251216162311.3985918-3-peter.hoyes@arm.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251216162311.3985918-1-peter.hoyes@arm.com> References: <20251216162311.3985918-1-peter.hoyes@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 ; Tue, 16 Dec 2025 16:23:37 -0000 X-Groupsio-URL: https://lists.yoctoproject.org/g/meta-arm/message/6803 Replace inherit deploy with firmware. Initialize SCP_DEBUG using the FIRMWARE_DEBUG_BUILD variable. Initialize SCP_PLATFORM using the FIRMWARE_PLATFORM variable. Refactor do_install to use ${FIRMWARE_DIR} and remove now redundant configuration. Signed-off-by: Peter Hoyes --- meta-arm-bsp/conf/machine/sgi575.conf | 6 ++-- .../recipes-bsp/images/firmware-image-juno.bb | 2 +- .../scp-firmware/scp-firmware-juno.inc | 4 +-- .../trusted-firmware-a-juno.inc | 2 +- .../scp-firmware/scp-firmware_2.16.0.bb | 36 +++++++------------ 5 files changed, 20 insertions(+), 30 deletions(-) diff --git a/meta-arm-bsp/conf/machine/sgi575.conf b/meta-arm-bsp/conf/machine/sgi575.conf index 07d1e79c..6217ecc2 100644 --- a/meta-arm-bsp/conf/machine/sgi575.conf +++ b/meta-arm-bsp/conf/machine/sgi575.conf @@ -46,9 +46,9 @@ FVP_CONFIG[css.cmn600.mesh_config_file] = "SGI-575_cmn600.yml" FVP_CONFIG[css.cmn600.force_rnsam_internal] ?= "false" FVP_CONFIG[css.gic_distributor.ITS-device-bits] ?= "20" -FVP_DATA ?= "css.scp.armcortexm7ct=scp_ramfw.bin@0x0BD80000" -FVP_CONFIG[css.mcp.ROMloader.fname] ?= "mcp_romfw.bin" -FVP_CONFIG[css.scp.ROMloader.fname] ?= "scp_romfw.bin" +FVP_DATA ?= "css.scp.armcortexm7ct=scp-firmware/scp_ramfw.bin@0x0BD80000" +FVP_CONFIG[css.mcp.ROMloader.fname] ?= "scp-firmware/mcp_romfw.bin" +FVP_CONFIG[css.scp.ROMloader.fname] ?= "scp-firmware/scp_romfw.bin" FVP_CONFIG[css.trustedBootROMloader.fname] ?= "trusted-firmware-a/bl1.bin" FVP_CONFIG[board.flashloader0.fname] ?= "trusted-firmware-a/fip.bin" diff --git a/meta-arm-bsp/recipes-bsp/images/firmware-image-juno.bb b/meta-arm-bsp/recipes-bsp/images/firmware-image-juno.bb index 16e4e8db..48486d6e 100644 --- a/meta-arm-bsp/recipes-bsp/images/firmware-image-juno.bb +++ b/meta-arm-bsp/recipes-bsp/images/firmware-image-juno.bb @@ -41,7 +41,7 @@ do_install() { cp -f ${RECIPE_SYSROOT}/firmware/trusted-firmware-a/fip.bin \ ${D}/${FIRMWARE_DIR}/SOFTWARE/fip.bin - cp -f ${RECIPE_SYSROOT}/firmware/scp_romfw_bypass.bin \ + cp -f ${RECIPE_SYSROOT}/firmware/scp-firmware/scp_romfw_bypass.bin \ ${D}/${FIRMWARE_DIR}/SOFTWARE/scp_bl1.bin # u-boot environment file diff --git a/meta-arm-bsp/recipes-bsp/scp-firmware/scp-firmware-juno.inc b/meta-arm-bsp/recipes-bsp/scp-firmware/scp-firmware-juno.inc index 1f02d8e5..1bdc78e0 100644 --- a/meta-arm-bsp/recipes-bsp/scp-firmware/scp-firmware-juno.inc +++ b/meta-arm-bsp/recipes-bsp/scp-firmware/scp-firmware-juno.inc @@ -8,8 +8,8 @@ FW_INSTALL:append = " romfw_bypass" do_install:append() { for TYPE in ${FW_INSTALL}; do if [ "$TYPE" = "romfw_bypass" ]; then - install -D "${B}/${TYPE}/${FW_TARGETS}/bin/${SCP_PLATFORM}-bl1-bypass.bin" "${D}/firmware/${FW}_${TYPE}.bin" - install -D "${B}/${TYPE}/${FW_TARGETS}/bin/${SCP_PLATFORM}-bl1-bypass.elf" "${D}/firmware/${FW}_${TYPE}.elf" + install -D "${B}/${TYPE}/${FW_TARGETS}/bin/${SCP_PLATFORM}-bl1-bypass.bin" "${D}${FIRMWARE_DIR}/${FW}_${TYPE}.bin" + install -D "${B}/${TYPE}/${FW_TARGETS}/bin/${SCP_PLATFORM}-bl1-bypass.elf" "${D}${FIRMWARE_DIR}/${FW}_${TYPE}.elf" fi done } diff --git a/meta-arm-bsp/recipes-bsp/trusted-firmware-a/trusted-firmware-a-juno.inc b/meta-arm-bsp/recipes-bsp/trusted-firmware-a/trusted-firmware-a-juno.inc index 3ddd8cb5..a3a35ab4 100644 --- a/meta-arm-bsp/recipes-bsp/trusted-firmware-a/trusted-firmware-a-juno.inc +++ b/meta-arm-bsp/recipes-bsp/trusted-firmware-a/trusted-firmware-a-juno.inc @@ -10,4 +10,4 @@ TFA_BUILD_TARGET = "bl1 bl2 bl31 dtbs fip" # Juno needs the System Control Processor Firmware DEPENDS += "virtual/control-processor-firmware" -EXTRA_OEMAKE:append = " SCP_BL2=${RECIPE_SYSROOT}/firmware/scp_ramfw.bin" +EXTRA_OEMAKE:append = " SCP_BL2=${RECIPE_SYSROOT}${FIRMWARE_BASE_DIR}/scp-firmware/scp_ramfw.bin" 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 d41a9892..6a32a734 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 @@ -16,8 +16,9 @@ SRCREV = "190e938c2da3631b4834a90448516423099c79f7" PROVIDES += "virtual/control-processor-firmware" -CMAKE_BUILD_TYPE ?= "RelWithDebInfo" -SCP_PLATFORM ?= "${MACHINE}" +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" @@ -31,7 +32,7 @@ DEPENDS = "gcc-arm-none-eabi-native \ # For now we only build with GCC, so stop meta-clang trying to get involved TOOLCHAIN = "gcc" -inherit deploy +inherit firmware B = "${WORKDIR}/build" @@ -39,7 +40,6 @@ B = "${WORKDIR}/build" FW_TARGETS ?= "scp mcp" FW_INSTALL ?= "ramfw romfw" -PACKAGE_ARCH = "${MACHINE_ARCH}" COMPATIBLE_MACHINE ?= "invalid" export CFLAGS = "${DEBUG_PREFIX_MAP}" @@ -75,41 +75,31 @@ do_compile() { } do_install() { - install -d ${D}/firmware + 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/${FW}_${TYPE}.bin" - install -D "${B}/${TYPE}/${FW}/bin/${SCP_PLATFORM}-bl1.elf" "${D}/firmware/${FW}_${TYPE}.elf" + 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/${FW}_${TYPE}.bin" - install -D "${B}/${TYPE}/${FW}/bin/${SCP_PLATFORM}-${FW}-bl1.elf" "${D}/firmware/${FW}_${TYPE}.elf" + 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/${FW}_${TYPE}.bin" - install -D "${B}/${TYPE}/${FW}/bin/${SCP_PLATFORM}-bl2.elf" "${D}/firmware/${FW}_${TYPE}.elf" + 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/${FW}_${TYPE}.bin" - install -D "${B}/${TYPE}/${FW}/bin/${SCP_PLATFORM}-${FW}-bl2.elf" "${D}/firmware/${FW}_${TYPE}.elf" + 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 } -FILES:${PN} = "/firmware" -SYSROOT_DIRS += "/firmware" - -FILES:${PN}-dbg += "/firmware/*.elf" # These binaries are specifically for 32-bit arm INSANE_SKIP:${PN}-dbg += "arch" INHIBIT_PACKAGE_DEBUG_SPLIT = "1" INHIBIT_PACKAGE_STRIP = "1" - -do_deploy() { - # Copy the images to deploy directory - cp -rf ${D}/firmware/* ${DEPLOYDIR}/ -} -addtask deploy after do_install