x86: Add support for CONFIG_OF_CONTROL
Allow a device tree to be provided through the standard mechanisms. Signed-off-by: Gabe Black <gabeblack@google.com> Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
05b71646a9
commit
b208c7f1d0
|
@ -99,10 +99,17 @@ typedef int (init_fnc_t) (void);
|
|||
init_fnc_t *init_sequence_f[] = {
|
||||
cpu_init_f,
|
||||
board_early_init_f,
|
||||
#ifdef CONFIG_OF_CONTROL
|
||||
find_fdt,
|
||||
fdtdec_check_fdt,
|
||||
#endif
|
||||
env_init,
|
||||
init_baudrate_f,
|
||||
serial_init,
|
||||
console_init_f,
|
||||
#ifdef CONFIG_OF_CONTROL
|
||||
prepare_fdt,
|
||||
#endif
|
||||
dram_init_f,
|
||||
calculate_relocation_address,
|
||||
|
||||
|
|
|
@ -171,3 +171,32 @@ int init_func_spi(void)
|
|||
puts("ready\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_OF_CONTROL
|
||||
int find_fdt(void)
|
||||
{
|
||||
#ifdef CONFIG_OF_EMBED
|
||||
/* Get a pointer to the FDT */
|
||||
gd->fdt_blob = _binary_dt_dtb_start;
|
||||
#elif defined CONFIG_OF_SEPARATE
|
||||
/* FDT is at end of image */
|
||||
gd->fdt_blob = (void *)(_end_ofs + _TEXT_BASE);
|
||||
#endif
|
||||
/* Allow the early environment to override the fdt address */
|
||||
gd->fdt_blob = (void *)getenv_ulong("fdtcontroladdr", 16,
|
||||
(uintptr_t)gd->fdt_blob);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int prepare_fdt(void)
|
||||
{
|
||||
/* For now, put this check after the console is ready */
|
||||
if (fdtdec_prepare_fdt()) {
|
||||
panic("** CONFIG_OF_CONTROL defined but no FDT - please see "
|
||||
"doc/README.fdt-control");
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
|
Loading…
Reference in New Issue