[coreboot-gerrit] New patch to review for coreboot: 1e8dbed armv7: add function for dcache_clean_by_mva()

David Hendricks (dhendrix@chromium.org) gerrit at coreboot.org
Wed Mar 20 22:48:17 CET 2013


David Hendricks (dhendrix at chromium.org) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/2871

-gerrit

commit 1e8dbed7718d2810ec01169526591d6982be35e0
Author: David Hendricks <dhendrix at chromium.org>
Date:   Tue Mar 19 18:38:48 2013 -0700

    armv7: add function for dcache_clean_by_mva()
    
    This adds a function for using the DCCMVAC instruction (dcache clean
    by MVA at point of coherency (main memory)). We already have the
    inline defined, it's just not used by anything.
    
    Change-Id: Ia0641566a8881335bed8da2963e1db8321d74267
    Signed-off-by: David Hendricks <dhendrix at chromium.org>
---
 src/arch/armv7/include/arch/cache.h | 3 +++
 src/arch/armv7/lib/cache.c          | 6 ++++++
 2 files changed, 9 insertions(+)

diff --git a/src/arch/armv7/include/arch/cache.h b/src/arch/armv7/include/arch/cache.h
index 31ed345..c003256 100644
--- a/src/arch/armv7/include/arch/cache.h
+++ b/src/arch/armv7/include/arch/cache.h
@@ -215,6 +215,9 @@ static inline void write_sctlr(unsigned int val)
 /* dcache clean and invalidate all (on current level given by CCSELR) */
 void dcache_clean_invalidate_all(void);
 
+/* dcache clean by modified virtual address to PoC */
+void dcache_clean_by_mva(unsigned long addr, unsigned long len);
+
 /* dcache clean and invalidate by modified virtual address to PoC */
 void dcache_clean_invalidate_by_mva(unsigned long addr, unsigned long len);
 
diff --git a/src/arch/armv7/lib/cache.c b/src/arch/armv7/lib/cache.c
index 8fb238a..63e406c 100644
--- a/src/arch/armv7/lib/cache.c
+++ b/src/arch/armv7/lib/cache.c
@@ -79,6 +79,7 @@ enum dcache_op {
 	OP_DCCISW,
 	OP_DCISW,
 	OP_DCCIMVAC,
+	OP_DCCMVAC,
 };
 
 /*
@@ -193,6 +194,11 @@ static void dcache_op_mva(unsigned long addr,
 	}
 }
 
+void dcache_clean_by_mva(unsigned long addr, unsigned long len)
+{
+	dcache_op_mva(addr, len, OP_DCCMVAC);
+}
+
 void dcache_clean_invalidate_by_mva(unsigned long addr, unsigned long len)
 {
 	dcache_op_mva(addr, len, OP_DCCIMVAC);



More information about the coreboot-gerrit mailing list