Thank you for the answer YuriMuhin_ng.
I already checked the errata (but I might have missed some, I'll double check).
The strange thing is that I'm running only on core 0 at the moment, the 3 other cores are still on hold. My goal is to correctly set the ACTLR & SCU for core 0 before releasing the other cores. So far, I managed to enable the PL310 in a single core scenario, with ACTLR.SMP & SCU disabled.
From this state, here is what I'm doing at the moment (and it's not working...):
- MMU is off, PL310 is disabled, L1 I / D cache are off
- invalidate all L1 D cache by set/way + dsb isb
- write in the undocumented diagnostic register for errata of imx6 (bits 4, 6, 11, 21)
- write in the undocument SCU register for errata (SCU_BASE_PA + 0x30, bit 0)
- invalidate SCU tags by writing 0xffff in the invalidate register
- enable the SCU (setting ENABLE & STANDBY_ENABLE bit in the contrl register)
- dmb
- set the ACTLR.SMP and ACTLR.FW bits
- set TTBR0/1 TTBCR
- invalidate I cache + dsb isb
- set SCTLR (configuration activates I cache, D cache & MMU at the same time, + other bits)
- isb
The configuration / activation of PL310 is done after this, with MMU on.
Am I missing something ? Am I doing something wrong to enable SCU & ACTLR ?