Reset debug registers MDCR-EL3/SDCR and MDCR_EL2/HDCR
In order to avoid unexpected traps into EL3/MON mode, this patch
resets the debug registers, MDCR_EL3 and MDCR_EL2 for AArch64,
and SDCR and HDCR for AArch32.

MDCR_EL3/SDCR is zero'ed when EL3/MON mode is entered, at the
start of BL1 and BL31/SMP_MIN.

For MDCR_EL2/HDCR, this patch zero's the bits that are
architecturally UNKNOWN values on reset. This is done when
exiting from EL3/MON mode but only on platforms that support
EL2/HYP mode but choose to exit to EL1/SVC mode.

Fixes ARM-software/tf-issues#430

Change-Id: Idb992232163c072faa08892251b5626ae4c3a5b6
Signed-off-by: David Cunado <david.cunado@arm.com>
1 parent 90d2956 commit 495f3d3c51096de3559cc7fb77494a16fc158e26
@David Cunado David Cunado authored on 31 Oct 2016
Showing 8 changed files
View
include/common/aarch32/el3_common_macros.S
View
include/common/aarch64/el3_common_macros.S
View
include/lib/aarch32/arch.h
View
include/lib/aarch32/arch_helpers.h
View
include/lib/aarch64/arch.h
View
include/lib/aarch64/arch_helpers.h
View
lib/el3_runtime/aarch32/context_mgmt.c
View
lib/el3_runtime/aarch64/context_mgmt.c