
Hi Dennis,
On Wed, Nov 28, 2012 at 6:30 AM, Dennis Lan (dlan) dennis.yxun@gmail.com wrote:
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
Thanks for reporting it -I will send a patch. Were you building for a particular board, or did you just notice it?
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
Regards, Simon
On Fri, Oct 26, 2012 at 10:31 AM, Simon Glass sjg@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@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@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot