[U-Boot] [PATCH] powerpc: Add support for CONFIG_OF_CONTROL

Simon Glass sjg at chromium.org
Tue Apr 16 07:01:09 CEST 2013


On Mon, Apr 15, 2013 at 4:59 AM, Jonathan Klee <klee.jonathan at gmail.com> wrote:
> Allow a device tree to be provided through the standard mechanisms.
>
> Tests have been made using CONFIG_OF_SEPERATE on a MPC8378 board.

SEPARATE

> ---
>  arch/powerpc/lib/board.c |   22 ++++++++++++++++++++++
>  1 file changed, 22 insertions(+)
>
> diff --git a/arch/powerpc/lib/board.c b/arch/powerpc/lib/board.c
> index 422b4a3..3a9a6ce 100644
> --- a/arch/powerpc/lib/board.c
> +++ b/arch/powerpc/lib/board.c
> @@ -26,6 +26,8 @@
>  #include <command.h>
>  #include <malloc.h>
>  #include <stdio_dev.h>
> +#include <libfdt.h>
> +#include <fdtdec.h>

Please put in alphabetical order.

>  #ifdef CONFIG_8xx
>  #include <mpc8xx.h>
>  #endif
> @@ -124,6 +126,7 @@ DECLARE_GLOBAL_DATA_PTR;
>
>  extern ulong __init_end;
>  extern ulong __bss_end;
> +extern ulong __stop___ex_table;

Where does this name come from - objcopy?

>  ulong monitor_flash_len;
>
>  #if defined(CONFIG_CMD_BEDBUG)
> @@ -255,6 +258,21 @@ int init_func_watchdog_reset(void)
>   * Initialization sequence
>   */
>
> +#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
> +       gd->fdt_blob = (void *)&__stop___ex_table;
> +#endif
> +       gd->fdt_blob = (void *)getenv_ulong("fdtcontroladdr", 16,
> +                                               (uintptr_t)gd->fdt_blob);
> +       return 0;
> +}
> +#endif
> +
>  static init_fnc_t *init_sequence[] = {
>  #if defined(CONFIG_MPC85xx) || defined(CONFIG_MPC86xx)
>         probecpu,
> @@ -321,6 +339,10 @@ static init_fnc_t *init_sequence[] = {
>  #endif
>         INIT_FUNC_WATCHDOG_RESET
>         init_func_ram,
> +#ifdef CONFIG_OF_CONTROL
> +       find_fdt,
> +       fdtdec_check_fdt,
> +#endif
>  #if defined(CONFIG_SYS_DRAM_TEST)
>         testdram,
>  #endif /* CONFIG_SYS_DRAM_TEST */
> --
> 1.7.10.4
>

I'm also interested in whether you can get CONFIG_SYS_GENERIC_BOARD
going on your board?

Regards,
Simon


More information about the U-Boot mailing list