Optimize EL3 register state stored in cpu_context structure
authorSoby Mathew <soby.mathew@arm.com>
Fri, 4 Jul 2014 15:02:26 +0000 (16:02 +0100)
committerSoby Mathew <soby.mathew@arm.com>
Thu, 31 Jul 2014 09:09:58 +0000 (10:09 +0100)
commitfdfabec10ce9d6d56691007dce3bc2599baeb0f0
tree6a77ab51f2da53c76238602eb389770a3a0a86a7
parentdd2bdee61682df0ec65dfc43371c126a86a30c30
Optimize EL3 register state stored in cpu_context structure

This patch further optimizes the EL3 register state stored in
cpu_context. The 2 registers which are removed from cpu_context are:

  * cntfrq_el0 is the system timer register which is writable
    only in EL3 and it can be programmed during cold/warm boot. Hence
    it need not be saved to cpu_context.

  * cptr_el3 controls access to Trace, Floating-point, and Advanced
    SIMD functionality and it is programmed every time during cold
    and warm boot. The current BL3-1 implementation does not need to
    modify the access controls during normal execution and hence
    they are expected to remain static.

Fixes ARM-software/tf-issues#197

Change-Id: I599ceee3b73a7dcfd37069fd41b60e3d397a7b18
bl31/aarch64/context.S
bl31/context_mgmt.c
include/bl31/context.h
include/bl31/context_mgmt.h
services/std_svc/psci/psci_afflvl_suspend.c