»
Quick Links
Page 1 of 1
One question about the address space when implemented the Security Extensions of ARMv7-A architecture
#1
Posted 06 July 2011 - 08:06 AM
Dear All,
In ARMv7-A architecture, When implemented, the Security Extensions provide two physical address spaces, a Secure physical address space and a Non-secure physical address space. We also know that 32-bit physical address provides 4GB address space. If we use 32-bit physical address, does the secure physical address space and the non-secure physical address space share the same 4GB address space? Or they both have a separated 4GB address space?
Anyone know it? Thanks.
In ARMv7-A architecture, When implemented, the Security Extensions provide two physical address spaces, a Secure physical address space and a Non-secure physical address space. We also know that 32-bit physical address provides 4GB address space. If we use 32-bit physical address, does the secure physical address space and the non-secure physical address space share the same 4GB address space? Or they both have a separated 4GB address space?
Anyone know it? Thanks.
Dong
#2
Posted 06 July 2011 - 09:22 AM
From the processors point of view you have a 4GB non-secure physical address space, and a 4GB secure physical address space,
The secure processor modes can see all 8GB of the physical address space, because the MMU pages contain a single bit which allows the secure world to select a non-secure physical address or a secure physical address for each virtual address currently mapped.
However the bus implementation the processor is attached to may choose to only allow a single physical address space, and use the "NS" bit on the bus to provide access control to each physical address rather than another "virtual address bit". I believe this is what most implementers have chosen to do, so you typically have a global 4GB address space and the non-secure processor can only see a subset of it.
The secure processor modes can see all 8GB of the physical address space, because the MMU pages contain a single bit which allows the secure world to select a non-secure physical address or a secure physical address for each virtual address currently mapped.
However the bus implementation the processor is attached to may choose to only allow a single physical address space, and use the "NS" bit on the bus to provide access control to each physical address rather than another "virtual address bit". I believe this is what most implementers have chosen to do, so you typically have a global 4GB address space and the non-secure processor can only see a subset of it.
When optimizing software, consider that the quickest code to run is the bit you removed from the call path.
Share this topic:
Page 1 of 1














