diff options
author | Simon Glass <sjg@chromium.org> | 2012-02-15 15:51:11 -0800 |
---|---|---|
committer | Mike Frysinger <vapier@gentoo.org> | 2012-03-12 11:03:42 -0400 |
commit | f7b2af0a228645f972cc882534b68d32c739f5e9 (patch) | |
tree | a7f130c377fb43fddf432c8fabf8e01704bc267e | |
parent | e2dcefcb404df39fc38786f4b76e3b94d4f476e1 (diff) |
sandbox: fdt: add support for CONFIG_OF_CONTROL
This adds support for a controlling fdt, mirroring the ARM implementation.
Signed-off-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
-rw-r--r-- | arch/sandbox/include/asm/global_data.h | 1 | ||||
-rw-r--r-- | arch/sandbox/lib/board.c | 8 |
2 files changed, 9 insertions, 0 deletions
diff --git a/arch/sandbox/include/asm/global_data.h b/arch/sandbox/include/asm/global_data.h index 8d47191f925..01a706362e6 100644 --- a/arch/sandbox/include/asm/global_data.h +++ b/arch/sandbox/include/asm/global_data.h @@ -45,6 +45,7 @@ typedef struct global_data { unsigned long fb_base; /* base address of frame buffer */ u8 *ram_buf; /* emulated RAM buffer */ phys_size_t ram_size; /* RAM size */ + const void *fdt_blob; /* Our device tree, NULL if none */ void **jt; /* jump table */ char env_buf[32]; /* buffer for getenv() before reloc. */ } gd_t; diff --git a/arch/sandbox/lib/board.c b/arch/sandbox/lib/board.c index b7997e9a73e..6d464d6ae8d 100644 --- a/arch/sandbox/lib/board.c +++ b/arch/sandbox/lib/board.c @@ -156,6 +156,14 @@ void board_init_f(ulong bootflag) memset((void *)gd, 0, sizeof(gd_t)); +#if defined(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 + for (init_fnc_ptr = init_sequence; *init_fnc_ptr; ++init_fnc_ptr) { if ((*init_fnc_ptr)() != 0) hang(); |