- In RDC settings, The SDMA1 is not assigned to M7 core.
- In ATF settings, the RDC peripheral write permission is not enabled.
So please try the following modify:
In the the following, the item 1 is resolved by adding a Peripheral_RdcSetting function, in which the SDMA1 is assigned to M7 core:
RDC_SetMasterDomainAssignment(RDC, kRDC_Master_SDMA1_PERIPH, &assignment);
RDC_SetMasterDomainAssignment(RDC, kRDC_Master_SDMA1_BURST, &assignment);
RDC_SetMasterDomainAssignment(RDC, kRDC_Master_SDMA1_SPBA1, &assignment);
Moreover, the RDC peripheral write permission need to be enabled in ATF:
Patch:
diff --git a/plat/imx/imx8m/imx8mn/imx8mn_bl31_setup.c b/plat/imx/imx8m/imx8mn/imx8mn_bl31_setup.c
index 1c03ed16c..7f99df861 100644
--- a/plat/imx/imx8m/imx8mn/imx8mn_bl31_setup.c
+++ b/plat/imx/imx8m/imx8mn/imx8mn_bl31_setup.c
@@ -110,7 +110,7 @@ static const struct imx_rdc_cfg rdc[] = {
/* peripherals domain permission */
RDC_PDAPn(RDC_PDAP_UART4, D1R | D1W),
RDC_PDAPn(RDC_PDAP_UART2, D0R | D0W),
- RDC_PDAPn(RDC_PDAP_RDC, D0R | D0W | D1R),
+ RDC_PDAPn(RDC_PDAP_RDC, D0R | D0W | D1R | D1W),
/* memory region */
RDC_MEM_REGIONn(16, 0x0, 0x0, 0xff),
And for a test, user can just modify the register in u-boot with command:
mw 0x303d0474 0x0000000f