Hi,
I am working on S32K324 with two M7 cores, each running its own Design Studio project. Both cores need to control different pins that belong to the same SIUL2 register (same MSCR/GPDO word).
I have read AN14715 and the VIRT_WRAPPER documentation, which explains that SIUL2 can expose multiple virtual interfaces (PDAC) and that XRDC can restrict access per core. However, I cannot find an explicit statement saying whether:
A) VIRT_WRAPPER actually isolates access to the physical SIUL2 registers, preventing two cores from writing to the same register word,
or
B) it does not isolate the physical registers, meaning both cores still write to the same hardware register and therefore require another protection mechanism. Since we have separate designs for each core, what mechanisms do you recommend?
Could you confirm whether the VIRT_WRAPPER does or does not prevent multi‑core write conflicts on the same SIUL2 register?
Thank you.
Hi @luigi_sanpaolo,
Virtual Wrapper does isolates the SIUL2 registers by assigning PDACs (Peripheral domain access control) to the respective cores or domain IDs. It locks the XRDC configuration and programs VIRT_WRAPPER registers for pad assignments.
Either HSE-B (which boots first) or main application core should configure PDAC3 to prevent VIRT_WRAPPER being reprogrammed by the second core.
Best regards,
Julián
Hi @luigi_sanpaolo,
SEMA42 must be used in conjunction with XRDC for resource protection, meaning hardware semaphores are used when XRDC, SEMA42 and VIRT_WRAPPER is used.
Recommendation is to use the Hardware Resource Isolation and Protection modules, which are described in chapters 8, 17 & 19 from the S32K3XX reference manual.
However, you can refer to the following application note: AN14715: Hardware Resource Isolation and Protection. Here is an excerpt from it, describing VIRT_WRAPPER initialization and usage:
I suggest reading the Usage and error handling of VIRT_WRAPPER section, it notes the steps for configuration.
Best regards,
Julián