From: Peng Fan <[email protected]>

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 <[email protected]>
Signed-off-by: Peng Fan <[email protected]>
---
 drivers/remoteproc/imx_rproc.c | 30 ++++++++++++++++++++++++++++++
 1 file changed, 30 insertions(+)

diff --git a/drivers/remoteproc/imx_rproc.c b/drivers/remoteproc/imx_rproc.c
index 
c71e409a00a55179b06434dfa190e8eb8ba559f1..9bb5532799803d05de0e125475b3dc41a452e906
 100644
--- a/drivers/remoteproc/imx_rproc.c
+++ b/drivers/remoteproc/imx_rproc.c
@@ -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 },
        {}
 };
 

-- 
2.35.3

Reply via email to