Re: 4430SDP boot failure

Tony Lindgren
2011-01-06T19:52:39Z

* Tony Lindgren <tony@atomide.com> [110106 10:20]:
> * Russell King - ARM Linux <linux@arm.linux.org.uk> [110106 10:00]:
> > On Thu, Jan 06, 2011 at 05:08:05PM +0000, Russell King - ARM Linux wrote:
> >
> > And another thing: turning on DEBUG in the decompressor breaks the build
> > on OMAP:
> >
> > `.data' referenced in section `.text' of arch/arm/boot/compressed/head.o: defined in discarded section `.data' of arch/arm/boot/compressed/head.o
> > `.data' referenced in section `.text' of arch/arm/boot/compressed/head.o: defined in discarded section `.data' of arch/arm/boot/compressed/head.o
> >
> > Is there a reason why this:
> >
> > .pushsection .data
> > omap_uart_phys: .word 0
> > omap_uart_virt: .word 0
> > omap_uart_lsr: .word 0
> > .popsection
> >
> > can't be in the BSS section?
>
> BSS works too, got a patch for that?

Actually BSS won't work here, that's not initialized early enough..

But it seems that the only patch that's needed is the following.
Care to give it a try?

Here's what I'm getting with this patch and DEBUG enabled for the uncompress
code on my omap4 panda:

Uncompressing Linux... done, booting the kernel.

00AC3990:00000AE7:00C5187F
802C9EBC-80849D3C>80008000
80849D9C
80008000: E321F0D3 EE109F10 EB0F216F E1B0A005 0A0F217E EB0000D8 E1B08005 0A000094
80008020: EB0000E5 EB0F214B EB000004 E59FD008 E28FE000 E28AF010 EA0F213B C00083F4
80008040: E59F4204 E1A00004 E3A03000 E2806901 E4803004 E4803004 E4803004 E4803004
80008060: E1300006 1AFFFFF9 E59A7008 E28F0F7D E8900068 E0400003 E0855000 E0866000
80008080: E1A05A25 E1A06A26 E1873A05 E7843105 E1350006 12855001 1AFFFFFA E1A0300F
800080A0: E1A03A23 E1873A03 E2840A03 E5A03000 E59F6198 E2800004 E0846926 E1500006
800080C0: E2833601 94803004 9AFFFFFB E2840A03 E3876102 E5806000 EE117F10 E3170001
800080E0: 059F716C 159F716C E2873004 E5977000 E5933000 E3570000 13530000 1A000043
[ 0.000000] Linux version 2.6.37-00001-g98859f0-dirty (tmlind@baageli) (gcc version 4.3.3 (Sourcery G++ Lite 2009q1-203) ) #468 SMP Thu Jan 6 11:46:09 PST 2011
[ 0.000000] CPU: ARMv7 Processor [411fc092] revision 2 (ARMv7), cr=10c53c7f
[ 0.000000] CPU: VIPT nonaliasing data cache, VIPT aliasing instruction cache
[ 0.000000] Machine: OMAP4 Panda board
[ 0.000000] bootconsole [earlycon0] enabled
...

Regards,

Tony

From: Tony Lindgren <tony@atomide.com>
Date: Thu, 6 Jan 2011 11:29:39 -0800
Subject: [PATCH] ARM: Fix low-level decompress debug code for omap

If DEBUG is enabled for decompress code, the system will hang
as the debug UART is not specified. Fix this by adding the
necessary code for omap2plus.

Note that this won't work properly with multi-omap support
compiled in. Also the debug UART used needs to be patched
in if not omap UART3.

Signed-off-by: Tony Lindgren <tony@atomide.com>

--- a/arch/arm/boot/compressed/head.S
+++ b/arch/arm/boot/compressed/head.S
@@ -71,6 +71,23 @@ wait: mrc p14, 0, pc, c0, c1, 0
mov \rb, #0x50000000
add \rb, \rb, #0x4000 * CONFIG_S3C_LOWLEVEL_UART_PORT
.endm
+#elif defined(CONFIG_ARCH_OMAP2PLUS)
+#include <plat/multi.h>
+#ifdef MULTI_OMAP2)
+#error Low-level uncompress debug code won't work with multi-omap
+#elif defined(CONFIG_ARCH_OMAP2)
+ .macro loadsp, rb, tmp
+ ldr \rb, =OMAP2_UART3_BASE /* patch accordingly */
+ .endm
+#elif defined(CONFIG_ARCH_OMAP3)
+ .macro loadsp, rb, tmp
+ ldr \rb, =OMAP3_UART3_BASE /* patch accordingly */
+ .endm
+#elif defined(CONFIG_ARCH_OMAP4)
+ .macro loadsp, rb, tmp
+ ldr \rb, =OMAP4_UART3_BASE /* patch accordingly */
+ .endm
+#endif
#else
.macro loadsp, rb, tmp
addruart \rb, \tmp