Hi
I have read in one of the ARM document for TrustZone that
Within a TrustZone processor the hardware provides two virtual MMUs, one for each virtual processor. This enables each world tohave a local set of translation tables, giving them independent control over their virtual address to physical address mappings.
If anybody can explain what is Virtual MMU, that will be really helpful.
Thanks
Sahil
The lower levels of Trustzone are implemented quite differently on ARMv8-M and on the Application level architectures. On ARMv8-M the switching is all done in hardware and the same memory map is used just with the properties of the areas saying if they are accessible from the non-secure state or not. For the -A processors switching is done by code in the secure monitor which is an even more privileged state than a hypervisor and the secure and non-secure states use different memory maps. This was asked under ARMv8-M so I can see that would cause a bit of confusion even though logically at the user level there would be no difference.
There's an introduction to this for ARMv8--M without any mention of virtual in the first link at
Whitepaper - ARMv8-M Architecture Technical Overview
Hiya Sahil,
I think the quote is from: "Building a Secure System using TrustZone® Technology"
It's just saying that as the secure and non-secure worlds have a different MMU configuration it's like there are two MMUs even though there is, physically, only one MMU. It's a handy way to think about the system and matches the view of the system that software sees.
P