Hello Hannes, Tom, On di, 2014-09-16 at 09:56 -0400, Tom Rini wrote: > On Tue, Sep 16, 2014 at 02:17:01PM +0200, Hannes Petermaier wrote: > > > Hi, > > > > i've just pulled newest u-boot and tried it on my custom AM335x > > board without success. It hangs after (successful) running init_s > > function. > > > > .... > > Enable clock module - 44e0001c > > Enable clock module - 44e000d0 > > Enable clock module - 44e00028 > > > > is the last debug output. > > After some time the watchdog is doing his job and restarts again. > > > > Okay ... thinking maybe something had become incompatible with my > > customization ... so let's try the beaglebone board. > > Same behaviour :-( > > > > I debugged around and found finally this commit, which breaks the support: > > / > > //commit id: f0c3a6c4ad09210d5d4aeafe87685ee75e5683d6// > > // > > // ARM: SPL: do not set gd again// > > //// > > // Just before calling board_init_f, crt0.S has already// > > // reserved space for the initial gd on the stack. There// > > // should be no need to allocate it again.// > > //// > > // cc: Albert ARIBAUD <albert.u.b...@aribaud.net>// > > // Signed-off-by: Jeroen Hofstee <jer...@myspectrum.nl>/ > > > > I have reverted this commit in my branch and everything works fine. > > Finally i have to admit, that i do not fully understand whats going > > on there in detail. > > > > What i can see, is that there live more than one instance of the > > "gd". One is setup in arch/arm/lib/cpu/armv7/lowlevel_init.S, > > another one is setup in arch/arm/lib/crt0.S. > > Within the "gd-ptr" is loaded to &gdata (gdata __attribute__ > > ((section(".data"))) > > > > I am a bit confused all about this :-) > > I just finished bisecting down to this being a problem commit as well. > As far as I can see, the commit in question doesn't make sense. Or > perhaps rather, the comments in crt0.S aren't quite right in the SPL > case where we don't place the initial gd on the stack, it's in the .data > section. >
As far as I can tell there are two gdata's is the SPL case. One on the stack and one in gdata. Can't the later not be removed, so we end up with a single gd init in crt0.S? Before this patch the code switches back and forth between the two, which is at least a bit weird. I will have a closer look at the call path, especially why it used to work... Regards, Jeroen _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot