Hello
We are developing a solution to perform communications via SHM, for that we need to synchronize the cores via the provided SEMA42 mechanism, and in order to do so we need to know the domain ID prior to locking any SEMA42 gate. From the M7 domain reading and writing the XRDC works pretty well, but from the Automotive Linux that runs on the A53 domain (BSP37.0) we are finding it difficult to obtain this value even from a kernel module, I am referring especifically to XRDC_0.HWCFG1.DID.
For example this code ends up in a kernel panic:
u32 *xrdc = ioremap(0x401A4000, 0x1000);
printk(KERN_DEBUG "XRDC_0 status 0x%x \n", *xrdc);
iounmap(xrdc);
The RM says that "Access: Secure privileged read". The privileged part is covered by the kernel module execution environment (I can access other privileged-only peripherals like MSCM the from the kernel module), so I imagine the issue is caused by the "secure" part of it. How can we set this secure bit? Is this related to the ARM TrustZone concept?
Thanks