Fully initialise essential control registers
authorDavid Cunado <david.cunado@arm.com>
Thu, 13 Apr 2017 21:38:29 +0000 (22:38 +0100)
committerDavid Cunado <david.cunado@arm.com>
Wed, 21 Jun 2017 16:57:54 +0000 (17:57 +0100)
commit18f2efd67d881fe0a9a535ce9e801e60d746e024
tree5c02488f3d5e7c29035e51f65fbe8b83fad74026
parentb1187232fdf819586ba8c8ece4a27a7515cbdc6d
Fully initialise essential control registers

This patch updates the el3_arch_init_common macro so that it fully
initialises essential control registers rather then relying on hardware
to set the reset values.

The context management functions are also updated to fully initialise
the appropriate control registers when initialising the non-secure and
secure context structures and when preparing to leave EL3 for a lower
EL.

This gives better alignement with the ARM ARM which states that software
must initialise RES0 and RES1 fields with 0 / 1.

This patch also corrects the following typos:

"NASCR definitions" -> "NSACR definitions"

Change-Id: Ia8940b8351dc27bc09e2138b011e249655041cfc
Signed-off-by: David Cunado <david.cunado@arm.com>
13 files changed:
bl1/aarch32/bl1_entrypoint.S
bl1/aarch64/bl1_entrypoint.S
bl31/aarch64/bl31_entrypoint.S
bl32/sp_min/aarch32/entrypoint.S
docs/firmware-design.md
include/common/aarch32/el3_common_macros.S
include/common/aarch64/el3_common_macros.S
include/common/ep_info.h
include/lib/aarch32/arch.h
include/lib/aarch32/arch_helpers.h
include/lib/aarch64/arch.h
lib/el3_runtime/aarch32/context_mgmt.c
lib/el3_runtime/aarch64/context_mgmt.c