Programmers Model
ARM DDI 0500D Copyright © 2013-2014 ARM. All rights reserved. 3-8
ID021414 Non-Confidential
Taking an exception selects the default stack pointer for the target exception level,
meaning SP maps to the SP_ELx stack pointer register, where x is the exception
level.
Software executing in the target exception level can execute an
MSR SPSel, #Imm1
instruction to select whether to use the default SP_ELx stack pointer, or the
SP_EL0 stack pointer.
The selected stack pointer can be indicated by a suffix to the exception level:
t Indicates use of the SP_EL0 stack pointer.
h Indicates use of the SP_ELx stack pointer.
Table 3-2 shows the set of AArch64 stack pointer options.
AArch32 In AArch32 state, each mode that can be the target of an exception has its own
banked copy of the stack pointer. For example, the banked stack pointer for Hyp
mode is called SP_hyp. Software executing in one of these modes uses the banked
stack pointer for that mode.
The modes that have banked copies of the stack pointer are FIQ mode, IRQ mode,
Supervisor mode, Abort mode, Undefined mode, Hyp mode, and Monitor mode.
Software executing in User mode or System mode uses the User mode stack
pointer, SP_usr.
For more information, see AArch32 execution modes on page 3-10.
3.2.6 ARMv8 security model
The Cortex-A53 processor implements all of the exception levels. This means:
• EL3 exists only in Secure state and a change from Secure state to Non-secure state is made
only by an exception return from EL3.
• EL2 exists only in Non-secure state.
To provide compatibility with ARMv7, the exception levels available in Secure state are
modified when EL3 is using AArch32. The following sections describe the security model:
• Security model when EL3 is using AArch64.
• Security model when EL3 is using AArch32 on page 3-9.
Security model when EL3 is using AArch64
When EL3 is using AArch64, Figure 3-1 on page 3-9 shows the security model, and the
expected use of the different exception levels. This figure shows how instances of EL0 and EL1
are present in both security states.
Table 3-2 AArch64 stack pointer options
Exception level AArch64 stack pointer options
EL0 EL0t
EL1 EL1t, EL1h
EL2 EL2t, EL2h
EL3 EL3t, EL3h