ccimx93: enable the build of A0 SOC revision bootloader

Implement support to program the correct bootloader on the different
installation scripts.

Signed-off-by: Javier Viguera <javier.viguera@digi.com>
This commit is contained in:
Javier Viguera 2023-11-02 18:59:37 +01:00
parent 77755ac73c
commit e9aeb051cf
5 changed files with 52 additions and 9 deletions

View File

@ -56,7 +56,10 @@ IMAGE_FSTYPES ?= '${@bb.utils.contains("IMAGE_FEATURES", "read-only-rootfs", \
"boot.vfat recovery.vfat ext4.gz tar.bz2 sdcard.gz", d)}' "boot.vfat recovery.vfat ext4.gz tar.bz2 sdcard.gz", d)}'
# Boot artifacts to be copied from the deploy dir to the installer ZIP # Boot artifacts to be copied from the deploy dir to the installer ZIP
BOOTABLE_ARTIFACTS = "imx-boot-ccimx93-dvk.bin" BOOTABLE_ARTIFACTS = " \
imx-boot-ccimx93-dvk.bin \
imx-boot-ccimx93-dvk-A0.bin \
"
# Default overlayfs_etc mount point and type # Default overlayfs_etc mount point and type
OVERLAYFS_ETC_MOUNT_POINT ?= "/mnt/data" OVERLAYFS_ETC_MOUNT_POINT ?= "/mnt/data"

View File

@ -17,6 +17,10 @@ BOOTLOADER_IMAGE_RECIPE = "imx-boot"
BOOTABLE_FILENAME = "${UBOOT_PREFIX}-${MACHINE}.bin" BOOTABLE_FILENAME = "${UBOOT_PREFIX}-${MACHINE}.bin"
SDIMG_BOOTLOADER = "${DEPLOY_DIR_IMAGE}/${BOOTABLE_FILENAME}" SDIMG_BOOTLOADER = "${DEPLOY_DIR_IMAGE}/${BOOTABLE_FILENAME}"
# Generate images for all SOC revisions (keep the override as otherwise the
# one in "use-imx-security-controller-firmware.bbclass" takes precedence)
SECO_FIRMWARE_NAME:ccimx93 = "mx93??-ahab-container.img"
DDR_FIRMWARE_NAME = " \ DDR_FIRMWARE_NAME = " \
lpddr4_dmem_1d_v202201.bin \ lpddr4_dmem_1d_v202201.bin \
lpddr4_dmem_2d_v202201.bin \ lpddr4_dmem_2d_v202201.bin \
@ -48,7 +52,7 @@ MACHINE_EXTRA_RDEPENDS += " \
# TrustFence # TrustFence
TRUSTFENCE_SIGN_MODE = "AHAB" TRUSTFENCE_SIGN_MODE = "AHAB"
IMXBOOT_TARGETS = "flash_singleboot" IMXBOOT_TARGETS = "flash_singleboot flash_singleboot_a0"
IMX_BOOT_SOC_TARGET = "iMX9" IMX_BOOT_SOC_TARGET = "iMX9"
IMX_BOOT_SEEK = "32" IMX_BOOT_SEEK = "32"

View File

@ -7,7 +7,20 @@
install_abort=0 install_abort=0
BASEFILENAME=0 BASEFILENAME=0
setenv INSTALL_UBOOT_FILENAME imx-boot-##MACHINE##.bin; # Determine U-Boot file to program basing on SOM's SOC revision
if test -z "${soc_rev}"; then
# Fallback to hardware version if soc_rev is empty
setexpr som_hv ${hwid_2} \& 78
setexpr som_hv ${som_hv} / 8
if test "${som_hv}" -lt "2"; then
SOCREV="-A0"
fi
else
if test "${soc_rev}" = "0x10"; then
SOCREV="-A0"
fi
fi
setenv INSTALL_UBOOT_FILENAME imx-boot-##MACHINE##${SOCREV}.bin
setenv INSTALL_MMCDEV 1 setenv INSTALL_MMCDEV 1
if test -z "${image-name}"; then if test -z "${image-name}"; then

View File

@ -7,7 +7,20 @@
install_abort=0 install_abort=0
BASEFILENAME=0 BASEFILENAME=0
setenv INSTALL_UBOOT_FILENAME imx-boot-##MACHINE##.bin; # Determine U-Boot file to program basing on SOM's SOC revision
if test -z "${soc_rev}"; then
# Fallback to hardware version if soc_rev is empty
setexpr som_hv ${hwid_2} \& 78
setexpr som_hv ${som_hv} / 8
if test "${som_hv}" -lt "2"; then
SOCREV="-A0"
fi
else
if test "${soc_rev}" = "0x10"; then
SOCREV="-A0"
fi
fi
setenv INSTALL_UBOOT_FILENAME imx-boot-##MACHINE##${SOCREV}.bin
setenv INSTALL_USBDEV 0 setenv INSTALL_USBDEV 0
if test -z "${image-name}"; then if test -z "${image-name}"; then

View File

@ -93,16 +93,26 @@ if [ "${dualboot}" = "yes" ]; then
DUALBOOT=true; DUALBOOT=true;
fi fi
# remove redirect
uuu fb: ucmd setenv stdout serial
echo "" echo ""
echo "Determining image files to use..." echo "Determining image files to use..."
# Determine U-Boot file to program basing on SOM's SOC type (linked to bus width) # Determine U-Boot file to program basing on SOM's SOC revision
if [ -z "${INSTALL_UBOOT_FILENAME}" ]; then if [ -z "${INSTALL_UBOOT_FILENAME}" ]; then
INSTALL_UBOOT_FILENAME="imx-boot-##MACHINE##.bin" soc_rev="$(getenv soc_rev)"
if [ -n "${soc_rev}" ]; then
[ "${soc_rev}" = "0x10" ] && SOCREV="-A0"
else
# Fallback to hardware version if soc_rev is empty
hwid_2="$(getenv hwid_2)"
hwid_2="0x${hwid_2#0x}"
som_hv="$(((hwid_2 & 0x78) >> 3))"
[ "${som_hv}" -lt "2" ] && SOCREV="-A0"
fi fi
INSTALL_UBOOT_FILENAME="imx-boot-##MACHINE##${SOCREV}.bin"
fi
# remove redirect
uuu fb: ucmd setenv stdout serial
# Determine linux, recovery, and rootfs image filenames to update # Determine linux, recovery, and rootfs image filenames to update
if [ -z "${IMAGE_NAME}" ]; then if [ -z "${IMAGE_NAME}" ]; then