board_f: Introduce arch_setup_bdinfo initcall

Certain architectures (ppc, mips, sh, m68k) use setup board_part1 and
setup_board_part2 calls during pre-relocation init to populate gd->bd
boardinfo fields. This makes the generic init sequence cluttered with
arch-specific ifdefs.

In order to clean these arch-specific sequences from generic init,
introduce arch_setup_bdinfo weak initcall so that everyone can define their
own bdinfo setup routines.

Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com>
This commit is contained in:
Ovidiu Panait 2020-07-24 14:12:15 +03:00 committed by Tom Rini
parent ba7431031f
commit 81e7cb1e71
2 changed files with 18 additions and 1 deletions

View File

@ -598,11 +598,16 @@ static int display_new_sp(void)
return 0;
}
int setup_bdinfo(void)
__weak int arch_setup_bdinfo(void)
{
return 0;
}
int setup_bdinfo(void)
{
return arch_setup_bdinfo();
}
#if defined(CONFIG_M68K) || defined(CONFIG_MIPS) || defined(CONFIG_PPC) || \
defined(CONFIG_SH)
static int setup_board_part1(void)

View File

@ -141,6 +141,18 @@ int arch_reserve_stacks(void);
*/
int arch_reserve_mmu(void);
/**
* arch_setup_bdinfo() - Architecture dependent boardinfo setup
*
* Architecture-specific routine for populating various boardinfo fields of
* gd->bd. It is called during the generic board init sequence.
*
* If an implementation is not provided, it will just be a nop stub.
*
* Return: 0 if OK
*/
int arch_setup_bdinfo(void);
/**
* setup_bdinfo() - Generic boardinfo setup
*