diff options
Diffstat (limited to 'plat/hisilicon/hikey960/hikey960_bl31_setup.c')
-rw-r--r-- | plat/hisilicon/hikey960/hikey960_bl31_setup.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/plat/hisilicon/hikey960/hikey960_bl31_setup.c b/plat/hisilicon/hikey960/hikey960_bl31_setup.c index 5d70dbfd..9383265e 100644 --- a/plat/hisilicon/hikey960/hikey960_bl31_setup.c +++ b/plat/hisilicon/hikey960/hikey960_bl31_setup.c @@ -141,6 +141,21 @@ static void hikey960_edma_init(void) } } +static void hikey960_iomcu_dma_init(void) +{ + int i; + uint32_t non_secure; + + non_secure = IOMCU_DMAC_SEC_CTRL_INTR_SEC | IOMCU_DMAC_SEC_CTRL_GLOBAL_SEC; + mmio_write_32(IOMCU_DMAC_SEC_CTRL, non_secure); + + /* channels 0-3 are reserved */ + for (i = 4; i < IOMCU_DMAC_CHANNEL_NUMS; i++) { + mmio_write_32(IOMCU_DMAC_AXI_CONF(i), IOMCU_DMAC_AXI_CONF_ARPROT_NS | + IOMCU_DMAC_AXI_CONF_AWPROT_NS); + } +} + void bl31_platform_setup(void) { /* Initialize the GIC driver, cpu and distributor interfaces */ @@ -150,6 +165,7 @@ void bl31_platform_setup(void) gicv2_cpuif_enable(); hikey960_edma_init(); + hikey960_iomcu_dma_init(); hisi_ipc_init(); } |