[coreboot-gerrit] New patch to review for coreboot: acc3be7 libpayload: Introduce bit manipulation macros

Marc Jones (marc.jones@se-eng.com) gerrit at coreboot.org
Sun Jan 4 00:29:16 CET 2015


Marc Jones (marc.jones at se-eng.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/8062

-gerrit

commit acc3be7488fb4c4045ae74cbdcb2be07fc6f96f2
Author: Vadim Bendebury <vbendeb at chromium.org>
Date:   Wed Jun 4 10:43:37 2014 -0700

    libpayload: Introduce bit manipulation macros
    
    Some drivers being ported to depthcharge use io bit manipulation
    macros. The libpayload include file seems the most appropriate place
    to keep these macros in. There is no common io.h file across
    architectures, the x86 version could be added later if required.
    
    BUG=chrome-os-partner:27784
    TEST=observed ipq806x SPI driver deptcharge port (WIP) compile properly.
    
    Original-Change-Id: I33f3be072faefce293c871f7e3bc3b2e6bc38ffe
    Original-Signed-off-by: Vadim Bendebury <vbendeb at chromium.org>
    Original-Reviewed-on: https://chromium-review.googlesource.com/202559
    Original-Reviewed-by: Stefan Reinauer <reinauer at chromium.org>
    Original-Reviewed-by: Trevor Bourget <tbourget at codeaurora.org>
    (cherry picked from commit ad18a605b4d0ec3251c1614e7358b42aa6b5c45a)
    Signed-off-by: Marc Jones <marc.jones at se-eng.com>
    
    Change-Id: I8656e12af20ce4cf11d771942e8fe7d4eb2a560d
---
 payloads/libpayload/include/arm/arch/io.h | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/payloads/libpayload/include/arm/arch/io.h b/payloads/libpayload/include/arm/arch/io.h
index 8948e13..5cb66dc 100644
--- a/payloads/libpayload/include/arm/arch/io.h
+++ b/payloads/libpayload/include/arm/arch/io.h
@@ -73,4 +73,17 @@ static inline void writel(uint32_t _v, volatile void *_a)
 	dmb();
 }
 
+/*
+ * Handy bit manipulation macros, BE version will have to be added when/if
+ * needed.
+ */
+
+#ifdef CONFIG_LP_LITTLE_ENDIAN
+#define clrsetbits_le32(addr, clear, set) writel((readl(addr) & ~(clear)) |\
+						 (set), (addr))
+#define setbits_le32(addr, set) writel(readl(addr) | (set), (addr))
+#define clrbits_le32(addr, clear) writel(readl(addr) & ~(clear), (addr))
 #endif
+
+#endif
+



More information about the coreboot-gerrit mailing list