U-boot does not silence its output

Its not a beagle board but just regular uboot functionality I am trying to understand.

I have this uboot

VERSION = 2017

I am trying to silent the console using the silent variable.I defined this #define CONFIG_SILENT_CONSOLE
So at boot time I am interrupting the console, and entering

setenv silent 1

Now after reset, or power on reset I try again get console logs.After seeing env variables


I see my saved variable correctly in env varibles


but still u-boot is not silent. I suspect this function is failing at checking for this env variable,

char *getenv(const char name)
if (gd->flags & GD_FLG_ENV_READY) { /
after import into hashtable */
ENTRY e, *ep;


e.key = name;
e.data = NULL;
hsearch_r(e, FIND, &ep, &env_htab, 0); /this function is maybe returning/

return ep ? ep->data : NULL;

/* restricted capabilities before import */
if (getenv_f(name, (char *)(gd->env_buf), sizeof(gd->env_buf)) > 0)
return (char *)(gd->env_buf);

return NULL;

But what exactly is happening?
Is there something like before relocation time env variables and after relocation env variables because the function,

static void console_update_silent(void)
if (getenv(“silent”) != NULL){
gd->flags |= GD_FLG_SILENT;
puts(“Non silent”);
gd->flags &= ~GD_FLG_SILENT;

/* Called before relocation - use serial functions */
int console_init_f(void)
gd->have_console = 1;



return 0;

console_init_f says its before relocation.
I have put some prints to see and always gets non silent, even if I have saved the silent variable,

I am using a sd card to boot(mmc), I don’t have any debugger, so I
I tried printing default environment, as

env print default

Error: “default” not defined

So there is not default environment too.

Any tips or help will make me understand.


I explicitly defined silent in #define CONFIG_EXTRA_ENV_SETTINGS
Now u-boot is silent, but I don’t see this env variable on doing printenv

Doing a setenv silent should remove this from env variable but still on reboot my uboot is silent. So something about environment variable is clearly mystery to me.