Browse Source
Merge pull request #1376 from vwadekar/cm-init-actlr-el1
lib: el3_runtime: initialise actlr_el1 to hardware defaults
pull/1359/head
Dimitris Papastamos
7 years ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with
11 additions and
1 deletions
-
lib/el3_runtime/aarch64/context_mgmt.c
|
|
@ -65,7 +65,7 @@ static void cm_init_context_common(cpu_context_t *ctx, const entry_point_info_t |
|
|
|
uint32_t scr_el3, pmcr_el0; |
|
|
|
el3_state_t *state; |
|
|
|
gp_regs_t *gp_regs; |
|
|
|
unsigned long sctlr_elx; |
|
|
|
unsigned long sctlr_elx, actlr_elx; |
|
|
|
|
|
|
|
assert(ctx); |
|
|
|
|
|
|
@ -178,6 +178,16 @@ static void cm_init_context_common(cpu_context_t *ctx, const entry_point_info_t |
|
|
|
*/ |
|
|
|
write_ctx_reg(get_sysregs_ctx(ctx), CTX_SCTLR_EL1, sctlr_elx); |
|
|
|
|
|
|
|
/*
|
|
|
|
* Base the context ACTLR_EL1 on the current value, as it is |
|
|
|
* implementation defined. The context restore process will write |
|
|
|
* the value from the context to the actual register and can cause |
|
|
|
* problems for processor cores that don't expect certain bits to |
|
|
|
* be zero. |
|
|
|
*/ |
|
|
|
actlr_elx = read_actlr_el1(); |
|
|
|
write_ctx_reg((get_sysregs_ctx(ctx)), (CTX_ACTLR_EL1), (actlr_elx)); |
|
|
|
|
|
|
|
if (security_state == SECURE) { |
|
|
|
/*
|
|
|
|
* Initialise PMCR_EL0 for secure context only, setting all |
|
|
|