Rework ccimx8x imx-boot/u-boot recipes to reduce number of imx-boot artifacts

Now that both U-Boot and the SCFW can autodetect the RAM configuration, we can
simplify the imx-boot build process to generate two binaries (one per SOC
revision) instead of eight. Build "flash_spl" imx-boot images and use only one
global defconfig for u-boot.

Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
This commit is contained in:
Gabriel Valcazar 2023-06-28 14:49:36 +02:00
parent 609028fe66
commit d13b42492f
5 changed files with 21 additions and 67 deletions

View File

@ -6,11 +6,9 @@
include conf/machine/include/ccimx8x.inc
# U-Boot configurations
# Last one is the default (the one the symlinks point at)
UBOOT_CONFIG ??= "ccimx8x_sbc_express512MB ccimx8x_sbc_express1GB ccimx8x_sbc_express2GB"
UBOOT_CONFIG[ccimx8x_sbc_express2GB] = "ccimx8x_sbc_express2GB_defconfig,,u-boot-dtb.${UBOOT_SUFFIX}"
UBOOT_CONFIG[ccimx8x_sbc_express1GB] = "ccimx8x_sbc_express1GB_defconfig,,u-boot-dtb.${UBOOT_SUFFIX}"
UBOOT_CONFIG[ccimx8x_sbc_express512MB] = "ccimx8x_sbc_express512MB_defconfig,,u-boot-dtb.${UBOOT_SUFFIX}"
UBOOT_CONFIG ??= "ccimx8x_sbc_express"
UBOOT_CONFIG[ccimx8x_sbc_express] = "ccimx8x_sbc_express_defconfig,,u-boot-dtb.${UBOOT_SUFFIX}"
SPL_BINARY = "spl/u-boot-spl.bin"
KERNEL_DEVICETREE ?= " \
digi/ccimx8x-sbc-express.dtb \
@ -36,12 +34,6 @@ IMAGE_FSTYPES ?= '${@bb.utils.contains("IMAGE_FEATURES", "read-only-rootfs", \
# Boot artifacts to be copied from the deploy dir to the installer ZIP
BOOTABLE_ARTIFACTS = " \
imx-boot-ccimx8x-sbc-express-B0-1GB_16bit.bin \
imx-boot-ccimx8x-sbc-express-B0-1GB_32bit.bin \
imx-boot-ccimx8x-sbc-express-B0-2GB_32bit.bin \
imx-boot-ccimx8x-sbc-express-B0-512MB_16bit.bin \
imx-boot-ccimx8x-sbc-express-C0-1GB_16bit.bin \
imx-boot-ccimx8x-sbc-express-C0-1GB_32bit.bin \
imx-boot-ccimx8x-sbc-express-C0-2GB_32bit.bin \
imx-boot-ccimx8x-sbc-express-C0-512MB_16bit.bin \
imx-boot-ccimx8x-sbc-express-B0.bin \
imx-boot-ccimx8x-sbc-express-C0.bin \
"

View File

@ -7,10 +7,9 @@ include conf/machine/include/ccimx8x.inc
# U-Boot configurations
# Last one is the default (the one the symlinks point at)
UBOOT_CONFIG ??= "ccimx8x_sbc_pro512MB ccimx8x_sbc_pro1GB ccimx8x_sbc_pro2GB"
UBOOT_CONFIG[ccimx8x_sbc_pro2GB] = "ccimx8x_sbc_pro2GB_defconfig,,u-boot-dtb.${UBOOT_SUFFIX}"
UBOOT_CONFIG[ccimx8x_sbc_pro1GB] = "ccimx8x_sbc_pro1GB_defconfig,,u-boot-dtb.${UBOOT_SUFFIX}"
UBOOT_CONFIG[ccimx8x_sbc_pro512MB] = "ccimx8x_sbc_pro512MB_defconfig,,u-boot-dtb.${UBOOT_SUFFIX}"
UBOOT_CONFIG ??= "ccimx8x_sbc_pro"
UBOOT_CONFIG[ccimx8x_sbc_pro] = "ccimx8x_sbc_pro_defconfig,,u-boot-dtb.${UBOOT_SUFFIX}"
SPL_BINARY = "spl/u-boot-spl.bin"
KERNEL_DEVICETREE ?= " \
digi/ccimx8x-sbc-pro.dtb \
@ -49,17 +48,11 @@ IMAGE_FSTYPES ?= '${@bb.utils.contains("IMAGE_FEATURES", "read-only-rootfs", \
# Boot artifacts to be copied from the deploy dir to the installer ZIP
BOOTABLE_ARTIFACTS = " \
imx-boot-ccimx8x-sbc-pro-B0-1GB_16bit.bin \
imx-boot-ccimx8x-sbc-pro-B0-1GB_32bit.bin \
imx-boot-ccimx8x-sbc-pro-B0-2GB_32bit.bin \
imx-boot-ccimx8x-sbc-pro-B0-512MB_16bit.bin \
imx-boot-ccimx8x-sbc-pro-C0-1GB_16bit.bin \
imx-boot-ccimx8x-sbc-pro-C0-1GB_32bit.bin \
imx-boot-ccimx8x-sbc-pro-C0-2GB_32bit.bin \
imx-boot-ccimx8x-sbc-pro-C0-512MB_16bit.bin \
imx-boot-ccimx8x-sbc-pro-B0.bin \
imx-boot-ccimx8x-sbc-pro-C0.bin \
"
# Default overlayfs_etc mount point and type
OVERLAYFS_ETC_MOUNT_POINT ?= "/mnt/data"
OVERLAYFS_ETC_DEVICE ?= "/dev/mmcblk0p7"
OVERLAYFS_ETC_FSTYPE ?= "ext4"
OVERLAYFS_ETC_FSTYPE ?= "ext4"

