[U-Boot] [PATCH v4 1/2] blackfin: convert blackfin board_f and board_r to use generic board init functions

Sonic Zhang sonic.adi at gmail.com
Mon Sep 1 04:52:55 CEST 2014


Hi Michael,

On Fri, Aug 29, 2014 at 8:20 PM, Michal Simek <monstr at monstr.eu> wrote:
> Hi Sonic
>
> On 08/07/2014 09:08 AM, Sonic Zhang wrote:
>> From: Sonic Zhang <sonic.zhang at 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


More information about the U-Boot mailing list