The present invention provides a data processing apparatus and method for
controlling access to a memory in the data processing apparatus. The
apparatus comprises a processor operable in a plurality of modes and a
plurality of domains, said plurality of domains comprising a secure
domain and a non-secure domain, said plurality of modes including at
least one non-secure mode being a mode in the non-secure domain and at
least one secure mode being a mode in the secure domain. The processor is
operable such that when executing a program in a secure mode the program
has access to secure data which is not accessible when the processor is
operating in a non-secure mode. A memory is operable to store data
required by the processor and comprises secure memory for storing secure
data and non-secure memory for storing non-secure data, the processor
being operable to issue a memory access request when access to an item of
data in the memory is required. At least one memory management unit is
provided which is operable, upon receipt of the memory access request
from the processor, to perform conversion of a virtual address specified
by the memory access request to a physical address. A first set of tables
is provided, each table in the first set containing a number of first
descriptors, each first descriptor containing at least a virtual address
portion and a corresponding intermediate address portion, and a second
set of tables is also provided, with each table in the second set
containing a number of second descriptors, each second descriptor
containing at least an intermediate address portion and a corresponding
physical address portion. The second set of tables are managed by the
processor when operating in a privileged mode which is not a non-secure
mode, and hence remains secure. The at least one memory management unit
is then operable to cause predetermined tables in the first and second
set to be referenced to enable the conversion of the virtual address
specified by the memory access request to a physical address.