View File

@ -64,7 +64,7 @@ MACHINE_FEATURES += "accel-graphics wifi bluetooth cryptochip pci mca"
# TrustFence
TRUSTFENCE_SIGN_MODE = "AHAB"
IMXBOOT_TARGETS = "flash"
IMXBOOT_TARGETS = "flash_spl"
IMX_BOOT_SOC_TARGET = "iMX8QX"
IMX_BOOT_SEEK = "32"

View File

@ -17,16 +17,6 @@ DEPENDS += "${@oe.utils.conditional('TRUSTFENCE_SIGN', '1', 'trustfence-sign-too
UUU_BOOTLOADER = ""
UUU_BOOTLOADER_TAGGED = ""
compile_mx8x() {
bbnote 8QX boot binary build
cp ${DEPLOY_DIR_IMAGE}/${SECO_FIRMWARE_NAME} ${BOOT_STAGING}
cp ${DEPLOY_DIR_IMAGE}/${ATF_MACHINE_NAME} ${BOOT_STAGING}/bl31.bin
cp ${DEPLOY_DIR_IMAGE}/${BOOT_TOOLS}/${SC_FIRMWARE_NAME} ${BOOT_STAGING}/
for type in ${UBOOT_CONFIG}; do
cp ${DEPLOY_DIR_IMAGE}/${BOOT_TOOLS}/u-boot-${type}.bin ${BOOT_STAGING}/
done
}
compile_mx8m:append:ccimx8m() {
# Create dummy DEK blob to support building with encrypted u-boot
if [ -n "${TRUSTFENCE_DEK_PATH}" ] && [ "${TRUSTFENCE_DEK_PATH}" != "0" ]; then
@ -45,24 +35,16 @@ do_compile:ccimx8x () {
cp ${DEPLOY_DIR_IMAGE}/tee.bin {BOOT_STAGING}
fi
# mkimage for i.MX8
for type in ${UBOOT_CONFIG}; do
cd ${BOOT_STAGING}
ln -sf u-boot-${type}.bin u-boot.bin
cd -
for target in ${IMXBOOT_TARGETS}; do
for rev in ${SOC_REVISIONS}; do
bbnote "building ${IMX_BOOT_SOC_TARGET} - ${type} - REV=${rev} ${target}"
make SOC=${IMX_BOOT_SOC_TARGET} dtbs=${UBOOT_DTB_NAME} REV=${rev} ${target} > ${S}/mkimage-${target}.log 2>&1
if [ -e "${BOOT_STAGING}/flash.bin" ]; then
cp ${BOOT_STAGING}/flash.bin ${S}/${UBOOT_PREFIX}-${MACHINE}-${rev}-${ramc}.bin-${target}
fi
SCFWBUILT="yes"
done
for target in ${IMXBOOT_TARGETS}; do
for rev in ${SOC_REVISIONS}; do
bbnote "building ${IMX_BOOT_SOC_TARGET} - REV=${rev} ${target}"
make SOC=${IMX_BOOT_SOC_TARGET} dtbs=${UBOOT_DTB_NAME} REV=${rev} ${target} > ${S}/mkimage-${target}.log 2>&1
if [ -e "${BOOT_STAGING}/flash.bin" ]; then
cp ${BOOT_STAGING}/flash.bin ${S}/${UBOOT_PREFIX}-${MACHINE}-${rev}.bin-${target}
fi
SCFWBUILT="yes"
done
rm ${BOOT_STAGING}/u-boot.bin
# Remove u-boot-atf.bin and u-boot-hash.bin so they get generated with the next iteration's U-Boot
rm ${BOOT_STAGING}/u-boot-atf.bin
rm ${BOOT_STAGING}/u-boot-hash.bin
done
# Check that SCFW was built at least once
@ -102,12 +84,6 @@ do_deploy:append:ccimx93() {
generate_symlinks
}
deploy_mx8x() {
install -d ${DEPLOYDIR}/${BOOT_TOOLS}
install -m 0644 ${BOOT_STAGING}/${SECO_FIRMWARE_NAME} ${DEPLOYDIR}/${BOOT_TOOLS}
install -m 0755 ${S}/${TOOLS_NAME} ${DEPLOYDIR}/${BOOT_TOOLS}
}
do_deploy:ccimx8x () {
deploy_${SOC_FAMILY}
# copy tee.bin to deploy path

View File

@ -182,13 +182,6 @@ BOOT_TOOLS:ccmp1 = "u-boot"
FIP_UBOOT_HEADER = "ccmp15-dvk"
FIP_UBOOT_HEADER:ccmp13 = "ccmp13-dvk"
adapt_uboot_filenames:append:ccimx8x() {
# Move all U-Boot artifacts to the imx-boot-tools folder
# U-Boot images are not bootable on the i.MX8X
install -d ${DEPLOYDIR}/${BOOT_TOOLS}
mv ${DEPLOYDIR}/u-boot* ${DEPLOYDIR}/${BOOT_TOOLS}/
}
do_deploy:append:ccimx8m() {
# Deploy u-boot-nodtb.bin and ccimx8m[m|n]-dvk.dtb, to be packaged in boot binary by imx-boot
if [ -n "${UBOOT_CONFIG}" ]