From af4bd599ca84478c9109a4bdba43a790ec5bbc2f Mon Sep 17 00:00:00 2001 From: Alexandru Gagniuc Date: Sun, 12 Jan 2014 15:42:58 -0600 Subject: lib: Make log2() available in romstage on ARM, not just x86 On x86, log2() is defined as an inline function in arch/io.h. This is a remnant of ROMCC, and forced us to not include clog2.c in romstage. As a result, romstage on ARM has no log2(). Use the inline log2 only with ROMCC, but otherwise, use the one in clog2.c. Change-Id: Ifef2aa0a7b5a1db071a66f2eec0be421b8b2a56d Signed-off-by: Alexandru Gagniuc Reviewed-on: http://review.coreboot.org/4681 Tested-by: build bot (Jenkins) Reviewed-by: Ronald G. Minnich --- src/arch/x86/include/arch/io.h | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'src/arch') diff --git a/src/arch/x86/include/arch/io.h b/src/arch/x86/include/arch/io.h index 955d8e2f91..b10fb8a7cf 100644 --- a/src/arch/x86/include/arch/io.h +++ b/src/arch/x86/include/arch/io.h @@ -167,7 +167,8 @@ static inline __attribute__((always_inline)) void write32(unsigned long addr, ui *((volatile uint32_t *)(addr)) = value; } -#if defined(__PRE_RAM__) || defined(__SMM__) +/* Conflicts with definition in lib.h */ +#if defined(__ROMCC__) || defined(__SMM__) static inline int log2(int value) { unsigned int r = 0; @@ -180,6 +181,9 @@ static inline int log2(int value) return r; } +#endif + +#if defined(__PRE_RAM__) || defined(__SMM__) static inline int log2f(int value) { unsigned int r = 0; -- cgit v1.2.3