]> git.baikalelectronics.ru Git - arm-tf.git/commit
fix(pmu): unconditionally save PMCR_EL0
authorBoyan Karatotev <boyan.karatotev@arm.com>
Tue, 6 Dec 2022 09:03:42 +0000 (09:03 +0000)
committerBoyan Karatotev <boyan.karatotev@arm.com>
Fri, 5 May 2023 12:16:18 +0000 (13:16 +0100)
commit1d6d6802dd547c8b378a9a47572ee72e68cceb3b
tree19fadcc58926f0b34dcff47a64d9f0893958f890
parent1d0d5e40206c693e24b0a4de7dbcfc4b79f3138e
fix(pmu): unconditionally save PMCR_EL0

Reading back a RES0 bit does not necessarily mean it will be read as 0.
The Arm ARM explicitly warns against doing this. The PMU initialisation
code tries to set such bits to 1 (in MDCR_EL3) regardless of whether
they are in use or are RES0, checking their value could be wrong and
PMCR_EL0 might not end up being saved.

Save PMCR_EL0 unconditionally to prevent this. Remove the security state
change as the outgoing state is not relevant to what the root world
context should look like.

Signed-off-by: Boyan Karatotev <boyan.karatotev@arm.com>
Change-Id: Id43667d37b0e2da3ded0beaf23fa0d4f9013f470
bl1/aarch64/bl1_exceptions.S
bl31/aarch64/ea_delegate.S
bl31/aarch64/runtime_exceptions.S
lib/el3_runtime/aarch64/context.S