]> git.ipfire.org Git - thirdparty/u-boot.git/commitdiff
remoteproc: imx_rproc: Add support for i.MX93 CM33
authorPeng Fan <peng.fan@nxp.com>
Tue, 4 Nov 2025 10:05:53 +0000 (18:05 +0800)
committerFabio Estevam <festevam@nabladev.com>
Tue, 4 Nov 2025 15:45:30 +0000 (12:45 -0300)
Introduce remote processor configuration for the i.MX93 Cortex-M33 core.

This patch adds:
- Address translation table (ATT) for i.MX93, including TCM
  (secure and non-secure) and DDR regions.
- A new device configuration structure `imx_rproc_cfg_imx93` using SMC
  method and ARM SMC ops.
- Device tree match entry for "fsl,imx93-cm33"

This enables remoteproc framework to properly initialize and manage the
Cortex-M33 core on i.MX93 platforms.

Reviewed-by: Ye Li <ye.li@nxp.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
drivers/remoteproc/imx_rproc.c

index c71e409a00a55179b06434dfa190e8eb8ba559f1..9bb5532799803d05de0e125475b3dc41a452e906 100644 (file)
@@ -322,11 +322,41 @@ static const struct imx_rproc_dcfg imx_rproc_cfg_imx8mq = {
        .ops            = &imx_rproc_ops_mmio,
 };
 
+static const struct imx_rproc_att imx_rproc_att_imx93[] = {
+       /* dev addr , sys addr  , size      , flags */
+       /* TCM CODE NON-SECURE */
+       { 0x0FFC0000, 0x201C0000, 0x00040000, ATT_OWN | ATT_IOMEM },
+
+       /* TCM CODE SECURE */
+       { 0x1FFC0000, 0x201C0000, 0x00040000, ATT_OWN | ATT_IOMEM },
+
+       /* TCM SYS NON-SECURE*/
+       { 0x20000000, 0x20200000, 0x00040000, ATT_OWN | ATT_IOMEM },
+
+       /* TCM SYS SECURE*/
+       { 0x30000000, 0x20200000, 0x00040000, ATT_OWN | ATT_IOMEM },
+
+       /* DDR */
+       { 0x80000000, 0x80000000, 0x10000000, 0 },
+       { 0x90000000, 0x80000000, 0x10000000, 0 },
+
+       { 0xC0000000, 0xC0000000, 0x10000000, 0 },
+       { 0xD0000000, 0xC0000000, 0x10000000, 0 },
+};
+
+static const struct imx_rproc_dcfg imx_rproc_cfg_imx93 = {
+       .att            = imx_rproc_att_imx93,
+       .att_size       = ARRAY_SIZE(imx_rproc_att_imx93),
+       .method         = IMX_RPROC_SMC,
+       .ops            = &imx_rproc_ops_arm_smc,
+};
+
 static const struct udevice_id imx_rproc_ids[] = {
        { .compatible = "fsl,imx8mm-cm4", .data = (ulong)&imx_rproc_cfg_imx8mq },
        { .compatible = "fsl,imx8mn-cm7", .data = (ulong)&imx_rproc_cfg_imx8mn, },
        { .compatible = "fsl,imx8mp-cm7", .data = (ulong)&imx_rproc_cfg_imx8mn, },
        { .compatible = "fsl,imx8mq-cm4", .data = (ulong)&imx_rproc_cfg_imx8mq },
+       { .compatible = "fsl,imx93-cm33", .data = (ulong)&imx_rproc_cfg_imx93 },
        {}
 };