Hi Michael, On Fri, Aug 29, 2014 at 8:20 PM, Michal Simek <mon...@monstr.eu> wrote: > Hi Sonic > > On 08/07/2014 09:08 AM, Sonic Zhang wrote: >> From: Sonic Zhang <sonic.zh...@analog.com> >> >> - move blackfin specific cpu init code from blackfin board.c to cpu.c >> - remove blackfin specific board init code and invoke generic board_f fron >> cpu init entry >> - rename section name bss_vma to bss_start in order to match the generic >> board init code >> - add a fake relocate_code function to set up the new stack only > > I would like get more information about this change. > I have spent some time on Microblaze to move to generic board > and I need to use sort of the same approach. > I will play with full reloc but as I see there will be a lot of additional > code generated which increase u-boot footprint and brings nothing. > > That's why I would like to know why you have decided to use fake relocate_code > function and what setup you are using before and "after" relocation (location > of stack, gd, malloc > areas, etc).
The Blackfin u-boot start code has already done the relocation before the generic board_init_f() is invoked. But, the new stack pointer can not be set until all functions in init_sequence_f[] are done. So, the last function in init_sequence_f[] relocate_code() is used to update the stack point and jump to the generic board_init_f(). Blackfin architecture defines global static gd and bd data and set the init stack point to (CONFIG_SYS_MALLOC_BASE - 4). Regards, Sonic _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot