Hi Jeroen, On Wed, Aug 21, 2013 at 10:22 AM, Jeroen Hofstee <jer...@myspectrum.nl> wrote: > Hello Simon, > > > On 08/19/2013 07:32 PM, Jeroen Hofstee wrote: >> >> >> On 08/19/2013 05:08 AM, Simon Glass wrote: >>> >>> On Sat, Aug 17, 2013 at 3:40 AM, Jeroen Hofstee <jer...@myspectrum.nl> >>> wrote: >>>> >>>> >>>> This patch assumes only crt0.S sets the register used for >>>> gd in asm. I just noticed cpu/armv7/lowlevel_init.S does set gd >>>> manually, so all users of the common board.c are likely >>>> bricked with the patch as is. Looking into it.... >>> >>> I may misunderstood what you are saying here, >> >> >> Likely, this is not about how to set reserve gd, but why gd >> is setup twice. The answer is because some more cleanup >> is needed (which deserves its own patch). >> > > Right... Now I understand what you were talking about. Gd is actually > setup _three_ times in a row:
Yes. > > 1) cpu/armv7/lowlevel_init.S > 2) ./arch/arm/lib/crt0.S > 3) common/board_f.c > > >>> but I believe that the >>> code in common/board_f.c which creates a global_data on the stack can >>> be removed for ARM now that Albert has tidied all this up with the >>> crt0.S changes, etc. So in common/board_f.c something like: >>> >>> void board_init_f(ulong boot_flags) >>> { >>> /* These two archs set up the global_data before board_init_f() */ >>> #if !defined(CONFIG_X86) && !defined(CONFIG_ARM) >>> gd_t data; >>> >>> gd = &data; >>> #endif >>> >>> gd->flags = boot_flags; >>> >> > > Yup understood now, this makes sense (but as part of a cleanup patchset) Agreed, no suggestion it should be done here - I just wanted to make sure you are not working hard to preserve unnecessary code. Regards, Simon _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot