Ronald G. Minnich (rminnich@gmail.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/2387
-gerrit
commit f13413bc194d82f3a68e334e4445a01864b97717 Author: Ronald G. Minnich rminnich@gmail.com Date: Thu Feb 14 09:54:57 2013 -0800
Get libpayload to compile cleanly for ARMV7
There were just a few nits: on ARM, in/out and read/write are the same, so create synonyms. Get rid of some the nested if bits; add needed function prototypes (that did not used to be needed).
This is prep work for getting more ARM drivers into libpayload.
Signed-off-by: Ronald G. Minnich rminnich@gmail.com
Change-Id: I1e0b2af4a3aaf314b5cdd8a46ec2cb2663ee684e Signed-off-by: Ronald G. Minnich rminnich@gmail.com --- payloads/libpayload/include/armv7/arch/io.h | 10 ++++++++++ payloads/libpayload/include/libpayload.h | 5 +++++ payloads/libpayload/libc/time.c | 19 +++++++++++++------ 3 files changed, 28 insertions(+), 6 deletions(-)
diff --git a/payloads/libpayload/include/armv7/arch/io.h b/payloads/libpayload/include/armv7/arch/io.h index e71e1dd..6f4c621 100644 --- a/payloads/libpayload/include/armv7/arch/io.h +++ b/payloads/libpayload/include/armv7/arch/io.h @@ -31,12 +31,22 @@ #ifndef _ARCH_IO_H #define _ARCH_IO_H
+/* x86 has to differentiate between inb/readb. + * No such issue on arm, but we still need to define both + * types of operations. + */ #define readb(_a) (*(volatile unsigned char *) (_a)) #define readw(_a) (*(volatile unsigned short *) (_a)) #define readl(_a) (*(volatile unsigned long *) (_a)) +#define inb(_a) (*(volatile unsigned char *) (_a)) +#define inw(_a) (*(volatile unsigned short *) (_a)) +#define inl(_a) (*(volatile unsigned long *) (_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 outb(_v, _a) (*(volatile unsigned char *) (_a) = (_v)) +#define outw(_v, _a) (*(volatile unsigned short *) (_a) = (_v)) +#define outl(_v, _a) (*(volatile unsigned long *) (_a) = (_v))
#endif diff --git a/payloads/libpayload/include/libpayload.h b/payloads/libpayload/include/libpayload.h index eaa0d0d..d1b9de8 100644 --- a/payloads/libpayload/include/libpayload.h +++ b/payloads/libpayload/include/libpayload.h @@ -294,6 +294,11 @@ long long int llabs(long long int j); u8 bin2hex(u8 b); u8 hex2bin(u8 h); void fatal(const char *msg) __attribute__ ((noreturn)); + +void *default_memset(void *s, int c, size_t n); +void *default_memcpy(void *dst, const void *src, size_t n); +void *default_memmove(void *dst, const void *src, size_t n); +int default_memcmp(const void *s1, const void *s2, size_t len); /** @} */
diff --git a/payloads/libpayload/libc/time.c b/payloads/libpayload/libc/time.c index 5358c02..91f6296 100644 --- a/payloads/libpayload/libc/time.c +++ b/payloads/libpayload/libc/time.c @@ -110,14 +110,20 @@ static void gettimeofday_init(void) clock.secs = (days * 86400) + (tm.tm_hour * 3600) + (tm.tm_min * 60) + tm.tm_sec; } -#else +#endif // CONFIG_NVRAM +#endif // CONFIG_ARCH_X86 + +#ifdef CONFIG_ARCH_ARMV7 +static void update_clock(void) +{ +} + static void gettimeofday_init(void) { - /* Record the number of ticks */ - clock.ticks = rdtsc(); } -#endif -#endif +#endif // CONFIG_ARCH_ARMV7 + + #ifdef CONFIG_ARCH_POWERPC static void update_clock(void) { @@ -126,7 +132,8 @@ static void update_clock(void) static void gettimeofday_init(void) { } -#endif +#endif // CONFIG_ARCH_POWERPC + /** * Return the current time broken into a timeval structure. *