summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorSimon Glass <sjg@chromium.org>2012-02-15 15:51:11 -0800
committerMike Frysinger <vapier@gentoo.org>2012-03-12 11:03:42 -0400
commitf7b2af0a228645f972cc882534b68d32c739f5e9 (patch)
treea7f130c377fb43fddf432c8fabf8e01704bc267e /arch
parente2dcefcb404df39fc38786f4b76e3b94d4f476e1 (diff)
downloadu-boot-imx-f7b2af0a228645f972cc882534b68d32c739f5e9.zip
u-boot-imx-f7b2af0a228645f972cc882534b68d32c739f5e9.tar.gz
u-boot-imx-f7b2af0a228645f972cc882534b68d32c739f5e9.tar.bz2
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>
Diffstat (limited to 'arch')
-rw-r--r--arch/sandbox/include/asm/global_data.h1
-rw-r--r--arch/sandbox/lib/board.c8
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 8d47191..01a7063 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 b7997e9..6d464d6 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();