From e87f7d0a5b8a1a7033b35bba3da80163bb2a7636 Mon Sep 17 00:00:00 2001 From: Arturo Buzarra Date: Tue, 29 Apr 2025 11:12:08 +0200 Subject: [PATCH] u-boot-dey: ccmp1: refresh installer scripts for Yocto 5.0 support This commit updates the installer scripts to support CCMP1 platforms under Yocto 5.0, aligning them with the current behavior used for CCMP2. Changes include: - Adding support for the metadata partition, which is now required - Including the optee/opteemin flavors in boot artifact filenames - Ensuring the script structure and logic remain consistent with CCMP2 install scripts Signed-off-by: Arturo Buzarra --- .../recipes-bsp/u-boot/u-boot-dey.inc | 3 + .../u-boot-dey/ccmp1/install_linux_fw_sd.txt | 30 ++++++-- .../u-boot-dey/ccmp1/install_linux_fw_usb.txt | 30 ++++++-- .../u-boot-dey/ccmp1/install_linux_fw_uuu.sh | 70 ++++++++++--------- .../u-boot-dey/ccmp2/install_linux_fw_sd.txt | 2 +- .../u-boot-dey/ccmp2/install_linux_fw_usb.txt | 2 +- 6 files changed, 95 insertions(+), 42 deletions(-) diff --git a/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey.inc b/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey.inc index 4d0edc6c9..4fc8bd759 100644 --- a/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey.inc +++ b/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey.inc @@ -85,6 +85,9 @@ build_uboot_scripts() { -e 's,##GRAPHICAL_IMAGES##,${GRAPHICAL_IMAGES},g' \ -e 's,##DEFAULT_IMAGE_NAME##,${DEFAULT_IMAGE_NAME},g' \ ${WORKDIR}/${f} > ${TMP_INSTALL_SCR} + if [ "${DEY_SOC_VENDOR}" = "STM" ]; then + sed -i -e 's,##BOOTSCHEME_DEFAULT##,${BOOTSCHEME_DEFAULT},g' ${TMP_INSTALL_SCR} + fi # Change the u-boot name when TrustFence is enabled if [ "${TRUSTFENCE_SIGN}" = "1" ]; then if [ "${DEY_SOC_VENDOR}" = "NXP" ]; then diff --git a/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccmp1/install_linux_fw_sd.txt b/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccmp1/install_linux_fw_sd.txt index 1b02a2b78..feb94734e 100644 --- a/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccmp1/install_linux_fw_sd.txt +++ b/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccmp1/install_linux_fw_sd.txt @@ -7,8 +7,9 @@ install_abort=0 BASEFILENAME=0 -setenv INSTALL_ATF_FILENAME tf-a-##MACHINE##-${module_ram}-nand.stm32 -setenv INSTALL_FIP_FILENAME fip-##MACHINE##-${module_ram}-optee.bin +setenv INSTALL_ATF_FILENAME tf-a-##MACHINE##-${module_ram}-##BOOTSCHEME_DEFAULT##-nand.stm32 +setenv INSTALL_METADATA_FILENAME metadata-##MACHINE##.bin +setenv INSTALL_FIP_FILENAME fip-##MACHINE##-${module_ram}-##BOOTSCHEME_DEFAULT##-nand.bin setenv INSTALL_MMCDEV 1 if test -z "${image-name}"; then @@ -28,7 +29,7 @@ setenv INSTALL_RECOVERY_FILENAME ${BASEFILENAME}-##MACHINE##.recovery.ubifs setenv INSTALL_ROOTFS_FILENAME ${BASEFILENAME}-##MACHINE##.ubifs # Check for presence of firmware files on the SD card -FILES="${INSTALL_ATF_FILENAME} ${INSTALL_FIP_FILENAME} ${INSTALL_LINUX_FILENAME}" +FILES="${INSTALL_ATF_FILENAME} ${INSTALL_METADATA_FILENAME} ${INSTALL_FIP_FILENAME} ${INSTALL_LINUX_FILENAME}" if test "${dualboot}" != "yes"; then FILES="${FILES} ${INSTALL_RECOVERY_FILENAME}" fi @@ -68,6 +69,8 @@ echo " PARTITION FILENAME" echo " --------- --------" echo " fsbl1 ${INSTALL_ATF_FILENAME}" echo " fsbl2 ${INSTALL_ATF_FILENAME}" +echo " metadata1 ${INSTALL_METADATA_FILENAME}" +echo " metadata2 ${INSTALL_METADATA_FILENAME}" echo " fip-a ${INSTALL_FIP_FILENAME}" echo " fip-b ${INSTALL_FIP_FILENAME}" if test "${dualboot}" = "yes"; then @@ -101,7 +104,7 @@ setenv forced_update 1 # the first reset. setenv bootdelay 0 -# Update ATF and FIP images +# Update ATF, METADATA and FIP images echo "" echo "" echo ">> Installing ATF boot loader image ${INSTALL_ATF_FILENAME}" @@ -123,6 +126,25 @@ if test $? -eq 1; then fi echo "" echo "" +echo ">> Installing METADATA boot loader image ${INSTALL_METADATA_FILENAME}" +echo "" +echo "" +update metadata1 mmc ${INSTALL_MMCDEV} ${INSTALL_METADATA_FILENAME} +if test $? -eq 1; then + echo "[ERROR] Failed to update metadata1!"; + echo ""; + echo "Aborted."; + exit; +fi +update metadata2 mmc ${INSTALL_MMCDEV} ${INSTALL_METADATA_FILENAME} +if test $? -eq 1; then + echo "[ERROR] Failed to update metadata2!"; + echo ""; + echo "Aborted."; + exit; +fi +echo "" +echo "" echo ">> Installing FIP boot loader image ${INSTALL_FIP_FILENAME} (target will reset)" echo "" echo "" diff --git a/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccmp1/install_linux_fw_usb.txt b/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccmp1/install_linux_fw_usb.txt index 73afcbffc..c491b64ee 100644 --- a/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccmp1/install_linux_fw_usb.txt +++ b/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccmp1/install_linux_fw_usb.txt @@ -7,8 +7,9 @@ install_abort=0 BASEFILENAME=0 -setenv INSTALL_ATF_FILENAME tf-a-##MACHINE##-${module_ram}-nand.stm32 -setenv INSTALL_FIP_FILENAME fip-##MACHINE##-${module_ram}-optee.bin +setenv INSTALL_ATF_FILENAME tf-a-##MACHINE##-${module_ram}-##BOOTSCHEME_DEFAULT##-nand.stm32 +setenv INSTALL_METADATA_FILENAME metadata-##MACHINE##.bin +setenv INSTALL_FIP_FILENAME fip-##MACHINE##-${module_ram}-##BOOTSCHEME_DEFAULT##-nand.bin setenv INSTALL_USBDEV 0 if test -z "${image-name}"; then @@ -28,7 +29,7 @@ setenv INSTALL_RECOVERY_FILENAME ${BASEFILENAME}-##MACHINE##.recovery.ubifs setenv INSTALL_ROOTFS_FILENAME ${BASEFILENAME}-##MACHINE##.ubifs # Check for presence of firmware files on the USB -FILES="${INSTALL_ATF_FILENAME} ${INSTALL_FIP_FILENAME} ${INSTALL_LINUX_FILENAME}" +FILES="${INSTALL_ATF_FILENAME} ${INSTALL_METADATA_FILENAME} ${INSTALL_FIP_FILENAME} ${INSTALL_LINUX_FILENAME}" if test "${dualboot}" != "yes"; then FILES="${FILES} ${INSTALL_RECOVERY_FILENAME}" fi @@ -70,6 +71,8 @@ echo " PARTITION FILENAME" echo " --------- --------" echo " fsbl1 ${INSTALL_ATF_FILENAME}" echo " fsbl2 ${INSTALL_ATF_FILENAME}" +echo " metadata1 ${INSTALL_METADATA_FILENAME}" +echo " metadata2 ${INSTALL_METADATA_FILENAME}" echo " fip-a ${INSTALL_FIP_FILENAME}" echo " fip-b ${INSTALL_FIP_FILENAME}" if test "${dualboot}" = "yes"; then @@ -103,7 +106,7 @@ setenv forced_update 1 # the first reset. setenv bootdelay 0 -# Update ATF and FIP images +# Update ATF, METADATA and FIP images echo "" echo "" echo ">> Installing ATF boot loader image ${INSTALL_ATF_FILENAME}" @@ -125,6 +128,25 @@ if test $? -eq 1; then fi echo "" echo "" +echo ">> Installing METADATA boot loader image ${INSTALL_METADATA_FILENAME}" +echo "" +echo "" +update metadata1 usb ${INSTALL_USBDEV} ${INSTALL_METADATA_FILENAME} +if test $? -eq 1; then + echo "[ERROR] Failed to update metadata1!"; + echo ""; + echo "Aborted."; + exit; +fi +update metadata2 usb ${INSTALL_USBDEV} ${INSTALL_METADATA_FILENAME} +if test $? -eq 1; then + echo "[ERROR] Failed to update metadata2!"; + echo ""; + echo "Aborted."; + exit; +fi +echo "" +echo "" echo ">> Installing FIP boot loader image ${INSTALL_FIP_FILENAME} (target will reset)" echo "" echo "" diff --git a/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccmp1/install_linux_fw_uuu.sh b/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccmp1/install_linux_fw_uuu.sh index 1f9f995ba..031202e1e 100644 --- a/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccmp1/install_linux_fw_uuu.sh +++ b/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccmp1/install_linux_fw_uuu.sh @@ -64,11 +64,11 @@ show_usage() # - runs 'update' command from RAM part_update() { - echo "\033[36m" - echo "=====================================================================================" - echo "Updating '${1}' partition with file: ${2}" - echo "=====================================================================================" - echo "\033[0m" + printf "\033[36m\n" + printf "=====================================================================================\n" + printf "Updating '%s' partition with file: %s\n" "${1}" "${2}" + printf "=====================================================================================\n" + printf "\033[0m\n" uuu fb: download -f "${2}" uuu "fb[-t ${3}]:" ucmd update "${1}" ram \${fastboot_buffer} \${filesize} ${ERASE} @@ -128,12 +128,13 @@ echo "Determining image files to use..." # Determine ATF file to program if [ -z "${INSTALL_ATF_FILENAME}" ]; then - INSTALL_ATF_FILENAME="tf-a-##MACHINE##-${module_ram}-optee-nand.stm32##SIGNED##" + INSTALL_ATF_FILENAME="tf-a-##MACHINE##-${module_ram}-##BOOTSCHEME_DEFAULT##-nand##SIGNED##.stm32" fi +INSTALL_METADATA_FILENAME="metadata-##MACHINE##.bin" # Determine FIP file to program if [ -z "${INSTALL_FIP_FILENAME}" ]; then - INSTALL_FIP_FILENAME="fip-##MACHINE##-${module_ram}-optee-nand##SIGNED##.bin" + INSTALL_FIP_FILENAME="fip-##MACHINE##-${module_ram}-##BOOTSCHEME_DEFAULT##-nand##SIGNED##.bin" fi # Determine linux, recovery, and rootfs image filenames to update @@ -154,27 +155,26 @@ INSTALL_RECOVERY_FILENAME="${BASEFILENAME}-##MACHINE##.recovery.ubifs" INSTALL_ROOTFS_FILENAME="${BASEFILENAME}-##MACHINE##.ubifs" # Verify existence of files before starting the update -FILES="${INSTALL_ATF_FILENAME} ${INSTALL_FIP_FILENAME} ${INSTALL_LINUX_FILENAME}" +FILES="${INSTALL_ATF_FILENAME} ${INSTALL_METADATA_FILENAME} ${INSTALL_FIP_FILENAME} ${INSTALL_LINUX_FILENAME}" if [ "${DUALBOOT}" != true ]; then FILES="${FILES} ${INSTALL_RECOVERY_FILENAME}" fi - for f in ${FILES}; do - if [ ! -f ${f} ]; then - echo "\033[31m[ERROR] Could not find file '${f}'\033[0m" + if [ ! -f "${f}" ]; then + printf "\033[31m[ERROR] Could not find file '%s'\033[0m\n" "${f}" ABORT=true fi done; # Verify what kind of rootfs is going to be programmed if [ ! -f ${INSTALL_ROOTFS_FILENAME} ]; then - echo "\033[31m[ERROR] Could not find file '${INSTALL_ROOTFS_FILENAME}'\033[0m" + printf "\033[31m[ERROR] Could not find file '${INSTALL_ROOTFS_FILENAME}'\033[0m\n" INSTALL_ROOTFS_FILENAME="${BASEFILENAME}-##MACHINE##.squashfs" - echo "\033[32m[INFO] Trying with file '${INSTALL_ROOTFS_FILENAME}'\033[0m" + printf "\033[32m[INFO] Trying with file '${INSTALL_ROOTFS_FILENAME}'\033[0m\n" if [ -f "${INSTALL_ROOTFS_FILENAME}" ]; then SQUASHFS=true else - echo "\033[31m[ERROR] Could not find file '${INSTALL_ROOTFS_FILENAME}'\033[0m" + printf "\033[31m[ERROR] Could not find any rootfs image\033[0m\n" ABORT=true fi fi @@ -202,23 +202,25 @@ if [ "${NOWAIT}" != true ]; then printf "\n" printf " PARTITION\tFILENAME\n" printf " ---------\t--------\n" - printf " fsbl1\t${INSTALL_ATF_FILENAME}\n" - printf " fsbl2\t${INSTALL_ATF_FILENAME}\n" - printf " fip-a\t${INSTALL_FIP_FILENAME}\n" - printf " fip-b\t${INSTALL_FIP_FILENAME}\n" + printf " fsbl1\t%s\n" "${INSTALL_ATF_FILENAME}" + printf " fsbl2\t%s\n" "${INSTALL_ATF_FILENAME}" + printf " metadata1\t%s\n" "${INSTALL_METADATA_FILENAME}" + printf " metadata2\t%s\n" "${INSTALL_METADATA_FILENAME}" + printf " fip-a\t%s\n" "${INSTALL_FIP_FILENAME}" + printf " fip-b\t%s\n" "${INSTALL_FIP_FILENAME}" if [ "${DUALBOOT}" = true ]; then - printf " ${LINUX_NAME}_a\t${INSTALL_LINUX_FILENAME}\n" + printf " %s_a\t%s\n" "${LINUX_NAME}" "${INSTALL_LINUX_FILENAME}" if [ "${INSTALL_DUALBOOT}" = true ]; then - printf " ${LINUX_NAME}_b\t${INSTALL_LINUX_FILENAME}\n" + printf " %s_b\t%s\n" "${LINUX_NAME}" "${INSTALL_LINUX_FILENAME}" fi - printf " ${ROOTFS_NAME}_a\t${INSTALL_ROOTFS_FILENAME}\n" + printf " %s_a\t%s\n" "${ROOTFS_NAME}" "${INSTALL_ROOTFS_FILENAME}" if [ "${INSTALL_DUALBOOT}" = true ]; then - printf " ${ROOTFS_NAME}_b\t${INSTALL_ROOTFS_FILENAME}\n" + printf " %s_b\t%s\n" "${ROOTFS_NAME}" "${INSTALL_ROOTFS_FILENAME}" fi else - printf " ${LINUX_NAME}\t${INSTALL_LINUX_FILENAME}\n" - printf " ${RECOVERY_NAME}\t${INSTALL_RECOVERY_FILENAME}\n" - printf " ${ROOTFS_NAME}\t${INSTALL_ROOTFS_FILENAME}\n" + printf " %s\t%s\n" "${LINUX_NAME}" "${INSTALL_LINUX_FILENAME}" + printf " %s\t%s\n" "${RECOVERY_NAME}" "${INSTALL_RECOVERY_FILENAME}" + printf " %s\t%s\n" "${ROOTFS_NAME}" "${INSTALL_ROOTFS_FILENAME}" fi printf "\n" printf " Press CTRL+C now if you wish to abort.\n" @@ -226,7 +228,7 @@ if [ "${NOWAIT}" != true ]; then while [ ${WAIT} -gt 0 ]; do printf "\r Update process starts in %d " ${WAIT} sleep 1 - WAIT=$(( ${WAIT} - 1 )) + WAIT="$((WAIT - 1))" done printf "\r \n" printf " Starting update process\n" @@ -242,6 +244,10 @@ uuu fb: ucmd setenv forced_update 1 part_update "fsbl1" "${INSTALL_ATF_FILENAME}" 5000 part_update "fsbl2" "${INSTALL_ATF_FILENAME}" 5000 +# Update metadata +part_update "metadata1" "${INSTALL_METADATA_FILENAME}" 5000 +part_update "metadata2" "${INSTALL_METADATA_FILENAME}" 5000 + # Update FIP part_update "fip-a" "${INSTALL_FIP_FILENAME}" 5000 part_update "fip-b" "${INSTALL_FIP_FILENAME}" 5000 @@ -315,7 +321,7 @@ else fi # Set the dboot_kernel_var to fitimage if Trustfence is enabled -if [ "${TRUSTFENCE}" = "true" ] || echo "$INSTALL_UBOOT_FILENAME" | grep -q -e "signed"; then +if [ "${TRUSTFENCE}" = "true" ] || echo "${INSTALL_FIP_FILENAME}" | grep -q -e "Signed"; then uuu fb: ucmd setenv dboot_kernel_var fitimage uuu fb: ucmd saveenv fi @@ -330,10 +336,10 @@ uuu fb: ucmd bootcount reset # Reset the target uuu fb: acmd reset -echo "\033[32m" -echo "=============================================================" -echo "Done! Wait for the target to complete first boot process." -echo "=============================================================" -echo "\033[0m" +printf "\033[32m\n" +printf "=============================================================\n" +printf "Done! Wait for the target to complete first boot process.\n" +printf "=============================================================\n" +printf "\033[0m\n" exit diff --git a/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccmp2/install_linux_fw_sd.txt b/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccmp2/install_linux_fw_sd.txt index 958bc1da0..46b3df7fe 100644 --- a/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccmp2/install_linux_fw_sd.txt +++ b/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccmp2/install_linux_fw_sd.txt @@ -127,7 +127,7 @@ if test $? -eq 1; then fi echo "" echo "" -echo ">> Installing METADATA boot loader image ${INSTALL_ATF_FILENAME}" +echo ">> Installing METADATA boot loader image ${INSTALL_METADATA_FILENAME}" echo "" echo "" update metadata1 mmc ${INSTALL_MMCDEV} ${INSTALL_METADATA_FILENAME} diff --git a/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccmp2/install_linux_fw_usb.txt b/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccmp2/install_linux_fw_usb.txt index 7c7e97106..ae5bd9ae7 100644 --- a/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccmp2/install_linux_fw_usb.txt +++ b/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccmp2/install_linux_fw_usb.txt @@ -127,7 +127,7 @@ if test $? -eq 1; then fi echo "" echo "" -echo ">> Installing METADATA boot loader image ${INSTALL_ATF_FILENAME}" +echo ">> Installing METADATA boot loader image ${INSTALL_METADATA_FILENAME}" echo "" echo "" update metadata1 usb ${INSTALL_USBDEV} ${INSTALL_METADATA_FILENAME}