Hi Chris, On 10 March 2015 at 20:22, Chris Packham <judge.pack...@gmail.com> wrote: > Hi, > > I have a board using SPI flash for it's boot-loader and environment, > I'm currently based of u-boot 2014.01. In my boards config file I have > the following > > #define CONFIG_SILENT_CONSOLE > #define CONFIG_SILENT_U_BOOT_ONLY > #define CONFIG_SILENT_CONSOLE_UPDATE_ON_RELOC > #define CONFIG_BOARD_EXTRA_ENV_SETTINGS "silent=1" > > By default I want u-boot to be silent, and that's what I get. But for > debugging I do want to be able to run "setenv silent; saveenv; reset" > to enable non-silent mode. Unfortunately this doesn't work for me. > > I _think_ the problem is that when console_init_f() is called the > environment can't be read from SPI flash so I get the default silent=1 > behaviour (and that's OK). After relocation the environment is read > from SPI flash for some reason the on_silent() callback isn't called > I'm not sure why but I'm guessing that hdelete_r() is bypassed > (possibly because the whole default environment is dropped) thus the > callback for silent being deleted is not invoked. > > Is my thinking along the right lines? > > Would there be any objection to doing something like this: > > diff --git a/common/console.c b/common/console.c > index 29560c3..6719019 100644 > --- a/common/console.c > +++ b/common/console.c > @@ -808,6 +808,11 @@ int console_init_r(void) > struct list_head *pos; > struct stdio_dev *dev; > > +#ifdef CONFIG_SILENT_CONSOLE > + if (getenv("silent") == NULL) > + gd->flags &= ~GD_FLG_SILENT; > +#endif > + > #ifdef CONFIG_SPLASH_SCREEN > /* > * suppress all output if splash screen is enabled and we have >
We have something similar in console_init_f() so should probably put this code in a separate (common) function called from both places. But as you say, I cannot see where else this happens. Regards, Simon _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot