diff --git a/meta-digi-arm/classes/image_types_digi.bbclass b/meta-digi-arm/classes/image_types_digi.bbclass index 236164dc1..8d38f572c 100644 --- a/meta-digi-arm/classes/image_types_digi.bbclass +++ b/meta-digi-arm/classes/image_types_digi.bbclass @@ -89,7 +89,7 @@ do_image_boot_ubifs[depends] += " \ IMAGE_CMD:boot.ubifs() { BOOTIMG_FILES_SYMLINK="${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-${MACHINE}.bin" - # Exclude DTB and DTBO from UBIFS image when creating a FIT image + # Exclude DTB and DTBO from final image, when creating a FIT file if [ "${KERNEL_IMAGETYPE}" != "fitImage" ]; then if [ -n "${KERNEL_DEVICETREE}" ]; then for DTB in ${KERNEL_DEVICETREE}; do @@ -116,7 +116,7 @@ IMAGE_CMD:boot.ubifs() { ln ${orig} ${TMP_BOOTDIR}/$(basename ${item}) done - # Exclude boot scripts from UBIFS image when creating a FIT image + # Exclude boot scripts from final image, when creating a FIT file if [ "${KERNEL_IMAGETYPE}" != "fitImage" ]; then # Hard-link boot scripts into the temporary folder for item in ${BOOT_SCRIPTS}; do @@ -167,8 +167,12 @@ do_image_recovery_ubifs[depends] += " \ " IMAGE_CMD:recovery.ubifs() { - RECOVERYIMG_FILES_SYMLINK="${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-${MACHINE}.bin" - # Exclude DTB and DTBO from VFAT image when creating a FIT image + if [ "${KERNEL_IMAGETYPE}" = "fitImage" ]; then + RECOVERYIMG_FILES_SYMLINK="${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-${RECOVERY_INITRAMFS_IMAGE}-${MACHINE}-${MACHINE}" + else + RECOVERYIMG_FILES_SYMLINK="${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-${MACHINE}.bin" + fi + # Exclude DTB and DTBO from final image, when creating a FIT file if [ "${KERNEL_IMAGETYPE}" != "fitImage" ]; then if [ -n "${KERNEL_DEVICETREE}" ]; then for DTB in ${KERNEL_DEVICETREE}; do @@ -190,15 +194,17 @@ IMAGE_CMD:recovery.ubifs() { ln ${orig} ${TMP_RECOVERYDIR}/$(basename ${item}) done - # Exclude bootscript from VFAT image when creating a FIT image - if [ "${KERNEL_IMAGETYPE}" != "fitImage" ]; then + # Exclude bootscript from final image when creating a FIT file + if [ "${KERNEL_IMAGETYPE}" = "fitImage" ]; then + # rename FITimage to u-boot default kernel load name + mv ${TMP_RECOVERYDIR}/${KERNEL_IMAGETYPE}-${RECOVERY_INITRAMFS_IMAGE}-${MACHINE}-${MACHINE} ${TMP_RECOVERYDIR}/${KERNEL_IMAGETYPE}-${MACHINE}.bin + else # Hard-link boot scripts into the temporary folder for item in ${BOOT_SCRIPTS}; do src="$(echo ${item} | awk -F':' '{ print $1 }')" dst="$(echo ${item} | awk -F':' '{ print $2 }')" ln ${DEPLOY_DIR_IMAGE}/${src} ${TMP_RECOVERYDIR}/${dst} done - # Copy the recovery initramfs into the temporary folder cp ${DEPLOY_DIR_IMAGE}/${RECOVERY_INITRAMFS_IMAGE}-${MACHINE}.cpio.gz.u-boot.tf ${TMP_RECOVERYDIR}/uramdisk-recovery.img fi diff --git a/meta-digi-arm/conf/machine/include/ccimx6.inc b/meta-digi-arm/conf/machine/include/ccimx6.inc index 4f5161631..9169db2ed 100644 --- a/meta-digi-arm/conf/machine/include/ccimx6.inc +++ b/meta-digi-arm/conf/machine/include/ccimx6.inc @@ -16,6 +16,9 @@ UBOOT_SUFFIX = "imx" BOOTABLE_FILENAME = "${UBOOT_PREFIX}-${MACHINE}.${UBOOT_SUFFIX}" SDIMG_BOOTLOADER = "${DEPLOY_DIR_IMAGE}/${BOOTABLE_FILENAME}" +# Set InitRAMDisk load address to U-boot initramfs_addr +UBOOT_RD_LOADADDRESS = "0x19000000" + # Linux kernel configuration KERNEL_DEFCONFIG ?= "arch/arm/configs/ccimx6sbc_defconfig" diff --git a/meta-digi-arm/conf/machine/include/ccimx6ul.inc b/meta-digi-arm/conf/machine/include/ccimx6ul.inc index 8bdbb3efe..69538f9a0 100644 --- a/meta-digi-arm/conf/machine/include/ccimx6ul.inc +++ b/meta-digi-arm/conf/machine/include/ccimx6ul.inc @@ -16,6 +16,9 @@ INIT_MANAGER ?= "sysvinit" UBOOT_PREFIX = "u-boot" UBOOT_SUFFIX = "imx" +# Set InitRAMDisk load address to U-boot initramfs_addr +UBOOT_RD_LOADADDRESS = "0x83800000" + STORAGE_MEDIA = "mtd" # Wireless external module diff --git a/meta-digi-arm/conf/machine/include/ccimx8m.inc b/meta-digi-arm/conf/machine/include/ccimx8m.inc index ce88fff5e..bb2d79f7c 100644 --- a/meta-digi-arm/conf/machine/include/ccimx8m.inc +++ b/meta-digi-arm/conf/machine/include/ccimx8m.inc @@ -17,6 +17,9 @@ BOOTLOADER_IMAGE_RECIPE = "imx-boot" BOOTABLE_FILENAME = "${UBOOT_PREFIX}-${MACHINE}.bin" SDIMG_BOOTLOADER = "${DEPLOY_DIR_IMAGE}/${BOOTABLE_FILENAME}" +# Set InitRAMDisk load address to U-boot initramfs_addr +UBOOT_RD_LOADADDRESS = "0x43800000" + # LPDDR4 firmware DDR_FIRMWARE_NAME = " \ lpddr4_pmu_train_1d_imem.bin \ diff --git a/meta-digi-arm/conf/machine/include/ccimx8x.inc b/meta-digi-arm/conf/machine/include/ccimx8x.inc index 36f9c1bfb..d3450bcbd 100644 --- a/meta-digi-arm/conf/machine/include/ccimx8x.inc +++ b/meta-digi-arm/conf/machine/include/ccimx8x.inc @@ -13,6 +13,9 @@ include conf/machine/include/arm/armv8a/tune-cortexa35.inc UBOOT_PREFIX = "imx-boot" UBOOT_SUFFIX = "bin" +# Set InitRAMDisk load address to U-boot initrd_addr +UBOOT_RD_LOADADDRESS = "0x8A100000" + # The bootloader image that gets flashed consists of U-Boot and several fw binaries EXTRA_IMAGEDEPENDS += "imx-boot" BOOTLOADER_IMAGE_RECIPE = "imx-boot" diff --git a/meta-digi-arm/conf/machine/include/ccimx9.inc b/meta-digi-arm/conf/machine/include/ccimx9.inc index ccd45d4bf..3079142a9 100644 --- a/meta-digi-arm/conf/machine/include/ccimx9.inc +++ b/meta-digi-arm/conf/machine/include/ccimx9.inc @@ -15,6 +15,9 @@ UBOOT_ENV = "boot" UBOOT_PREFIX = "imx-boot" UBOOT_SUFFIX = "bin" +# Set InitRAMDisk load address to U-boot initrd_addr +UBOOT_RD_LOADADDRESS = "0x83800000" + # Platform kernel settings (keep the override as otherwise KERNEL_IMAGETYPE # from imx-digi-base.inc takes precedence) KERNEL_CLASSES = "kernel-fitimage" diff --git a/meta-digi-arm/conf/machine/include/ccmp1.inc b/meta-digi-arm/conf/machine/include/ccmp1.inc index 93a33dd36..88f39305c 100644 --- a/meta-digi-arm/conf/machine/include/ccmp1.inc +++ b/meta-digi-arm/conf/machine/include/ccmp1.inc @@ -42,6 +42,9 @@ UBOOT_ENV_SIZE ?= "0x20000" # available space in the environment partition) UBOOT_ENV_RANGE ?= "" +# Set InitRAMDisk load address to U-boot initrd_addr +UBOOT_RD_LOADADDRESS = "0xc4400000" + # OPTEE runtime packages to install OPTEE_PKGS ??= "optee-client" diff --git a/meta-digi-dey/conf/distro/dey.conf b/meta-digi-dey/conf/distro/dey.conf index 6e5b3fa2c..c59ef34eb 100644 --- a/meta-digi-dey/conf/distro/dey.conf +++ b/meta-digi-dey/conf/distro/dey.conf @@ -37,6 +37,8 @@ GRAPHICAL_BACKEND = "${@bb.utils.contains('DISTRO_FEATURES', 'x11 wayland', 'xwa # Recovery initramfs image name. RECOVERY_INITRAMFS_IMAGE ?= "dey-image-recovery-initramfs" +# Add initramfs into FIT image +INITRAMFS_IMAGE = '${@bb.utils.contains("KERNEL_IMAGETYPE", "fitImage", "${RECOVERY_INITRAMFS_IMAGE}", "", d)}' # DEY image features (alphabetical order) FEATURE_PACKAGES_dey-audio = "packagegroup-dey-audio" diff --git a/meta-digi-dey/recipes-core/images/dey-image-recovery-initramfs.bb b/meta-digi-dey/recipes-core/images/dey-image-recovery-initramfs.bb index e8b06aeb9..ff8ec23be 100644 --- a/meta-digi-dey/recipes-core/images/dey-image-recovery-initramfs.bb +++ b/meta-digi-dey/recipes-core/images/dey-image-recovery-initramfs.bb @@ -20,7 +20,11 @@ IMAGE_FEATURES = "" IMAGE_LINGUAS = "" python() { - d.setVar('IMAGE_FSTYPES', 'cpio.gz.u-boot.tf') + # If Kernel image is FIT create different initramfs file without u-boot header + if (d.getVar("KERNEL_IMAGETYPE") == "fitImage"): + d.setVar('IMAGE_FSTYPES', 'cpio.gz') + else: + d.setVar('IMAGE_FSTYPES', 'cpio.gz.u-boot.tf') } inherit core-image image_types