Compile problem due to compressor changes, UART referenced in section .txt
Ryan Mallon
ryan at bluewatersys.com
Sun Mar 7 15:13:33 EST 2010
J.I. Cameron wrote:
> Dear All,
>
> Ran into the following problem on a pxa stargate2 platform (I think it
> will
> effect a number of others).
>
> `UART' referenced in section `.text' of
> arch/arm/boot/compressed/misc.o: defined in discarded section `.data'
> of arch/arm/boot/compressed/misc.o `UART' referenced in section
> `.text' of arch/arm/boot/compressed/misc.o: defined in discarded
> section `.data' of arch/arm/boot/compressed/misc.o
>
> There is a hack in mach-pxa/include/mach/uncompress.h
> that changes the primary uart for some platforms:
>
> static inline void arch_decomp_setup(void)
> {
> if (machine_is_littleton() || machine_is_intelmote2()
> || machine_is_csb726() || machine_is_stargate2()
> || machine_is_cm_x300() || machine_is_balloon3())
> UART = STUART;
> }
>
> Simply changing the initial assignment of UART and commenting this
> function
> out acts as a work around. I'm not entirely sure how to fix the problem
> properly.
Perhaps something like this untested patch:
Signed-off-by: Ryan Mallon <ryan at bluewatersys.com>
---
diff --git a/arch/arm/mach-pxa/include/mach/uncompress.h b/arch/arm/mach-pxa/include/mach/uncompress.h
index 237734b..efd9c0d 100644
--- a/arch/arm/mach-pxa/include/mach/uncompress.h
+++ b/arch/arm/mach-pxa/include/mach/uncompress.h
@@ -15,7 +15,16 @@
#define __REG(x) ((volatile unsigned long *)x)
+#if defined(CONFIG_MACH_LITTLETON) || \
+ defined(CONFIG_MACH_INTELMOTE2) || \
+ defined(CONFIG_MACH_CSB726) || \
+ defined(CONFIG_MACH_STARGATE2) || \
+ defined(CONFIG_MACH_CM_X300) || \
+ defined(CONFIG_MACH_BALLOON3)
+static volatile unsigned long *UART = STUART;
+#else
static volatile unsigned long *UART = FFUART;
+#endif
static inline void putc(char c)
{
@@ -35,10 +44,6 @@ static inline void flush(void)
static inline void arch_decomp_setup(void)
{
- if (machine_is_littleton() || machine_is_intelmote2()
- || machine_is_csb726() || machine_is_stargate2()
- || machine_is_cm_x300() || machine_is_balloon3())
- UART = STUART;
}
/*
More information about the linux-arm-kernel
mailing list