Message ID | 1351218671-15228-15-git-send-email-sjg@chromium.org |
---|---|
State | Accepted, archived |
Delegated to: | Jerry Van Baren |
Headers | show |
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@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 >
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 > >
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
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(-)