From mboxrd@z Thu Jan 1 00:00:00 1970 From: Marek Vasut Subject: Re: [PATCH v4 1/8] sandbox: fdt: Add support for CONFIG_OF_CONTROL Date: Thu, 16 Feb 2012 11:50:04 +0100 Message-ID: <201202161150.04317.marek.vasut@gmail.com> References: <1329349878-16664-1-git-send-email-sjg@chromium.org> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <1329349878-16664-1-git-send-email-sjg@chromium.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: u-boot-bounces@lists.denx.de Errors-To: u-boot-bounces@lists.denx.de To: u-boot@lists.denx.de Cc: Devicetree Discuss , Jerry Van Baren List-Id: devicetree@vger.kernel.org > This adds support for a controlling fdt, mirroring the ARM implementation. This is offtopic, but CONFIG OF CONTROL sounds interesting ;-) btw. aren't you missing this part from ARM implementation? /* Allow the early environment to override the fdt address */ gd->fdt_blob = (void *)getenv_ulong("fdtcontroladdr", 16, (uintptr_t)gd- >fdt_blob); > > Signed-off-by: Simon Glass > --- > Changes in v3: > - Use #if defined()..#elif defined, instead of #ifdef..#elif defined > > arch/sandbox/include/asm/global_data.h | 1 + > 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 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();