[U-Boot] [PATCH 14/14] fdt: Set kernaddr if fdt indicates a kernel is present
Dennis Lan (dlan)
dennis.yxun at gmail.com
Wed Nov 28 15:30:48 CET 2012
hi simon:
found a small bug?(not sure) which introduced by this commit.
this line not inldue FDT option
#if defined(CONFIG_SILENT_CONSOLE) || defined(CONFIG_POST) ||
defined(CONFIG_CMDLINE_EDITING)
DECLARE_GLOBAL_DATA_PTR;
#endif
main.c: In function 'process_fdt_options':
main.c:341:31: error: 'gd' undeclared (first use in this function)
main.c:341:31: note: each undeclared identifier is reported only once for
each function it appears in
main.c: In function 'main_loop':
main.c:464:33: error: 'gd' undeclared (first use in this function)
make[2]: *** [main.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [common/libcommon.o] Error 2
make[1]: *** Waiting for unfinished jobs....
make: *** [lt703a] Error 2
On Fri, Oct 26, 2012 at 10:31 AM, Simon Glass <sjg at chromium.org> wrote:
> If kernel-offset is specified in the fdt, set an environment variable
> so that scripts can access the attached kernel.
>
> This can be used by a packaging program to tell U-Boot about a kernel
> that has been downloaded alongside U-Boot. The value in the fdt is
> the offset of the kernel from the start of the U-Boot image, so we can
> find it just by adding CONFIG_SYS_TEXT_BASE.
>
> It is then fairly easy to put something like this in the environment
> variables in the board header file:
>
> "if test ${kernaddr} != \"\"; then "\
> "echo \"Using bundled kernel\"; "\
> "bootm ${kernaddr};" \
> "fi; "\
> /* rest of boot sequence follows here */
>
> Signed-off-by: Simon Glass <sjg at chromium.org>
> ---
> common/main.c | 16 ++++++++++++++++
> 1 files changed, 16 insertions(+), 0 deletions(-)
>
> diff --git a/common/main.c b/common/main.c
> index 03c63b4..3137b75 100644
> --- a/common/main.c
> +++ b/common/main.c
> @@ -333,6 +333,20 @@ err:
> hang();
> }
>
> +static void process_fdt_options(const void *blob)
> +{
> + ulong addr;
> +
> + /* Add an env variable to point to a kernel payload, if available
> */
> + addr = fdtdec_get_config_int(gd->fdt_blob, "kernel-offset", 0);
> + if (addr)
> + setenv_addr("kernaddr", (void *)(CONFIG_SYS_TEXT_BASE +
> addr));
> +
> + /* Add an env variable to point to a root disk, if available */
> + addr = fdtdec_get_config_int(gd->fdt_blob, "rootdisk-offset", 0);
> + if (addr)
> + setenv_addr("rootaddr", (void *)(CONFIG_SYS_TEXT_BASE +
> addr));
> +}
> #endif /* CONFIG_OF_CONTROL */
>
>
> @@ -451,6 +465,8 @@ void main_loop (void)
> if (env)
> s = env;
>
> + process_fdt_options(gd->fdt_blob);
> +
> /*
> * If the bootsecure option was chosen, use secure_boot_cmd().
> * Always use 'env' in this case, since bootsecure requres that the
> --
> 1.7.7.3
>
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> http://lists.denx.de/mailman/listinfo/u-boot
>
More information about the U-Boot
mailing list