[PATCH] pxa: fix for UART reference in section text for a number of platforms.
Eric Miao
eric.y.miao at gmail.com
Mon Mar 15 08:43:32 EDT 2010
On Tue, Mar 9, 2010 at 1:44 AM, Jonathan Cameron
<arm at jic23.retrosnub.co.uk> wrote:
> On 03/08/10 12:10, Eric Miao wrote:
>> On Mon, Mar 8, 2010 at 7:48 PM, Eric Miao <eric.y.miao at gmail.com> wrote:
>>> What's the background?
>>>
>>
>> OK, I saw the thread. So this is basically going to move the "UART" to
>> bss, which doesn't get discarded. However, my 'devel' branch has been
>> modified a bit to support off chip UART decompressing messages to be
>> displayed, I'm afraid this needs to be updated a bit.
>
> The same problem will occur with the other two variables changed by
> this function, so how about the following (against your tree, but tested
> against mainline with a couple of patches lifted from your tree). Builds
> fine for imote2, startgate2 and arcom_zeus. Just testing a full build
> of all pxa platforms to see if anything similar is hiding elsewhere.
>
> [PATCH] pxa: fix for uart_base and friends reference in section.
>
> Signed-off-by: Jonathan Cameron <jic23 at cam.ac.uk>
Merged with some minor changes as below, let me know if you
are OK with this.
commit 11f4f3150254477bbe19a847c5aed747f3eeff2a
Author: Jonathan Cameron <arm at jic23.retrosnub.co.uk>
Date: Mon Mar 8 17:44:19 2010 +0000
[ARM] pxa: fix for variables in uncompress.h being discarded
Due to commit:
5de813b ARM: Eliminate decompressor -Dstatic= PIC hack
The data section will be discarded for the decompressor, thus move the
static variables into BSS section by initializing them at run-time.
Signed-off-by: Jonathan Cameron <jic23 at cam.ac.uk>
diff --git a/arch/arm/mach-pxa/include/mach/uncompress.h
b/arch/arm/mach-pxa/include/mach/uncompress.h
index 5ef91d9..759b851 100644
--- a/arch/arm/mach-pxa/include/mach/uncompress.h
+++ b/arch/arm/mach-pxa/include/mach/uncompress.h
@@ -16,9 +16,9 @@
#define BTUART_BASE (0x40200000)
#define STUART_BASE (0x40700000)
-static unsigned long uart_base = FFUART_BASE;
-static unsigned int uart_shift = 2;
-static unsigned int uart_is_pxa = 1;
+static unsigned long uart_base;
+static unsigned int uart_shift;
+static unsigned int uart_is_pxa;
static inline unsigned char uart_read(int offset)
{
@@ -56,6 +56,11 @@ static inline void flush(void)
static inline void arch_decomp_setup(void)
{
+ /* initialize to default */
+ uart_base = FFUART_BASE;
+ uart_shift = 2;
+ uart_is_pxa = 1;
+
if (machine_is_littleton() || machine_is_intelmote2()
|| machine_is_csb726() || machine_is_stargate2()
|| machine_is_cm_x300() || machine_is_balloon3())
More information about the linux-arm-kernel
mailing list