Skip to content

Commit 9222fab

Browse files
MrVanmathieupoirier
authored andcommitted
remoteproc: imx_rproc: Support i.MX93
i.MX93 features a Cortex-M33 core which could be kicked by ROM/Bootloader /Linux. Similar with i.MX8MN/P, we use SMC to trap into Arm Trusted Firmware to start/stop the M33 core. Signed-off-by: Peng Fan <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Mathieu Poirier <[email protected]>
1 parent fcb2458 commit 9222fab

File tree

1 file changed

+33
-0
lines changed

1 file changed

+33
-0
lines changed

drivers/remoteproc/imx_rproc.c

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,32 @@ struct imx_rproc {
9191
void __iomem *rsc_table;
9292
};
9393

94+
static const struct imx_rproc_att imx_rproc_att_imx93[] = {
95+
/* dev addr , sys addr , size , flags */
96+
/* TCM CODE NON-SECURE */
97+
{ 0x0FFC0000, 0x201C0000, 0x00020000, ATT_OWN | ATT_IOMEM },
98+
{ 0x0FFE0000, 0x201E0000, 0x00020000, ATT_OWN | ATT_IOMEM },
99+
100+
/* TCM CODE SECURE */
101+
{ 0x1FFC0000, 0x201C0000, 0x00020000, ATT_OWN | ATT_IOMEM },
102+
{ 0x1FFE0000, 0x201E0000, 0x00020000, ATT_OWN | ATT_IOMEM },
103+
104+
/* TCM SYS NON-SECURE*/
105+
{ 0x20000000, 0x20200000, 0x00020000, ATT_OWN | ATT_IOMEM },
106+
{ 0x20020000, 0x20220000, 0x00020000, ATT_OWN | ATT_IOMEM },
107+
108+
/* TCM SYS SECURE*/
109+
{ 0x30000000, 0x20200000, 0x00020000, ATT_OWN | ATT_IOMEM },
110+
{ 0x30020000, 0x20220000, 0x00020000, ATT_OWN | ATT_IOMEM },
111+
112+
/* DDR */
113+
{ 0x80000000, 0x80000000, 0x10000000, 0 },
114+
{ 0x90000000, 0x80000000, 0x10000000, 0 },
115+
116+
{ 0xC0000000, 0xa0000000, 0x10000000, 0 },
117+
{ 0xD0000000, 0xa0000000, 0x10000000, 0 },
118+
};
119+
94120
static const struct imx_rproc_att imx_rproc_att_imx8mn[] = {
95121
/* dev addr , sys addr , size , flags */
96122
/* ITCM */
@@ -261,6 +287,12 @@ static const struct imx_rproc_dcfg imx_rproc_cfg_imx6sx = {
261287
.method = IMX_RPROC_MMIO,
262288
};
263289

290+
static const struct imx_rproc_dcfg imx_rproc_cfg_imx93 = {
291+
.att = imx_rproc_att_imx93,
292+
.att_size = ARRAY_SIZE(imx_rproc_att_imx93),
293+
.method = IMX_RPROC_SMC,
294+
};
295+
264296
static int imx_rproc_start(struct rproc *rproc)
265297
{
266298
struct imx_rproc *priv = rproc->priv;
@@ -824,6 +856,7 @@ static const struct of_device_id imx_rproc_of_match[] = {
824856
{ .compatible = "fsl,imx8mn-cm7", .data = &imx_rproc_cfg_imx8mn },
825857
{ .compatible = "fsl,imx8mp-cm7", .data = &imx_rproc_cfg_imx8mn },
826858
{ .compatible = "fsl,imx8ulp-cm33", .data = &imx_rproc_cfg_imx8ulp },
859+
{ .compatible = "fsl,imx93-cm33", .data = &imx_rproc_cfg_imx93 },
827860
{},
828861
};
829862
MODULE_DEVICE_TABLE(of, imx_rproc_of_match);

0 commit comments

Comments
 (0)