[coreboot-gerrit] Patch set updated for coreboot: 2c62cd8 libpayload: x86: correct types used for IO

Aaron Durbin (adurbin@chromium.org) gerrit at coreboot.org
Wed May 13 00:25:36 CEST 2015


Aaron Durbin (adurbin at chromium.org) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/10186

-gerrit

commit 2c62cd89c6d67a38ebd3b5555c06d8873519bcb5
Author: Aaron Durbin <adurbin at chromium.org>
Date:   Tue May 12 16:46:27 2015 -0500

    libpayload: x86: correct types used for IO
    
    libpayload on x86 defines u32 and uint32_t as typedefs of
    unsigned int. However, the readl/writel routines use long.
    With alias checking this throws type punning errors. Align
    the readl/writel/inl/outl types with the 32-bit fixed width
    ones that are exposed.
    
    Change-Id: Ie51cff8af4596948f6132e3cb743f1bc4ea8f204
    Signed-off-by: Aaron Durbin <adurbin at chromium.org>
---
 payloads/libpayload/include/x86/arch/io.h | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/payloads/libpayload/include/x86/arch/io.h b/payloads/libpayload/include/x86/arch/io.h
index 0cb610f..cd48d7c 100644
--- a/payloads/libpayload/include/x86/arch/io.h
+++ b/payloads/libpayload/include/x86/arch/io.h
@@ -33,13 +33,13 @@
 
 #define readb(_a) (*(volatile const unsigned char *) (_a))
 #define readw(_a) (*(volatile const unsigned short *) (_a))
-#define readl(_a) (*(volatile const unsigned long *) (_a))
+#define readl(_a) (*(volatile const unsigned int *) (_a))
 
 #define writeb(_v, _a) (*(volatile unsigned char *) (_a) = (_v))
 #define writew(_v, _a) (*(volatile unsigned short *) (_a) = (_v))
-#define writel(_v, _a) (*(volatile unsigned long *) (_a) = (_v))
+#define writel(_v, _a) (*(volatile unsigned int *) (_a) = (_v))
 
-static inline unsigned long inl(int port)
+static inline unsigned int inl(int port)
 {
 	unsigned long val;
 	__asm__ __volatile__("inl %w1, %0" : "=a"(val) : "Nd"(port));
@@ -60,7 +60,7 @@ static inline unsigned char inb(int port)
 	return val;
 }
 
-static inline void outl(unsigned long val, int port)
+static inline void outl(unsigned int val, int port)
 {
 	__asm__ __volatile__("outl %0, %w1" : : "a"(val), "Nd"(port));
 }



More information about the coreboot-gerrit mailing list