summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeng Fan <[email protected]>2025-11-04 18:05:53 +0800
committerFabio Estevam <[email protected]>2025-11-04 12:45:30 -0300
commitf53b2c19de7b8577ead3e9e7b5ebbab052f4f7b1 (patch)
treeb5179216648ccc99f93648dbce6423a913840d97
parent3c2e6002f55cbb039a59c0cf9672daec9cfacb62 (diff)
remoteproc: imx_rproc: Add support for i.MX93 CM33
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]>
-rw-r--r--drivers/remoteproc/imx_rproc.c30
1 files changed, 30 insertions, 0 deletions
diff --git a/drivers/remoteproc/imx_rproc.c b/drivers/remoteproc/imx_rproc.c
index c71e409a00a..9bb55327998 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 },
{}
};