[coreboot-gerrit] New patch to review for coreboot: ARM64: Add lib helper functions for L2CTRL and L2ACTLR
Stefan Reinauer (stefan.reinauer@coreboot.org)
gerrit at coreboot.org
Thu May 19 20:39:18 CEST 2016
Stefan Reinauer (stefan.reinauer at coreboot.org) just uploaded a new patch set to gerrit, which you can find at https://review.coreboot.org/14919
-gerrit
commit 0b6e2bbb5c99a4598449ea1c16ebd3dec6743062
Author: Akshay Saraswat <akshay.s at samsung.com>
Date: Thu Oct 9 17:10:30 2014 +0530
ARM64: Add lib helper functions for L2CTRL and L2ACTLR
Adding few more lib helper function definitions to get and
set L2 Control and L2 Auxiliary Control registers.
BUG=None
BRANCH=None
TEST=None
Change-Id: Ie8a3d4ef3ec685264bde330b3563630a141fdffa
Signed-off-by: Akshay Saraswat <akshay.s at samsung.com>
---
src/arch/arm64/armv8/lib/sysctrl.c | 32 +++++++++++++++++++++++++
src/arch/arm64/include/armv8/arch/lib_helpers.h | 4 ++++
2 files changed, 36 insertions(+)
diff --git a/src/arch/arm64/armv8/lib/sysctrl.c b/src/arch/arm64/armv8/lib/sysctrl.c
index e349a25..0ce3dcf 100644
--- a/src/arch/arm64/armv8/lib/sysctrl.c
+++ b/src/arch/arm64/armv8/lib/sysctrl.c
@@ -1060,4 +1060,36 @@ void raw_write_cntfrq_el0(uint32_t cntfrq_el0)
{
__asm__ __volatile__("msr CNTFRQ_EL0, %0\n\t" : : "r" (cntfrq_el0) :
"memory");
+/* L2CTLR */
+uint32_t raw_read_l2ctlr_el1(void)
+{
+ uint32_t l2ctlr_el1;
+
+ __asm__ __volatile__("mrs %0, S3_1_c11_c0_2\n\t"
+ : "=r" (l2ctlr_el1) : : "memory");
+
+ return l2ctlr_el1;
+}
+
+void raw_write_l2ctlr_el1(uint32_t l2ctlr_el1)
+{
+ __asm__ __volatile__("msr S3_1_c11_c0_2, %0\n\t"
+ : : "r" (l2ctlr_el1) : "memory");
+}
+
+/* L2ACTLR */
+uint32_t raw_read_l2actlr_el1(void)
+{
+ uint32_t l2actlr_el1;
+
+ __asm__ __volatile__("mrs %0, s3_1_c15_c0_0\n\t"
+ : "=r" (l2actlr_el1) : : "memory");
+
+ return l2actlr_el1;
+}
+
+void raw_write_l2actlr_el1(uint32_t l2actlr_el1)
+{
+ __asm__ __volatile__("msr s3_1_c15_c0_0, %0\n\t"
+ : : "r" (l2actlr_el1) : "memory");
}
diff --git a/src/arch/arm64/include/armv8/arch/lib_helpers.h b/src/arch/arm64/include/armv8/arch/lib_helpers.h
index 94078e9..4e36714 100644
--- a/src/arch/arm64/include/armv8/arch/lib_helpers.h
+++ b/src/arch/arm64/include/armv8/arch/lib_helpers.h
@@ -479,6 +479,10 @@ void raw_write_far(uint64_t far, uint32_t el);
uint64_t raw_read_hcr_el2(void);
void raw_write_hcr_el2(uint64_t hcr_el2);
uint64_t raw_read_aa64pfr0_el1(void);
+uint32_t raw_read_l2ctlr_el1(void);
+void raw_write_l2ctlr_el1(uint32_t l2ctlr_el1);
+uint32_t raw_read_l2actlr_el1(void);
+void raw_write_l2actlr_el1(uint32_t l2actlr_el1);
uint64_t raw_read_mair_el1(void);
void raw_write_mair_el1(uint64_t mair_el1);
uint64_t raw_read_mair_el2(void);
More information about the coreboot-gerrit
mailing list