From 561e9c4ec2b0657846d50bbc893ef7541230f932 Mon Sep 17 00:00:00 2001 From: Furquan Shaikh Date: Sun, 7 Sep 2014 18:27:16 -0700 Subject: [PATCH] arm64 libhelpers: Add helper functions for writing sp_elx BUG=chrome-os-partner:30785 BRANCH=None TEST=Compiles successfully Change-Id: Ie950e893b01456c23af14304bd4dd8f61af9f244 Signed-off-by: Furquan Shaikh Reviewed-on: https://chromium-review.googlesource.com/216905 Reviewed-by: Aaron Durbin Tested-by: Furquan Shaikh Commit-Queue: Furquan Shaikh --- src/arch/arm64/armv8/lib/pstate.c | 10 ++++++++++ src/arch/arm64/include/armv8/arch/lib_helpers.h | 2 ++ 2 files changed, 12 insertions(+) diff --git a/src/arch/arm64/armv8/lib/pstate.c b/src/arch/arm64/armv8/lib/pstate.c index 321560789d..6258a199d1 100644 --- a/src/arch/arm64/armv8/lib/pstate.c +++ b/src/arch/arm64/armv8/lib/pstate.c @@ -333,6 +333,16 @@ void raw_write_sp_el3(uint64_t sp_el3) raw_write_spsel(spsel); } +uint64_t raw_read_sp_elx(uint32_t el) +{ + SWITCH_CASE_READ(raw_read_sp, sp, uint64_t, el); +} + +void raw_write_sp_elx(uint64_t sp_elx, uint32_t el) +{ + SWITCH_CASE_WRITE(raw_write_sp, sp_elx, el); +} + /* SPSR */ uint32_t raw_read_spsr_abt(void) { diff --git a/src/arch/arm64/include/armv8/arch/lib_helpers.h b/src/arch/arm64/include/armv8/arch/lib_helpers.h index 58f9e7956c..7cd741b728 100644 --- a/src/arch/arm64/include/armv8/arch/lib_helpers.h +++ b/src/arch/arm64/include/armv8/arch/lib_helpers.h @@ -225,6 +225,8 @@ uint32_t raw_read_spsel(void); void raw_write_spsel(uint32_t spsel); uint64_t raw_read_sp_el3(void); void raw_write_sp_el3(uint64_t sp_el3); +uint64_t raw_read_sp_elx(uint32_t el); +void raw_write_sp_elx(uint64_t sp_elx, uint32_t el); uint32_t raw_read_spsr_abt(void); void raw_write_spsr_abt(uint32_t spsr_abt); uint32_t raw_read_spsr_el1(void);