summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOtavio Salvador <otavio@ossystems.com.br>2026-10-28 17:12:08 -0300
committerGitHub <noreply@github.com>2026-10-28 17:12:08 -0300
commit90b3388558adec9c2dbbc9c3a9524a6b0927d79f (patch)
treea05b94dc8ba9ddc82a1f17827c653a074b14b255
parent8d000368efe60b83f47b1899a584c1df0b4c9e84 (diff)
parentda0287705ea583f04c3fadeafed4882be838f035 (diff)
downloadmeta-freescale-master.tar.gz
Merge pull request #2907 from matheusmbar/add_imx952HEADmaster
Add i.MX 952 SoC and its first machines
-rw-r--r--classes/use-imx-security-controller-firmware.bbclass1
-rw-r--r--conf/machine/imx952-15x15-lpddr5-frdm.conf65
-rw-r--r--conf/machine/imx952-19x19-lpddr5-evk.conf93
-rw-r--r--conf/machine/include/imx-base.inc15
-rw-r--r--conf/machine/include/imx952-evk.inc75
-rw-r--r--dynamic-layers/arm-toolchain/recipes-bsp/imx-oei/imx-oei.inc2
-rw-r--r--dynamic-layers/arm-toolchain/recipes-bsp/imx-system-manager/imx-system-manager.inc2
-rw-r--r--oelint.constants.json1
-rw-r--r--recipes-bsp/imx-mkimage/imx-boot_1.0.bb20
-rw-r--r--recipes-security/optee-imx/optee-os-common-fslc-imx.inc1
10 files changed, 270 insertions, 5 deletions
diff --git a/classes/use-imx-security-controller-firmware.bbclass b/classes/use-imx-security-controller-firmware.bbclass
index c5facea07..f887a3a02 100644
--- a/classes/use-imx-security-controller-firmware.bbclass
+++ b/classes/use-imx-security-controller-firmware.bbclass
@@ -25,6 +25,7 @@ SECO_FIRMWARE_NAME:mx8ulp-generic-bsp ?= "mx8ulp${IMX_SOC_REV_LOWER}-ahab-contai
25SECO_FIRMWARE_NAME:mx91-generic-bsp ?= "mx91${IMX_SOC_REV_LOWER}-ahab-container.img" 25SECO_FIRMWARE_NAME:mx91-generic-bsp ?= "mx91${IMX_SOC_REV_LOWER}-ahab-container.img"
26SECO_FIRMWARE_NAME:mx93-generic-bsp ?= "mx93${IMX_SOC_REV_LOWER}-ahab-container.img" 26SECO_FIRMWARE_NAME:mx93-generic-bsp ?= "mx93${IMX_SOC_REV_LOWER}-ahab-container.img"
27SECO_FIRMWARE_NAME:mx95-generic-bsp ?= "mx95${IMX_SOC_REV_LOWER}-ahab-container.img" 27SECO_FIRMWARE_NAME:mx95-generic-bsp ?= "mx95${IMX_SOC_REV_LOWER}-ahab-container.img"
28SECO_FIRMWARE_NAME:mx952-generic-bsp ?= "mx952${IMX_SOC_REV_LOWER}-ahab-container.img"
28 29
29# Parse-time guard: SoCs that require a SECO firmware must fail parsing early 30# Parse-time guard: SoCs that require a SECO firmware must fail parsing early
30# (SkipRecipe) when SECO_FIRMWARE_NAME is undefined, which needs anonymous python. 31# (SkipRecipe) when SECO_FIRMWARE_NAME is undefined, which needs anonymous python.
diff --git a/conf/machine/imx952-15x15-lpddr5-frdm.conf b/conf/machine/imx952-15x15-lpddr5-frdm.conf
new file mode 100644
index 000000000..a406e5207
--- /dev/null
+++ b/conf/machine/imx952-15x15-lpddr5-frdm.conf
@@ -0,0 +1,65 @@
1#@TYPE: Machine
2#@NAME: NXP i.MX 952 15x15 FRDM with LPDDR5
3#@SOC: i.MX952
4#@DESCRIPTION: Machine configuration for NXP i.MX 952 FRDM with LPDDR5
5#@MAINTAINER: Flora Hu <flora.hu@nxp.com>
6
7require conf/machine/include/imx952-evk.inc
8
9KERNEL_DEVICETREE_BASENAME = "imx952-frdm"
10
11MACHINE_FEATURES:append:use-nxp-bsp = " nxpiw612-sdio"
12
13KERNEL_DEVICETREE:append:use-nxp-bsp = " \
14 freescale/imx952-jailhouse-inmate.dtb \
15 freescale/${KERNEL_DEVICETREE_BASENAME}-ap1302-csi0-2lanes.dtb \
16 freescale/${KERNEL_DEVICETREE_BASENAME}-ap1302-csi1-2lanes.dtb \
17 freescale/${KERNEL_DEVICETREE_BASENAME}-aud-hat.dtb \
18 freescale/${KERNEL_DEVICETREE_BASENAME}-aud-hat.dtbo \
19 freescale/${KERNEL_DEVICETREE_BASENAME}-boe-wxga-lvds-panel.dtb \
20 freescale/${KERNEL_DEVICETREE_BASENAME}-boe-wxga-lvds-panel.dtbo \
21 freescale/${KERNEL_DEVICETREE_BASENAME}-dual-ap1302.dtb \
22 freescale/${KERNEL_DEVICETREE_BASENAME}-os08a20-csi0-2lanes.dtb \
23 freescale/${KERNEL_DEVICETREE_BASENAME}-os08a20-csi0-2lanes.dtbo \
24 freescale/${KERNEL_DEVICETREE_BASENAME}-os08a20-csi1-2lanes.dtb \
25 freescale/${KERNEL_DEVICETREE_BASENAME}-os08a20-csi1-2lanes.dtbo \
26 freescale/${KERNEL_DEVICETREE_BASENAME}-os08a20-dual.dtb \
27 freescale/${KERNEL_DEVICETREE_BASENAME}-pcie-ep.dtb \
28 freescale/${KERNEL_DEVICETREE_BASENAME}-root.dtb \
29 freescale/${KERNEL_DEVICETREE_BASENAME}-v2x-she0.dtb \
30 freescale/${KERNEL_DEVICETREE_BASENAME}-waveshare-7inch-c-panel.dtb \
31 freescale/${KERNEL_DEVICETREE_BASENAME}-waveshare-7inch-c-panel.dtbo \
32"
33
34UBOOT_CONFIG_BASENAME = "imx952_frdm"
35
36IMXBOOT_TARGETS_BASENAME = "flash"
37
38OEI_BOARD = "mx952lp5-15-frdm"
39DDR_TYPE = "lpddr5"
40OEI_DDR_CONFIG = "MIMX952_LPDDR5_FRDM_15X15_4266MTS_FW2024.09-SP2_timing"
41OEI_DDR_CONFIG_ECC = "MIMX952_LPDDR5_FRDM_15X15_4266MTS_FW2024.09-SP2_ECC_enabled_timing"
42
43# Multiple system manager configs by IMXBOOT_VARIANT
44SYSTEM_MANAGER_CONFIG = \
45 "${@bb.utils.contains('IMXBOOT_VARIANT', 'alt', 'mx952alt', \
46 bb.utils.contains('IMXBOOT_VARIANT', 'jailhouse', 'mx952evkjailhouse', \
47 bb.utils.contains('IMXBOOT_VARIANT', 'netc', 'mx952evknetc', \
48 bb.utils.contains('IMXBOOT_VARIANT', 'rpmsg', 'mx952frdmrpmsg', \
49 'mx952evk', d), d), d), d)}"
50
51M4_DEFAULT_IMAGE_MX952 = "imx952-15x15-frdm_m7_TCM_power_mode_switch.bin"
52
53DDR_FIRMWARE_NAME = " \
54 lpddr5_dmem_v202409.bin \
55 lpddr5_dmem_qb_v202409.bin \
56 lpddr5_imem_v202409.bin \
57 lpddr5_imem_qb_v202409.bin \
58"
59
60IMAGE_BOOT_FILES:append = " \
61 mcore-demos/imx952-15x15-frdm_m7_TCM_hello_world.bin \
62 mcore-demos/imx952-15x15-frdm_m7_TCM_power_mode_switch.bin \
63 mcore-demos/imx952-15x15-frdm_m7_TCM_rpmsg_lite_pingpong_rtos_linux_remote.bin \
64 mcore-demos/imx952-15x15-frdm_m7_TCM_rpmsg_lite_str_echo_rtos.bin \
65"
diff --git a/conf/machine/imx952-19x19-lpddr5-evk.conf b/conf/machine/imx952-19x19-lpddr5-evk.conf
new file mode 100644
index 000000000..391f4a23e
--- /dev/null
+++ b/conf/machine/imx952-19x19-lpddr5-evk.conf
@@ -0,0 +1,93 @@
1#@TYPE: Machine
2#@NAME: NXP i.MX 952 19x19 Evaluation Kit with LPDDR5
3#@SOC: i.MX952
4#@DESCRIPTION: Machine configuration for NXP i.MX 952 19x19 EVK with LPDDR5
5#@MAINTAINER: Jun Zhu <junzhu@nxp.com>
6
7require conf/machine/include/imx952-evk.inc
8
9KERNEL_DEVICETREE_BASENAME = "imx952-evk"
10MACHINE_FEATURES:append:use-nxp-bsp = " nxpaw693-pcie"
11
12KERNEL_DEVICETREE:append:use-nxp-bsp = " \
13 freescale/imx952-jailhouse-inmate.dtb \
14 freescale/${KERNEL_DEVICETREE_BASENAME}-adv7535.dtb \
15 freescale/${KERNEL_DEVICETREE_BASENAME}-adv7535.dtbo \
16 freescale/${KERNEL_DEVICETREE_BASENAME}-adv7535-ap1302-csi0-2lanes.dtb \
17 freescale/${KERNEL_DEVICETREE_BASENAME}-adv7535-ap1302-csi0-4lanes.dtb \
18 freescale/${KERNEL_DEVICETREE_BASENAME}-ap1302-csi0-2lanes.dtb \
19 freescale/${KERNEL_DEVICETREE_BASENAME}-ap1302-csi0-2lanes.dtbo \
20 freescale/${KERNEL_DEVICETREE_BASENAME}-ap1302-csi0-4lanes.dtb \
21 freescale/${KERNEL_DEVICETREE_BASENAME}-ap1302-csi0-4lanes.dtbo \
22 freescale/${KERNEL_DEVICETREE_BASENAME}-audmix.dtb \
23 freescale/${KERNEL_DEVICETREE_BASENAME}-crrm.dtb \
24 freescale/${KERNEL_DEVICETREE_BASENAME}-cs42888.dtb \
25 freescale/${KERNEL_DEVICETREE_BASENAME}-dsi-serdes.dtb \
26 freescale/${KERNEL_DEVICETREE_BASENAME}-i3c.dtb \
27 freescale/${KERNEL_DEVICETREE_BASENAME}-it6263-lvds0.dtb \
28 freescale/${KERNEL_DEVICETREE_BASENAME}-it6263-lvds0.dtbo \
29 freescale/${KERNEL_DEVICETREE_BASENAME}-it6263-lvds0-ox03c10-csi0.dtb \
30 freescale/${KERNEL_DEVICETREE_BASENAME}-it6263-lvds0-os08a20-csi0-2lanes.dtb \
31 freescale/${KERNEL_DEVICETREE_BASENAME}-it6263-lvds0-os08a20-csi0-4lanes.dtb \
32 freescale/${KERNEL_DEVICETREE_BASENAME}-it6263-lvds0-ox05b1s-csi0-4lanes.dtb \
33 freescale/${KERNEL_DEVICETREE_BASENAME}-it6263-lvds0-os08a20-csi1-2lanes.dtb \
34 freescale/${KERNEL_DEVICETREE_BASENAME}-it6263-lvds0-os08a20-dual.dtb \
35 freescale/${KERNEL_DEVICETREE_BASENAME}-it6263-lvds1.dtb \
36 freescale/${KERNEL_DEVICETREE_BASENAME}-it6263-lvds1.dtbo \
37 freescale/${KERNEL_DEVICETREE_BASENAME}-it6263-lvds-two-disp.dtb \
38 freescale/${KERNEL_DEVICETREE_BASENAME}-it6263-lvds-dual.dtb \
39 freescale/${KERNEL_DEVICETREE_BASENAME}-it6263-lvds-dual.dtbo \
40 freescale/${KERNEL_DEVICETREE_BASENAME}-jdi-wuxga-lvds-panel.dtb \
41 freescale/${KERNEL_DEVICETREE_BASENAME}-jdi-wuxga-lvds-panel.dtbo \
42 freescale/${KERNEL_DEVICETREE_BASENAME}-kd123c02.dtb \
43 freescale/${KERNEL_DEVICETREE_BASENAME}-kd123c02.dtbo \
44 freescale/${KERNEL_DEVICETREE_BASENAME}-lt9611uxc.dtb \
45 freescale/${KERNEL_DEVICETREE_BASENAME}-lt9611uxc.dtbo \
46 freescale/${KERNEL_DEVICETREE_BASENAME}-mqs.dtb \
47 freescale/${KERNEL_DEVICETREE_BASENAME}-mqs.dtbo \
48 freescale/${KERNEL_DEVICETREE_BASENAME}-netc-rpmsg.dtb \
49 freescale/${KERNEL_DEVICETREE_BASENAME}-os08a20-csi0-2lanes.dtb \
50 freescale/${KERNEL_DEVICETREE_BASENAME}-os08a20-csi0-2lanes.dtbo \
51 freescale/${KERNEL_DEVICETREE_BASENAME}-os08a20-csi0-4lanes.dtb \
52 freescale/${KERNEL_DEVICETREE_BASENAME}-os08a20-csi0-4lanes.dtbo \
53 freescale/${KERNEL_DEVICETREE_BASENAME}-os08a20-csi1-2lanes.dtbo \
54 freescale/${KERNEL_DEVICETREE_BASENAME}-ox03c10-csi0.dtb \
55 freescale/${KERNEL_DEVICETREE_BASENAME}-ox03c10-csi0.dtbo \
56 freescale/${KERNEL_DEVICETREE_BASENAME}-ox05b1s-csi0-4lanes.dtb \
57 freescale/${KERNEL_DEVICETREE_BASENAME}-ox05b1s-csi0-4lanes.dtbo \
58 freescale/${KERNEL_DEVICETREE_BASENAME}-pcie-ep.dtb \
59 freescale/${KERNEL_DEVICETREE_BASENAME}-pcie-keym.dtb \
60 freescale/${KERNEL_DEVICETREE_BASENAME}-pcie-keym.dtbo \
61 freescale/${KERNEL_DEVICETREE_BASENAME}-rm692c9.dtb \
62 freescale/${KERNEL_DEVICETREE_BASENAME}-rm692c9.dtbo \
63 freescale/${KERNEL_DEVICETREE_BASENAME}-root.dtb \
64 freescale/${KERNEL_DEVICETREE_BASENAME}-rpmsg.dtb \
65 freescale/${KERNEL_DEVICETREE_BASENAME}-sgmii.dtb \
66 freescale/${KERNEL_DEVICETREE_BASENAME}-tja1104-rgmii.dtb \
67 freescale/${KERNEL_DEVICETREE_BASENAME}-tja1104-rmii.dtb \
68 freescale/${KERNEL_DEVICETREE_BASENAME}-v2x-she0.dtb \
69"
70
71UBOOT_CONFIG_BASENAME = "imx952_evk"
72
73IMXBOOT_TARGETS_BASENAME = "flash"
74
75OEI_BOARD = "mx952lp5-19"
76DDR_TYPE = "lpddr5"
77DDR_FIRMWARE_NAME = " \
78 lpddr5_dmem_v202409.bin \
79 lpddr5_dmem_qb_v202409.bin \
80 lpddr5_imem_v202409.bin \
81 lpddr5_imem_qb_v202409.bin \
82"
83OEI_DDR_CONFIG = "MIMX952_LPDDR5_EVK_19X19_6000MTS_FW2024.09-SP2_timing"
84OEI_DDR_CONFIG_ECC = "MIMX952_LPDDR5_EVK_19X19_6000MTS_FW2024.09-SP2_ECC_enabled_timing"
85
86IMAGE_BOOT_FILES:append:imx-nxp-bsp = " \
87 mcore-demos/imx952evk_m7_TCM_hello_world.bin \
88 mcore-demos/imx952evk_m7_TCM_netc_share.bin \
89 mcore-demos/imx952evk_m7_TCM_power_mode_switch.bin \
90 mcore-demos/imx952evk_m7_TCM_rpmsg_lite_pingpong_rtos_linux_remote.bin \
91 mcore-demos/imx952evk_m7_TCM_rpmsg_lite_str_echo_rtos.bin \
92 mcore-demos/imx952evk_m7_TCM_sai_low_power_audio.bin \
93"
diff --git a/conf/machine/include/imx-base.inc b/conf/machine/include/imx-base.inc
index be7a32315..5634d3912 100644
--- a/conf/machine/include/imx-base.inc
+++ b/conf/machine/include/imx-base.inc
@@ -192,6 +192,7 @@ IMX_SOC_REV:mx8ulp-generic-bsp ??= \
192IMX_SOC_REV:mx93-generic-bsp ??= "A1" 192IMX_SOC_REV:mx93-generic-bsp ??= "A1"
193IMX_SOC_REV:mx943-generic-bsp ??= "A1" 193IMX_SOC_REV:mx943-generic-bsp ??= "A1"
194IMX_SOC_REV:mx95-generic-bsp ??= "B0" 194IMX_SOC_REV:mx95-generic-bsp ??= "B0"
195IMX_SOC_REV:mx952-generic-bsp ??= "A1"
195 196
196IMX_SOC_REV_LOWER = "${@d.getVar('IMX_SOC_REV').lower()}" 197IMX_SOC_REV_LOWER = "${@d.getVar('IMX_SOC_REV').lower()}"
197IMX_SOC_REV_UPPER = "${@d.getVar('IMX_SOC_REV').upper()}" 198IMX_SOC_REV_UPPER = "${@d.getVar('IMX_SOC_REV').upper()}"
@@ -235,6 +236,7 @@ MACHINEOVERRIDES_EXTENDER:mx91:use-nxp-bsp = "imx-generic-bsp:imx-nxp-bsp:imxdr
235MACHINEOVERRIDES_EXTENDER:mx93:use-nxp-bsp = "imx-generic-bsp:imx-nxp-bsp:imxdrm:imxpxp:mx9-generic-bsp:mx9-nxp-bsp:mx93-generic-bsp:mx93-nxp-bsp" 236MACHINEOVERRIDES_EXTENDER:mx93:use-nxp-bsp = "imx-generic-bsp:imx-nxp-bsp:imxdrm:imxpxp:mx9-generic-bsp:mx9-nxp-bsp:mx93-generic-bsp:mx93-nxp-bsp"
236MACHINEOVERRIDES_EXTENDER:mx943:use-nxp-bsp = "imx-generic-bsp:imx-nxp-bsp:imxdrm:imxpxp:mx9-generic-bsp:mx9-nxp-bsp:mx94-generic-bsp:mx94-nxp-bsp:mx943-generic-bsp:mx943-nxp-bsp" 237MACHINEOVERRIDES_EXTENDER:mx943:use-nxp-bsp = "imx-generic-bsp:imx-nxp-bsp:imxdrm:imxpxp:mx9-generic-bsp:mx9-nxp-bsp:mx94-generic-bsp:mx94-nxp-bsp:mx943-generic-bsp:mx943-nxp-bsp"
237MACHINEOVERRIDES_EXTENDER:mx95:use-nxp-bsp = "imx-generic-bsp:imx-nxp-bsp:imxdrm:imxdpu:imxgpu:imxmali:imxgpu2d:imxgpu3d:mx9-generic-bsp:mx9-nxp-bsp:mx95-generic-bsp:mx95-nxp-bsp" 238MACHINEOVERRIDES_EXTENDER:mx95:use-nxp-bsp = "imx-generic-bsp:imx-nxp-bsp:imxdrm:imxdpu:imxgpu:imxmali:imxgpu2d:imxgpu3d:mx9-generic-bsp:mx9-nxp-bsp:mx95-generic-bsp:mx95-nxp-bsp"
239MACHINEOVERRIDES_EXTENDER:mx952:use-nxp-bsp = "imx-generic-bsp:imx-nxp-bsp:imxdrm:imxdpu:imxgpu:imxmali:imxgpu2d:imxgpu3d:mx9-generic-bsp:mx9-nxp-bsp:mx95-generic-bsp:mx95-nxp-bsp:mx952-generic-bsp:mx952-nxp-bsp"
238 240
239####### 241#######
240### Mainline BSP specific overrides 242### Mainline BSP specific overrides
@@ -315,6 +317,7 @@ MACHINEOVERRIDES_EXTENDER_FILTER_OUT = " \
315 mx93 \ 317 mx93 \
316 mx943 \ 318 mx943 \
317 mx95 \ 319 mx95 \
320 mx952 \
318" 321"
319 322
320MACHINEOVERRIDES_FILTERED_OUT_QA_ERROR = "%s overrides cannot be used and need conversion to use the new BSP-specific overrides. Check 'meta-freescale/scripts/convert-bsp-specific-overrides'." 323MACHINEOVERRIDES_FILTERED_OUT_QA_ERROR = "%s overrides cannot be used and need conversion to use the new BSP-specific overrides. Check 'meta-freescale/scripts/convert-bsp-specific-overrides'."
@@ -346,6 +349,7 @@ MACHINE_SOCARCH_SUFFIX:mx91-nxp-bsp = "-mx91"
346MACHINE_SOCARCH_SUFFIX:mx93-nxp-bsp = "-mx93" 349MACHINE_SOCARCH_SUFFIX:mx93-nxp-bsp = "-mx93"
347MACHINE_SOCARCH_SUFFIX:mx943-nxp-bsp = "-mx943" 350MACHINE_SOCARCH_SUFFIX:mx943-nxp-bsp = "-mx943"
348MACHINE_SOCARCH_SUFFIX:mx95-nxp-bsp = "-mx95" 351MACHINE_SOCARCH_SUFFIX:mx95-nxp-bsp = "-mx95"
352MACHINE_SOCARCH_SUFFIX:mx952-nxp-bsp = "-mx952"
349 353
350# For Mainline we use a single SoC suffix as we don't have different build options 354# For Mainline we use a single SoC suffix as we don't have different build options
351MACHINE_SOCARCH_SUFFIX:imx-mainline-bsp = "-imx" 355MACHINE_SOCARCH_SUFFIX:imx-mainline-bsp = "-imx"
@@ -458,9 +462,11 @@ IMX_EXTRA_FIRMWARE:mx8ulp-generic-bsp = "firmware-upower firmware-ele-imx"
458IMX_EXTRA_FIRMWARE:mx91-generic-bsp = "imx-boot-firmware-files firmware-ele-imx" 462IMX_EXTRA_FIRMWARE:mx91-generic-bsp = "imx-boot-firmware-files firmware-ele-imx"
459IMX_EXTRA_FIRMWARE:mx93-generic-bsp = "imx-boot-firmware-files firmware-ele-imx" 463IMX_EXTRA_FIRMWARE:mx93-generic-bsp = "imx-boot-firmware-files firmware-ele-imx"
460IMX_EXTRA_FIRMWARE:mx943-nxp-bsp = "imx-boot-firmware-files firmware-ele-imx virtual/imx-system-manager virtual/imx-oei" 464IMX_EXTRA_FIRMWARE:mx943-nxp-bsp = "imx-boot-firmware-files firmware-ele-imx virtual/imx-system-manager virtual/imx-oei"
465IMX_EXTRA_FIRMWARE:mx95-generic-bsp = "imx-boot-firmware-files firmware-ele-imx virtual/imx-system-manager virtual/imx-oei"
466IMX_EXTRA_FIRMWARE:mx952-generic-bsp = "imx-boot-firmware-files firmware-ele-imx virtual/imx-system-manager virtual/imx-oei"
467
461PREFERRED_PROVIDER_virtual/imx-system-manager ??= "imx-system-manager" 468PREFERRED_PROVIDER_virtual/imx-system-manager ??= "imx-system-manager"
462PREFERRED_PROVIDER_virtual/imx-oei ??= "imx-oei" 469PREFERRED_PROVIDER_virtual/imx-oei ??= "imx-oei"
463IMX_EXTRA_FIRMWARE:mx95-generic-bsp = "imx-boot-firmware-files firmware-ele-imx virtual/imx-system-manager virtual/imx-oei"
464 470
465# The System Manager firmware name selects the binary imx-boot takes from the 471# The System Manager firmware name selects the binary imx-boot takes from the
466# deploy folder; imx-system-manager deploys it as 472# deploy folder; imx-system-manager deploys it as
@@ -468,6 +474,7 @@ IMX_EXTRA_FIRMWARE:mx95-generic-bsp = "imx-boot-firmware-files firmware-ele-im
468SYSTEM_MANAGER_FIRMWARE_NAME_DEFAULT = "" 474SYSTEM_MANAGER_FIRMWARE_NAME_DEFAULT = ""
469SYSTEM_MANAGER_FIRMWARE_NAME_DEFAULT:mx943-generic-bsp = "${SYSTEM_MANAGER_FIRMWARE_BASENAME}-${SYSTEM_MANAGER_CONFIG}" 475SYSTEM_MANAGER_FIRMWARE_NAME_DEFAULT:mx943-generic-bsp = "${SYSTEM_MANAGER_FIRMWARE_BASENAME}-${SYSTEM_MANAGER_CONFIG}"
470SYSTEM_MANAGER_FIRMWARE_NAME_DEFAULT:mx95-generic-bsp = "${SYSTEM_MANAGER_FIRMWARE_BASENAME}-${SYSTEM_MANAGER_CONFIG}" 476SYSTEM_MANAGER_FIRMWARE_NAME_DEFAULT:mx95-generic-bsp = "${SYSTEM_MANAGER_FIRMWARE_BASENAME}-${SYSTEM_MANAGER_CONFIG}"
477SYSTEM_MANAGER_FIRMWARE_NAME_DEFAULT:mx952-generic-bsp = "${SYSTEM_MANAGER_FIRMWARE_BASENAME}-${SYSTEM_MANAGER_CONFIG}"
471SYSTEM_MANAGER_FIRMWARE_NAME ?= "${SYSTEM_MANAGER_FIRMWARE_NAME_DEFAULT}" 478SYSTEM_MANAGER_FIRMWARE_NAME ?= "${SYSTEM_MANAGER_FIRMWARE_NAME_DEFAULT}"
472 479
473# Firmware 480# Firmware
@@ -489,8 +496,9 @@ MACHINE_FIRMWARE:append:mx8mp-generic-bsp = " linux-firmware-imx-sdma-imx7d f
489MACHINE_FIRMWARE:append:mx8mq-generic-bsp = " linux-firmware-imx-sdma-imx7d" 496MACHINE_FIRMWARE:append:mx8mq-generic-bsp = " linux-firmware-imx-sdma-imx7d"
490MACHINE_FIRMWARE:append:mx8qxp-generic-bsp = " linux-firmware-imx-sdma-imx7d firmware-imx-vpu-amphion" 497MACHINE_FIRMWARE:append:mx8qxp-generic-bsp = " linux-firmware-imx-sdma-imx7d firmware-imx-vpu-amphion"
491MACHINE_FIRMWARE:append:mx8dx-generic-bsp = " linux-firmware-imx-sdma-imx7d firmware-imx-vpu-amphion" 498MACHINE_FIRMWARE:append:mx8dx-generic-bsp = " linux-firmware-imx-sdma-imx7d firmware-imx-vpu-amphion"
492MACHINE_FIRMWARE:append:mx95-generic-bsp = " firmware-imx-vpu-wave" 499MACHINE_FIRMWARE:append:mx95-generic-bsp = " firmware-imx-vpu-wave"
493MACHINE_FIRMWARE:append:mx95-mainline-bsp = " linux-firmware-mali-csffw-arch1012" 500MACHINE_FIRMWARE:append:mx95-mainline-bsp = " linux-firmware-mali-csffw-arch1012"
501MACHINE_FIRMWARE:append:mx952-nxp-bsp = " firmware-imx-vpu-coda980 firmware-imx-vpu-wave511 firmware-imx-ld"
494 502
495MACHINE_EXTRA_RRECOMMENDS += "${MACHINE_FIRMWARE}" 503MACHINE_EXTRA_RRECOMMENDS += "${MACHINE_FIRMWARE}"
496 504
@@ -548,8 +556,9 @@ MACHINE_EXTRA_RRECOMMENDS += " \
548# to a single rootfs. 556# to a single rootfs.
549SECOEXT_FIRMWARE_NAME ?= "" 557SECOEXT_FIRMWARE_NAME ?= ""
550SECOEXT_FIRMWARE_NAME:mx8ulp-generic-bsp ?= "mx8ulp${IMX_SOC_REV_LOWER}ext-ahab-container.img" 558SECOEXT_FIRMWARE_NAME:mx8ulp-generic-bsp ?= "mx8ulp${IMX_SOC_REV_LOWER}ext-ahab-container.img"
551SECOEXT_FIRMWARE_NAME:mx95-generic-bsp ?= "mx95a0runtime-ahab-container.img mx95b0runtime-ahab-container.img"
552SECOEXT_FIRMWARE_NAME:mx943-generic-bsp ?= "mx94${IMX_SOC_REV_LOWER}runtime-ahab-container.img" 559SECOEXT_FIRMWARE_NAME:mx943-generic-bsp ?= "mx94${IMX_SOC_REV_LOWER}runtime-ahab-container.img"
560SECOEXT_FIRMWARE_NAME:mx95-generic-bsp ?= "mx95a0runtime-ahab-container.img mx95b0runtime-ahab-container.img"
561SECOEXT_FIRMWARE_NAME:mx952-generic-bsp ?= "mx952a0runtime-ahab-container.img mx952a1runtime-ahab-container.img"
553 562
554# GStreamer 1.0 plugins 563# GStreamer 1.0 plugins
555MACHINE_GSTREAMER_1_0_PLUGIN ?= "" 564MACHINE_GSTREAMER_1_0_PLUGIN ?= ""
diff --git a/conf/machine/include/imx952-evk.inc b/conf/machine/include/imx952-evk.inc
new file mode 100644
index 000000000..d978c6065
--- /dev/null
+++ b/conf/machine/include/imx952-evk.inc
@@ -0,0 +1,75 @@
1MACHINEOVERRIDES =. "mx952:"
2
3require conf/machine/include/imx-base.inc
4require conf/machine/include/arm/armv8-2a/tune-cortexa55.inc
5
6MACHINE_FEATURES += "pci wifi bluetooth"
7MACHINE_FEATURES:append:use-nxp-bsp = " crrm jailhouse optee xen"
8
9KERNEL_DEVICETREE = " \
10 freescale/${KERNEL_DEVICETREE_BASENAME}.dtb \
11"
12UBOOT_DTB_NAME = "${KERNEL_DEVICETREE_BASENAME}.dtb"
13
14IMX_DEFAULT_BOOTLOADER:use-nxp-bsp = "u-boot-imx"
15IMX_DEFAULT_BOOTLOADER:use-mainline-bsp = "u-boot-fslc"
16
17LOADADDR = ""
18UBOOT_SUFFIX = "bin"
19UBOOT_MAKE_TARGET = ""
20
21SPL_BINARY = "spl/u-boot-spl.bin"
22
23UBOOT_CONFIG ??= "${@bb.utils.contains('COMBINED_FEATURES', 'crrm', 'crrm', 'sd', d)}"
24UBOOT_CONFIG[sd] = "${UBOOT_CONFIG_BASENAME}_defconfig"
25UBOOT_CONFIG[sd-ecc] = "${UBOOT_CONFIG_BASENAME}_defconfig"
26UBOOT_CONFIG[crrm] = "${UBOOT_CONFIG_BASENAME}_xspi_crrm_defconfig"
27UBOOT_CONFIG[xspi] = "${UBOOT_CONFIG_BASENAME}_xspi_defconfig"
28
29ATF_PLATFORM = "imx952"
30
31OEI_CORE = "m33"
32OEI_SOC = "mx952"
33OEI_BOARD ?= "mx95lp5"
34
35DDR_TYPE ?= "lpddr5"
36
37IMXBOOT_VARIANTS = "alt jailhouse netc rpmsg"
38
39# Multiple system manager configs by IMXBOOT_VARIANT
40SYSTEM_MANAGER_CONFIG = \
41 "${@bb.utils.contains('IMXBOOT_VARIANT', 'alt', 'mx952alt', \
42 bb.utils.contains('IMXBOOT_VARIANT', 'jailhouse', 'mx952evkjailhouse', \
43 bb.utils.contains('IMXBOOT_VARIANT', 'netc', 'mx952evknetc', \
44 bb.utils.contains('IMXBOOT_VARIANT', 'rpmsg', 'mx952evkrpmsg', \
45 'mx952evk', d), d), d), d)}"
46
47# imx-boot (flash.bin) targets based on UBOOT_CONFIG and IMXBOOT_VARIANT
48IMXBOOT_TARGETS_SD = " \
49 ${@bb.utils.contains('IMXBOOT_VARIANT', 'alt', '${IMXBOOT_TARGETS_BASENAME}_all', \
50 bb.utils.contains('IMXBOOT_VARIANT', 'jailhouse', '${IMXBOOT_TARGETS_BASENAME}_jailhouse', \
51 bb.utils.contains('IMXBOOT_VARIANT', 'netc', '${IMXBOOT_TARGETS_BASENAME}_all', \
52 bb.utils.contains('IMXBOOT_VARIANT', 'rpmsg', '${IMXBOOT_TARGETS_BASENAME}_lpboot_sm_a55', \
53 '${IMXBOOT_TARGETS_BASENAME}_all ${IMXBOOT_TARGETS_BASENAME}_a55', d), d), d), d)} \
54"
55IMXBOOT_TARGETS = " \
56 ${@bb.utils.contains('UBOOT_CONFIG', 'crrm', '${IMXBOOT_TARGETS_BASENAME}_a55_xspi_crrm', \
57 bb.utils.contains('UBOOT_CONFIG', 'sd-ecc', '${IMXBOOT_TARGETS_BASENAME}_all', \
58 bb.utils.contains('UBOOT_CONFIG', 'xspi', '${IMXBOOT_TARGETS_BASENAME}_a55_xspi', \
59 '${IMXBOOT_TARGETS_SD}', d), d), d)} \
60"
61
62M4_DEFAULT_IMAGE_MX952 = "${@bb.utils.contains('IMXBOOT_VARIANT', 'netc', 'imx952evk_m7_TCM_netc_share.bin', \
63 'imx952evk_m7_TCM_power_mode_switch.bin', d)}"
64
65IMX_BOOT_SOC_TARGET = "iMX952"
66IMX_BOOT_SEEK = "32"
67
68# We have to disable SERIAL_CONSOLE due to auto-serial-console
69SERIAL_CONSOLES = "115200;ttyLP0"
70
71IMX_DEFAULT_BSP = "nxp"
72
73IMAGE_BOOT_FILES:append:imx-nxp-bsp = " \
74 ${@bb.utils.contains('COMBINED_FEATURES', 'xen', 'xen', '', d)} \
75"
diff --git a/dynamic-layers/arm-toolchain/recipes-bsp/imx-oei/imx-oei.inc b/dynamic-layers/arm-toolchain/recipes-bsp/imx-oei/imx-oei.inc
index 1fc8a090e..23828b55e 100644
--- a/dynamic-layers/arm-toolchain/recipes-bsp/imx-oei/imx-oei.inc
+++ b/dynamic-layers/arm-toolchain/recipes-bsp/imx-oei/imx-oei.inc
@@ -67,4 +67,4 @@ do_deploy() {
67FILES:${PN} = "/firmware" 67FILES:${PN} = "/firmware"
68SYSROOT_DIRS += "/firmware" 68SYSROOT_DIRS += "/firmware"
69 69
70COMPATIBLE_MACHINE = "(mx95-generic-bsp|mx943-generic-bsp)" 70COMPATIBLE_MACHINE = "(mx95-generic-bsp|mx943-generic-bsp|mx952-generic-bsp)"
diff --git a/dynamic-layers/arm-toolchain/recipes-bsp/imx-system-manager/imx-system-manager.inc b/dynamic-layers/arm-toolchain/recipes-bsp/imx-system-manager/imx-system-manager.inc
index 2a736de7b..f3bc96a52 100644
--- a/dynamic-layers/arm-toolchain/recipes-bsp/imx-system-manager/imx-system-manager.inc
+++ b/dynamic-layers/arm-toolchain/recipes-bsp/imx-system-manager/imx-system-manager.inc
@@ -39,4 +39,4 @@ do_deploy() {
39 ${DEPLOYDIR}/${SYSTEM_MANAGER_FIRMWARE_BASENAME}-${SYSTEM_MANAGER_CONFIG}.bin 39 ${DEPLOYDIR}/${SYSTEM_MANAGER_FIRMWARE_BASENAME}-${SYSTEM_MANAGER_CONFIG}.bin
40} 40}
41 41
42COMPATIBLE_MACHINE = "(mx95-generic-bsp|mx943-generic-bsp)" 42COMPATIBLE_MACHINE = "(mx95-generic-bsp|mx943-generic-bsp|mx952-generic-bsp)"
diff --git a/oelint.constants.json b/oelint.constants.json
index d3d67fbe1..02b5b39f1 100644
--- a/oelint.constants.json
+++ b/oelint.constants.json
@@ -285,6 +285,7 @@
285 "mx94-nxp-bsp", 285 "mx94-nxp-bsp",
286 "mx95-generic-bsp", 286 "mx95-generic-bsp",
287 "mx95-nxp-bsp", 287 "mx95-nxp-bsp",
288 "mx952-generic-bsp",
288 "mx952-nxp-bsp", 289 "mx952-nxp-bsp",
289 "mxs-generic-bsp", 290 "mxs-generic-bsp",
290 "p1020", 291 "p1020",
diff --git a/recipes-bsp/imx-mkimage/imx-boot_1.0.bb b/recipes-bsp/imx-mkimage/imx-boot_1.0.bb
index dad78748b..da99f3f3c 100644
--- a/recipes-bsp/imx-mkimage/imx-boot_1.0.bb
+++ b/recipes-bsp/imx-mkimage/imx-boot_1.0.bb
@@ -73,6 +73,7 @@ BOOT_STAGING:mx91-generic-bsp = "${S}/iMX91"
73BOOT_STAGING:mx93-generic-bsp = "${S}/iMX93" 73BOOT_STAGING:mx93-generic-bsp = "${S}/iMX93"
74BOOT_STAGING:mx943-generic-bsp = "${S}/iMX94" 74BOOT_STAGING:mx943-generic-bsp = "${S}/iMX94"
75BOOT_STAGING:mx95-generic-bsp = "${S}/iMX95" 75BOOT_STAGING:mx95-generic-bsp = "${S}/iMX95"
76BOOT_STAGING:mx952-generic-bsp = "${S}/iMX952"
76 77
77SOC_FAMILY = "INVALID" 78SOC_FAMILY = "INVALID"
78SOC_FAMILY:mx8-generic-bsp = "mx8" 79SOC_FAMILY:mx8-generic-bsp = "mx8"
@@ -83,6 +84,7 @@ SOC_FAMILY:mx91-generic-bsp = "mx91"
83SOC_FAMILY:mx93-generic-bsp = "mx93" 84SOC_FAMILY:mx93-generic-bsp = "mx93"
84SOC_FAMILY:mx943-generic-bsp = "mx943" 85SOC_FAMILY:mx943-generic-bsp = "mx943"
85SOC_FAMILY:mx95-generic-bsp = "mx95" 86SOC_FAMILY:mx95-generic-bsp = "mx95"
87SOC_FAMILY:mx952-generic-bsp = "mx952"
86 88
87REV_OPTION ?= "REV=${IMX_SOC_REV_UPPER}" 89REV_OPTION ?= "REV=${IMX_SOC_REV_UPPER}"
88 90
@@ -107,6 +109,10 @@ MKIMAGE_EXTRA_ARGS:imx95-19x19-verdin ?= "\
107MKIMAGE_EXTRA_ARGS:imx95-a1-19x19-verdin ?= "\ 109MKIMAGE_EXTRA_ARGS:imx95-a1-19x19-verdin ?= "\
108 ${MKIMAGE_EXTRA_ARGS:imx95-19x19-verdin} \ 110 ${MKIMAGE_EXTRA_ARGS:imx95-19x19-verdin} \
109" 111"
112MKIMAGE_EXTRA_ARGS:mx952-nxp-bsp ?= "\
113 OEI=YES \
114 LPDDR_TYPE=${DDR_TYPE} \
115"
110 116
111UBOOT_DTB_BINARY ?= "u-boot.dtb" 117UBOOT_DTB_BINARY ?= "u-boot.dtb"
112 118
@@ -232,6 +238,12 @@ compile_mx95() {
232} 238}
233compile_mx95[doc] = "Stage the i.MX 93 binaries plus the OEI and System Manager firmware for the i.MX 95 boot container" 239compile_mx95[doc] = "Stage the i.MX 93 binaries plus the OEI and System Manager firmware for the i.MX 95 boot container"
234 240
241compile_mx952() {
242 bbnote i.MX 952 boot binary build
243 compile_mx95
244}
245compile_mx952[doc] = "Stage the i.MX 952 boot container binaries, which are the same as for i.MX 95"
246
235do_compile() { 247do_compile() {
236 # mkimage for i.MX8 248 # mkimage for i.MX8
237 # Copy TEE binary to SoC target folder to mkimage 249 # Copy TEE binary to SoC target folder to mkimage
@@ -421,6 +433,14 @@ deploy_mx95() {
421} 433}
422deploy_mx95[doc] = "Deploy the i.MX 93 boot tools plus the OEI and System Manager firmware for i.MX 95" 434deploy_mx95[doc] = "Deploy the i.MX 93 boot tools plus the OEI and System Manager firmware for i.MX 95"
423 435
436deploy_mx952() {
437 deploy_mx93
438 install -m 0644 ${BOOT_STAGING}/${OEI_NAME} ${DEPLOYDIR}/${BOOT_TOOLS}
439 install -m 0644 ${BOOT_STAGING}/${SYSTEM_MANAGER_FIRMWARE_BASENAME}.bin \
440 ${DEPLOYDIR}/${BOOT_TOOLS}/${SYSTEM_MANAGER_FIRMWARE_NAME}.bin
441}
442deploy_mx952[doc] = "Deploy the i.MX 93 boot tools plus the OEI and System Manager firmware for i.MX 952"
443
424do_deploy() { 444do_deploy() {
425 deploy_${SOC_FAMILY} 445 deploy_${SOC_FAMILY}
426 446
diff --git a/recipes-security/optee-imx/optee-os-common-fslc-imx.inc b/recipes-security/optee-imx/optee-os-common-fslc-imx.inc
index 18b9293ff..9cbd1623b 100644
--- a/recipes-security/optee-imx/optee-os-common-fslc-imx.inc
+++ b/recipes-security/optee-imx/optee-os-common-fslc-imx.inc
@@ -36,6 +36,7 @@ OPTEEMACHINE:mx91-nxp-bsp = "imx-mx91evk"
36OPTEEMACHINE:mx93-nxp-bsp = "imx-mx93evk" 36OPTEEMACHINE:mx93-nxp-bsp = "imx-mx93evk"
37OPTEEMACHINE:mx943-nxp-bsp = "imx-mx943evk" 37OPTEEMACHINE:mx943-nxp-bsp = "imx-mx943evk"
38OPTEEMACHINE:mx95-nxp-bsp = "imx-mx95evk" 38OPTEEMACHINE:mx95-nxp-bsp = "imx-mx95evk"
39OPTEEMACHINE:mx952-nxp-bsp = "imx-mx952evk"
39 40
40# Strip the leading imx- 41# Strip the leading imx-
41PLATFORM_FLAVOR = "${@d.getVar('OPTEEMACHINE')[4:]}" 42PLATFORM_FLAVOR = "${@d.getVar('OPTEEMACHINE')[4:]}"