summaryrefslogtreecommitdiffstats
path: root/recipes-bsp/imx-mkimage/imx-boot_1.0.bb
diff options
context:
space:
mode:
Diffstat (limited to 'recipes-bsp/imx-mkimage/imx-boot_1.0.bb')
-rw-r--r--recipes-bsp/imx-mkimage/imx-boot_1.0.bb123
1 files changed, 76 insertions, 47 deletions
diff --git a/recipes-bsp/imx-mkimage/imx-boot_1.0.bb b/recipes-bsp/imx-mkimage/imx-boot_1.0.bb
index 120f0594e..59fe5854f 100644
--- a/recipes-bsp/imx-mkimage/imx-boot_1.0.bb
+++ b/recipes-bsp/imx-mkimage/imx-boot_1.0.bb
@@ -1,25 +1,38 @@
1# Copyright (C) 2017-2024 NXP 1# Copyright (C) 2017-2024,2026 NXP
2 2
3require imx-mkimage_git.inc 3require imx-mkimage_git.inc
4 4
5SUMMARY = "Boot loader image for i.MX 8 devices"
5DESCRIPTION = "Generate Boot Loader for i.MX 8 device" 6DESCRIPTION = "Generate Boot Loader for i.MX 8 device"
7HOMEPAGE = "https://github.com/nxp-imx/imx-mkimage"
8SECTION = "bsp"
6LICENSE = "GPL-2.0-only" 9LICENSE = "GPL-2.0-only"
7LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/GPL-2.0-only;md5=801f80980d171dd6425610833a22dbe6" 10LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/GPL-2.0-only;md5=801f80980d171dd6425610833a22dbe6"
8SECTION = "BSP"
9 11
10inherit use-imx-security-controller-firmware uboot-config 12DEPENDS += "xxd-native"
13DEPENDS:append:mx8m-generic-bsp = " u-boot-mkimage-native dtc-native u-boot-mkeficapsule-native"
14DEPENDS:append:mx93-generic-bsp = " u-boot-mkimage-native dtc-native u-boot-mkeficapsule-native"
15DEPENDS:append:mx95-generic-bsp = " u-boot-mkeficapsule-native"
11 16
12DEPENDS += " \ 17# This package aggregates output deployed by other packages,
13 u-boot \ 18# so set the appropriate dependencies
19DEPENDS += "\
20 virtual/bootloader \
14 ${IMX_EXTRA_FIRMWARE} \ 21 ${IMX_EXTRA_FIRMWARE} \
15 imx-atf \ 22 imx-atf \
23 ${@bb.utils.contains('UBOOT_CONFIG', 'crrm', '${CRRM_DEPLOY_DEPENDS}', '', d)} \
16 ${@bb.utils.contains('MACHINE_FEATURES', 'optee', 'optee-os', '', d)} \ 24 ${@bb.utils.contains('MACHINE_FEATURES', 'optee', 'optee-os', '', d)} \
17" 25"
18# xxd is a dependency of fspi_packer.sh
19DEPENDS += "xxd-native"
20DEPENDS:append:mx8m-generic-bsp = " u-boot-mkimage-native dtc-native"
21DEPENDS:append:mx93-generic-bsp = " u-boot-mkimage-native dtc-native"
22 26
27do_compile[deptask] = "do_deploy"
28do_compile[depends] += "${@bb.utils.contains('UBOOT_CONFIG', 'crrm', '${CRRM_INITRAMFS}:do_build', '', d)}"
29
30CRRM_DEPLOY_DEPENDS ?= "\
31 virtual/kernel \
32 ${CRRM_INITRAMFS}"
33CRRM_INITRAMFS ??= "imx-image-crrm-initramfs"
34
35inherit use-imx-security-controller-firmware uboot-config
23inherit deploy uuu_bootloader_tag 36inherit deploy uuu_bootloader_tag
24 37
25UUU_BOOTLOADER = "imx-boot" 38UUU_BOOTLOADER = "imx-boot"
@@ -27,28 +40,19 @@ UUU_BOOTLOADER = "imx-boot"
27# Add CFLAGS with native INCDIR & LIBDIR for imx-mkimage build 40# Add CFLAGS with native INCDIR & LIBDIR for imx-mkimage build
28CFLAGS = "-O2 -Wall -std=c99 -I ${STAGING_INCDIR_NATIVE} -L ${STAGING_LIBDIR_NATIVE}" 41CFLAGS = "-O2 -Wall -std=c99 -I ${STAGING_INCDIR_NATIVE} -L ${STAGING_LIBDIR_NATIVE}"
29 42
30# This package aggregates output deployed by other packages,
31# so set the appropriate dependencies
32do_compile[depends] += " \
33 virtual/bootloader:do_deploy \
34 ${@' '.join('%s:do_deploy' % r for r in '${IMX_EXTRA_FIRMWARE}'.split() )} \
35 imx-atf:do_deploy \
36 ${@bb.utils.contains('MACHINE_FEATURES', 'optee', 'optee-os:do_deploy', '', d)} \
37"
38
39SC_FIRMWARE_NAME ?= "scfw_tcm.bin" 43SC_FIRMWARE_NAME ?= "scfw_tcm.bin"
40 44
41OEI_ENABLE = "${@bb.utils.contains('DEPENDS', 'virtual/imx-oei', 'YES', 'NO', d)}"
42OEI_NAME ?= "oei-${OEI_CORE}-*.bin" 45OEI_NAME ?= "oei-${OEI_CORE}-*.bin"
43 46
44ATF_MACHINE_NAME ?= "bl31-${ATF_PLATFORM}.bin" 47ATF_MACHINE_NAME ?= "bl31-${ATF_PLATFORM}.bin"
48ATF_MACHINE_NAME:append = "${@bb.utils.contains('UBOOT_CONFIG', 'crrm', '-crrm', '', d)}"
45ATF_MACHINE_NAME:append = "${@bb.utils.contains('MACHINE_FEATURES', 'optee', '-optee', '', d)}" 49ATF_MACHINE_NAME:append = "${@bb.utils.contains('MACHINE_FEATURES', 'optee', '-optee', '', d)}"
46 50
47BOOT_VARIANT ?= "" 51BOOT_VARIANT ?= ""
48 52
49TOOLS_NAME ?= "mkimage_imx8" 53TOOLS_NAME ?= "mkimage_imx8"
50 54
51IMX_BOOT_SOC_TARGET ?= "INVALID" 55IMX_BOOT_SOC_TARGET ?= "INVALID"
52 56
53DEPLOY_OPTEE = "${@bb.utils.contains('MACHINE_FEATURES', 'optee', 'true', 'false', d)}" 57DEPLOY_OPTEE = "${@bb.utils.contains('MACHINE_FEATURES', 'optee', 'true', 'false', d)}"
54DEPLOY_OPTEE_STMM = "${@bb.utils.contains('MACHINE_FEATURES', 'optee stmm', 'true', 'false', d)}" 58DEPLOY_OPTEE_STMM = "${@bb.utils.contains('MACHINE_FEATURES', 'optee stmm', 'true', 'false', d)}"
@@ -58,43 +62,57 @@ IMXBOOT_TARGETS ?= \
58 bb.utils.contains('UBOOT_CONFIG', 'nand', 'flash_nand', \ 62 bb.utils.contains('UBOOT_CONFIG', 'nand', 'flash_nand', \
59 'flash_multi_cores flash_dcd', d), d)}" 63 'flash_multi_cores flash_dcd', d), d)}"
60 64
61BOOT_STAGING = "${S}/${IMX_BOOT_SOC_TARGET}" 65BOOT_STAGING = "${S}/${IMX_BOOT_SOC_TARGET}"
62BOOT_STAGING:mx8m-generic-bsp = "${S}/iMX8M" 66BOOT_STAGING:mx8m-generic-bsp = "${S}/iMX8M"
63BOOT_STAGING:mx8dx-generic-bsp = "${S}/iMX8QX" 67BOOT_STAGING:mx8dx-generic-bsp = "${S}/iMX8QX"
64BOOT_STAGING:mx91-generic-bsp = "${S}/iMX91" 68BOOT_STAGING:mx91-generic-bsp = "${S}/iMX91"
65BOOT_STAGING:mx93-generic-bsp = "${S}/iMX93" 69BOOT_STAGING:mx93-generic-bsp = "${S}/iMX93"
66BOOT_STAGING:mx943-generic-bsp = "${S}/iMX94" 70BOOT_STAGING:mx943-generic-bsp = "${S}/iMX94"
67BOOT_STAGING:mx95-generic-bsp = "${S}/iMX95" 71BOOT_STAGING:mx95-generic-bsp = "${S}/iMX95"
68 72
69SOC_FAMILY = "INVALID" 73SOC_FAMILY = "INVALID"
70SOC_FAMILY:mx8-generic-bsp = "mx8" 74SOC_FAMILY:mx8-generic-bsp = "mx8"
71SOC_FAMILY:mx8m-generic-bsp = "mx8m" 75SOC_FAMILY:mx8m-generic-bsp = "mx8m"
72SOC_FAMILY:mx8x-generic-bsp = "mx8x" 76SOC_FAMILY:mx8x-generic-bsp = "mx8x"
73SOC_FAMILY:mx8ulp-generic-bsp = "mx8ulp" 77SOC_FAMILY:mx8ulp-generic-bsp = "mx8ulp"
74SOC_FAMILY:mx91-generic-bsp = "mx91" 78SOC_FAMILY:mx91-generic-bsp = "mx91"
75SOC_FAMILY:mx93-generic-bsp = "mx93" 79SOC_FAMILY:mx93-generic-bsp = "mx93"
76SOC_FAMILY:mx943-generic-bsp = "mx943" 80SOC_FAMILY:mx943-generic-bsp = "mx943"
77SOC_FAMILY:mx95-generic-bsp = "mx95" 81SOC_FAMILY:mx95-generic-bsp = "mx95"
78 82
79REV_OPTION ?= "REV=${IMX_SOC_REV_UPPER}" 83REV_OPTION ?= "REV=${IMX_SOC_REV_UPPER}"
80 84
81MKIMAGE_EXTRA_ARGS ?= "" 85MKIMAGE_EXTRA_ARGS ?= ""
82MKIMAGE_EXTRA_ARGS:mx943-nxp-bsp ?= " \ 86MKIMAGE_EXTRA_ARGS:mx943-nxp-bsp ?= "\
83 OEI=${OEI_ENABLE} \ 87 OEI=YES \
84 LPDDR_TYPE=${DDR_TYPE} \ 88 LPDDR_TYPE=${DDR_TYPE} \
85 MSEL=${MSEL_TYPE} \ 89 MSEL=${MSEL_TYPE} \
86" 90"
87MKIMAGE_EXTRA_ARGS:mx95-nxp-bsp ?= " \ 91MKIMAGE_EXTRA_ARGS:mx95-nxp-bsp ?= "\
88 OEI=${OEI_ENABLE} \ 92 OEI=YES \
89 LPDDR_TYPE=${DDR_TYPE} \ 93 LPDDR_TYPE=${DDR_TYPE} \
90 ${@'LPDDR_FW_VERSION='+d.getVar('LPDDR_FW_VERSION') if d.getVar('LPDDR_FW_VERSION') else ''} \ 94 ${@'LPDDR_FW_VERSION='+d.getVar('LPDDR_FW_VERSION') if d.getVar('LPDDR_FW_VERSION') else ''} \
91 ${@bb.utils.contains('SYSTEM_MANAGER_CONFIG', 'mx95alt', 'MSEL=1', '', d)}" 95 ${@bb.utils.contains('SYSTEM_MANAGER_CONFIG', 'mx95alt', 'MSEL=1', '', d)}"
92MKIMAGE_EXTRA_ARGS:imx95-19x19-verdin ?= " \ 96MKIMAGE_EXTRA_ARGS:imx95-19x19-lpddr5-frdm-pro ?= "\
97 ${MKIMAGE_EXTRA_ARGS:mx95-nxp-bsp} \
98 QSPI_HEADER=./scripts/fspi_header-W25Q512NWEIQ"
99
100MKIMAGE_EXTRA_ARGS:imx95-19x19-verdin ?= "\
93 ${MKIMAGE_EXTRA_ARGS:mx95-nxp-bsp} \ 101 ${MKIMAGE_EXTRA_ARGS:mx95-nxp-bsp} \
94 QSPI_HEADER=./scripts/fspi_header_133" 102 QSPI_HEADER=./scripts/fspi_header_133"
103MKIMAGE_EXTRA_ARGS:imx95-a1-19x19-verdin ?= "\
104 ${MKIMAGE_EXTRA_ARGS:imx95-19x19-verdin} \
105"
95 106
96UBOOT_DTB_BINARY ?= "u-boot.dtb" 107UBOOT_DTB_BINARY ?= "u-boot.dtb"
97 108
109CRRM_FILES = "\
110 ${KERNEL_IMAGETYPE}.gz \
111 ${KERNEL_IMAGETYPE}_crrm.gz \
112 ${KERNEL_DEVICETREE_BASENAME}.dtb \
113 ${KERNEL_DEVICETREE_BASENAME}-crrm.dtb \
114 ${CRRM_INITRAMFS}-${MACHINE}.cpio.zst.u-boot"
115
98compile_mx8m() { 116compile_mx8m() {
99 bbnote 8MQ/8MM/8MN/8MP boot binary build 117 bbnote 8MQ/8MM/8MN/8MP boot binary build
100 for ddr_firmware in ${DDR_FIRMWARE_NAME}; do 118 for ddr_firmware in ${DDR_FIRMWARE_NAME}; do
@@ -188,6 +206,7 @@ compile_mx943() {
188 bbnote i.MX 943 boot binary build 206 bbnote i.MX 943 boot binary build
189 compile_mx93 207 compile_mx93
190 208
209 cp ${DEPLOY_DIR_IMAGE}/${OEI_NAME} ${BOOT_STAGING}
191 cp ${DEPLOY_DIR_IMAGE}/${SYSTEM_MANAGER_FIRMWARE_NAME}.bin \ 210 cp ${DEPLOY_DIR_IMAGE}/${SYSTEM_MANAGER_FIRMWARE_NAME}.bin \
192 ${BOOT_STAGING}/${SYSTEM_MANAGER_FIRMWARE_BASENAME}.bin 211 ${BOOT_STAGING}/${SYSTEM_MANAGER_FIRMWARE_BASENAME}.bin
193} 212}
@@ -196,6 +215,7 @@ compile_mx95() {
196 bbnote i.MX 95 boot binary build 215 bbnote i.MX 95 boot binary build
197 compile_mx93 216 compile_mx93
198 217
218 cp ${DEPLOY_DIR_IMAGE}/${OEI_NAME} ${BOOT_STAGING}
199 cp ${DEPLOY_DIR_IMAGE}/${SYSTEM_MANAGER_FIRMWARE_NAME}.bin \ 219 cp ${DEPLOY_DIR_IMAGE}/${SYSTEM_MANAGER_FIRMWARE_NAME}.bin \
200 ${BOOT_STAGING}/${SYSTEM_MANAGER_FIRMWARE_BASENAME}.bin 220 ${BOOT_STAGING}/${SYSTEM_MANAGER_FIRMWARE_BASENAME}.bin
201} 221}
@@ -210,9 +230,13 @@ do_compile() {
210 cp ${DEPLOY_DIR_IMAGE}/tee.bin ${BOOT_STAGING}/tee.bin-stmm 230 cp ${DEPLOY_DIR_IMAGE}/tee.bin ${BOOT_STAGING}/tee.bin-stmm
211 fi 231 fi
212 fi 232 fi
213 # Copy OEI firmware to SoC target folder to mkimage 233 # Copy CRRM binaries to SoC target folder to mkimage
214 if [ "${OEI_ENABLE}" = "YES" ]; then 234 if [ ${@bb.utils.filter('UBOOT_CONFIG', 'crrm', d)} ]; then
215 cp ${DEPLOY_DIR_IMAGE}/${OEI_NAME} ${BOOT_STAGING} 235 for f in ${CRRM_FILES}; do
236 cp ${DEPLOY_DIR_IMAGE}/$f ${BOOT_STAGING}/$f
237 done
238 ln -sf ${CRRM_INITRAMFS}-${MACHINE}.cpio.zst.u-boot \
239 ${BOOT_STAGING}/initramfs.cpio.zst.u-boot
216 fi 240 fi
217 241
218 for type in ${UBOOT_CONFIG}; do 242 for type in ${UBOOT_CONFIG}; do
@@ -250,11 +274,11 @@ do_compile() {
250 ;; 274 ;;
251 *stmm_capsule) 275 *stmm_capsule)
252 # target for flash_evk_stmm_capsule or 276 # target for flash_evk_stmm_capsule or
253 # flash_singleboot_stmm_capsule 277 # flash_singleboot_stmm_capsule or flash_lpboot_sm_all_stmm_capsule
254 cp ${RECIPE_SYSROOT_NATIVE}/${bindir}/mkeficapsule ${BOOT_STAGING} 278 cp ${RECIPE_SYSROOT_NATIVE}/${bindir}/mkeficapsule ${BOOT_STAGING}
255 bbnote "building ${IMX_BOOT_SOC_TARGET} - TEE=tee.bin-stmm ${target}" 279 bbnote "building ${IMX_BOOT_SOC_TARGET} - TEE=tee.bin-stmm ${MKIMAGE_EXTRA_ARGS} ${target}"
256 cp ${DEPLOY_DIR_IMAGE}/CRT.* ${BOOT_STAGING} 280 cp ${DEPLOY_DIR_IMAGE}/CRT.* ${BOOT_STAGING}
257 make SOC=${IMX_BOOT_SOC_TARGET} TEE=tee.bin-stmm dtbs=${UBOOT_DTB_NAME} ${REV_OPTION} ${target} 281 make SOC=${IMX_BOOT_SOC_TARGET} TEE=tee.bin-stmm ${MKIMAGE_EXTRA_ARGS} dtbs=${UBOOT_DTB_NAME} ${REV_OPTION} ${target}
258 ;; 282 ;;
259 *) 283 *)
260 bbnote "building ${IMX_BOOT_SOC_TARGET} - ${REV_OPTION} ${MKIMAGE_EXTRA_ARGS} ${target}" 284 bbnote "building ${IMX_BOOT_SOC_TARGET} - ${REV_OPTION} ${MKIMAGE_EXTRA_ARGS} ${target}"
@@ -365,12 +389,14 @@ deploy_mx93() {
365 389
366deploy_mx943() { 390deploy_mx943() {
367 deploy_mx93 391 deploy_mx93
392 install -m 0644 ${BOOT_STAGING}/${OEI_NAME} ${DEPLOYDIR}/${BOOT_TOOLS}
368 install -m 0644 ${BOOT_STAGING}/${SYSTEM_MANAGER_FIRMWARE_BASENAME}.bin \ 393 install -m 0644 ${BOOT_STAGING}/${SYSTEM_MANAGER_FIRMWARE_BASENAME}.bin \
369 ${DEPLOYDIR}/${BOOT_TOOLS}/${SYSTEM_MANAGER_FIRMWARE_NAME}.bin 394 ${DEPLOYDIR}/${BOOT_TOOLS}/${SYSTEM_MANAGER_FIRMWARE_NAME}.bin
370} 395}
371 396
372deploy_mx95() { 397deploy_mx95() {
373 deploy_mx93 398 deploy_mx93
399 install -m 0644 ${BOOT_STAGING}/${OEI_NAME} ${DEPLOYDIR}/${BOOT_TOOLS}
374 install -m 0644 ${BOOT_STAGING}/${SYSTEM_MANAGER_FIRMWARE_BASENAME}.bin \ 400 install -m 0644 ${BOOT_STAGING}/${SYSTEM_MANAGER_FIRMWARE_BASENAME}.bin \
375 ${DEPLOYDIR}/${BOOT_TOOLS}/${SYSTEM_MANAGER_FIRMWARE_NAME}.bin 401 ${DEPLOYDIR}/${BOOT_TOOLS}/${SYSTEM_MANAGER_FIRMWARE_NAME}.bin
376} 402}
@@ -383,9 +409,12 @@ do_deploy() {
383 install -m 0644 ${DEPLOY_DIR_IMAGE}/tee.bin ${DEPLOYDIR}/${BOOT_TOOLS} 409 install -m 0644 ${DEPLOY_DIR_IMAGE}/tee.bin ${DEPLOYDIR}/${BOOT_TOOLS}
384 fi 410 fi
385 411
386 # copy oei to deploy path 412 # copy crrm to deploy path
387 if [ "${OEI_ENABLE}" = "YES" ]; then 413 if [ ${@bb.utils.filter('UBOOT_CONFIG', 'crrm', d)} ]; then
388 install -m 0644 ${BOOT_STAGING}/${OEI_NAME} ${DEPLOYDIR}/${BOOT_TOOLS} 414 for f in ${CRRM_FILES}; do
415 cp ${DEPLOY_DIR_IMAGE}/$f ${DEPLOYDIR}/${BOOT_TOOLS}/$f
416 done
417 ln -s ${CRRM_INITRAMFS}-${MACHINE}.cpio.zst.u-boot ${DEPLOYDIR}/${BOOT_TOOLS}/initramfs.cpio.zst.u-boot
389 fi 418 fi
390 419
391 # copy makefile (soc.mak) for reference 420 # copy makefile (soc.mak) for reference