[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