Commit 2a7adf25 authored by Petre-Ionut Tudor's avatar Petre-Ionut Tudor
Browse files

Explicitly disable the SPME bit in MDCR_EL3



Currently the MDCR_EL3 initialisation implicitly disables
MDCR_EL3.SPME by using mov_imm.

This patch makes the SPME bit more visible by explicitly
disabling it and documenting its use in different versions
of the architecture.
Signed-off-by: default avatarPetre-Ionut Tudor <petre-ionut.tudor@arm.com>
Change-Id: I221fdf314f01622f46ac5aa43388f59fa17a29b3
parent cf9319f4
...@@ -113,11 +113,18 @@ ...@@ -113,11 +113,18 @@
* prohibited in Secure state. This bit is RES0 in versions of the * prohibited in Secure state. This bit is RES0 in versions of the
* architecture earlier than ARMv8.5, setting it to 1 doesn't have any * architecture earlier than ARMv8.5, setting it to 1 doesn't have any
* effect on them. * effect on them.
*
* MDCR_EL3.SPME: Set to zero so that event counting by the programmable
* counters PMEVCNTR<n>_EL0 is prohibited in Secure state. If ARMv8.2
* Debug is not implemented this bit does not have any effect on the
* counters unless there is support for the implementation defined
* authentication interface ExternalSecureNoninvasiveDebugEnabled().
* --------------------------------------------------------------------- * ---------------------------------------------------------------------
*/ */
mov_imm x0, ((MDCR_EL3_RESET_VAL | MDCR_SDD_BIT | \ mov_imm x0, ((MDCR_EL3_RESET_VAL | MDCR_SDD_BIT | \
MDCR_SPD32(MDCR_SPD32_DISABLE) | MDCR_SCCD_BIT) & \ MDCR_SPD32(MDCR_SPD32_DISABLE) | MDCR_SCCD_BIT) & \
~(MDCR_TDOSA_BIT | MDCR_TDA_BIT | MDCR_TPM_BIT)) ~(MDCR_SPME_BIT | MDCR_TDOSA_BIT | MDCR_TDA_BIT | \
MDCR_TPM_BIT))
msr mdcr_el3, x0 msr mdcr_el3, x0
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment