diff options
author | Gabe Black <gabeblack@google.com> | 2013-09-18 05:48:37 -0700 |
---|---|---|
committer | Isaac Christensen <isaac.christensen@se-eng.com> | 2014-08-18 19:25:57 +0200 |
commit | 8128a56c0ec7e147d4ad68e6ba55979e9ead25ae (patch) | |
tree | 696f0d9e2d76a73cf3685570d823b70faa4e6dde /src/mainboard | |
parent | e97b6835f4dcd70ebf23941fb2f56c0d9d1d3e97 (diff) | |
download | coreboot-8128a56c0ec7e147d4ad68e6ba55979e9ead25ae.tar.xz |
trustzone: Pull trustzone init out of cpu.c and do it in romstage.
Trustzone needs to be initialized/disabled both on boot and on wake, so it
needs to be done before ramstage which doesn't run on wake. cpu.c isn't
compiled into romstage and fixing that causes other problems, so the trustzone
functions were split out.
Change-Id: I8fc630237ebec1f02a91600f8baf3d4e9ea66d0e
Signed-off-by: Gabe Black <gabeblack@google.com>
Reviewed-on: https://chromium-review.googlesource.com/169817
Reviewed-by: Gabe Black <gabeblack@chromium.org>
Tested-by: Gabe Black <gabeblack@chromium.org>
Commit-Queue: Gabe Black <gabeblack@chromium.org>
(cherry picked from commit 055ed0e28476123b0bd666109af90baf40aadcee)
Signed-off-by: Isaac Christensen <isaac.christensen@se-eng.com>
Reviewed-on: http://review.coreboot.org/6666
Tested-by: build bot (Jenkins)
Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
Reviewed-by: Ronald G. Minnich <rminnich@gmail.com>
Diffstat (limited to 'src/mainboard')
-rw-r--r-- | src/mainboard/google/pit/romstage.c | 3 | ||||
-rw-r--r-- | src/mainboard/google/snow/romstage.c | 4 |
2 files changed, 7 insertions, 0 deletions
diff --git a/src/mainboard/google/pit/romstage.c b/src/mainboard/google/pit/romstage.c index 7967a559f2..7e096a79aa 100644 --- a/src/mainboard/google/pit/romstage.c +++ b/src/mainboard/google/pit/romstage.c @@ -33,6 +33,7 @@ #include <cpu/samsung/exynos5420/setup.h> #include <cpu/samsung/exynos5420/periph.h> #include <cpu/samsung/exynos5420/power.h> +#include <cpu/samsung/exynos5420/trustzone.h> #include <cpu/samsung/exynos5420/wakeup.h> #include <console/console.h> #include <arch/stages.h> @@ -252,6 +253,8 @@ void main(void) primitive_mem_test(); + trustzone_init(); + if (is_resume) { wakeup(); } diff --git a/src/mainboard/google/snow/romstage.c b/src/mainboard/google/snow/romstage.c index 44074c58bf..1c49d35e9f 100644 --- a/src/mainboard/google/snow/romstage.c +++ b/src/mainboard/google/snow/romstage.c @@ -32,6 +32,7 @@ #include <cpu/samsung/exynos5250/setup.h> #include <cpu/samsung/exynos5250/periph.h> #include <cpu/samsung/exynos5250/power.h> +#include <cpu/samsung/exynos5250/trustzone.h> #include <cpu/samsung/exynos5250/wakeup.h> #include <console/console.h> #include <arch/stages.h> @@ -154,6 +155,9 @@ void main(void) setup_power(is_resume); setup_memory(mem, is_resume); + /* This needs to happen on normal boots and on resume. */ + trustzone_init(); + if (is_resume) { wakeup(); } |