3.3.4. Privilege levels

In ARMv5, User modes are known as unprivileged modes, while the following modes are known as privileged modes:

In ARMv7-A with the Virtualization implementation, the privileged model is different from that in ARMv5. In Non-secure state, ARMv7-A has three privilege levels, PL0, PL1, and PL2:


The privilege level of application software that executes in User mode. Software executed in User mode is described as unprivileged software. This software cannot access some features of the architecture. In particular, it cannot change many of the configuration settings.

Software executing at PL0 can make only unprivileged memory accesses.


Software execution in all modes, other than User mode and Hyp mode, is at PL1. Normally, operating system software executes at PL1.

PL1 modes refer to all modes other than User mode and Hyp mode.

An Operating System is expected to execute across all PL1 modes, with its applications executing at PL0 (User Mode).


Hyp mode is normally used by a Hypervisor and can switch between Guest Operating Systems that execute at PL1.

If Virtualization Extensions are implemented, a Hypervisor executes at PL2 (Hyp mode). A Hypervisor controls and enables multiple Operating Systems to co-exist and execute on the same processor system.

These privilege levels are separate from the TrustZone Secure and Non-secure settings. Figure 3.20 shows processor modes and their corresponding privilege levels.


The privilege level defines the ability to access resources in the current security state. However, it does not imply anything about the ability to access resources in the other security state.

Copyright © 2014 ARM. All rights reserved.ARM DAI0425