Supervisor call to allow OS or Hypervisor code to call the Secure Monitor. It generates an exception targeting exception level 3 (EL3).
- Is a 16-bit unsigned immediate, in the range 0 to 65535. This value is made available to the handler in the Exception Syndrome Register.
Secure Monitor Call causes an exception to EL3.
SMC is available only for software executing at EL1 or higher. It is undefined in EL0.
If the values of HCR_EL2.TSC and SCR_EL3.SMD are both 0, execution of an
SMC instruction at EL1 or higher generates a Secure Monitor Call exception, recording it in ESR_ELx, using the EC value
0x17, that is taken to EL3.
If the value of HCR_EL2 in the ARMv8-A Architecture Reference Manual.TSC is 1, execution of an
SMC instruction in a Non-secure EL1 state generates an exception that is taken to EL2, regardless of the value of SCR_EL3 in the ARMv8-A Architecture Reference Manual.SMD. For more information, see Traps to EL2 of Non-secure EL1 execution of SMC instructions in the ARMv8-A Architecture Reference Manual.
If the value of HCR_EL2.TSC is 0 and the value of SCR_EL3.SMD is 1, the SMC instruction is undefined.