a collegue of mine is working on a i.MX7 board to build an ethernet driver in our _secure_ os. Linux is running in the normal world. The driver is reserved to the secure world (using the CSU CSL registers), and without enabling the TZASC, everything works fine.
Now she is trying to enable the TZASC, so she has to configure the CSU SA register to enable DMA access from ENET to the secure memory. So far she failed: she got the fault interrupt of the TZASC with the following information:
Fail Address: address in secure memory where she expect DMA transaction to be performed
Fail Control: 0x200000 : Read access, NS access, unprivileged access
Fail id: 0x80c
We didn't find any documentation on the AXI ID of i.MX7 boards, so we can't understand this last value. If anyone can point us in the correct direction, that would be great !!
Also, in order to debug the problem, we switched all masters in CSU SA to secure, then switch them to Non secure one by one:
1) when all masters are secure, no interrupt is triggered, but the ethernet driver doesn't work
2) when the DAP part of CSU_SA is set to normal, the interrupt with id 0x80c is triggered
1) it seems obvious me missed something in the secure world configuration. Maybe something to do in the RDC. Any advices in order to configure secure DMA + TZASC on i.MX7 is welcome.
2) As far as I know, there is no reason for the DAP to perform DMA access when driving the ENET component. What could explain this situation ?