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

I have this uboot

    VERSION = 2017
    PATCHLEVEL = 03

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
    save
    reset

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

    printenv

I see my saved variable correctly in env varibles

    silent=1

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;
    
    WATCHDOG_RESET();
    
    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)
    {
    #ifdef CONFIG_SILENT_CONSOLE
    if (getenv("silent") != NULL){
    puts("silent");
    gd->flags |= GD_FLG_SILENT;
    }
    else{
    puts("Non silent");
    gd->flags &= ~GD_FLG_SILENT;
    }
    #endif
    }
    
    /* Called before relocation - use serial functions */
    int console_init_f(void)
    {
    gd->have_console = 1;
    
    console_update_silent();
    
    print_pre_console_buffer(PRE_CONSOLE_FLUSHPOINT1_SERIAL);
    
    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.

P.S.

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.

-- 
For more options, visit http://beagleboard.org/discuss
--- 
You received this message because you are subscribed to the Google Groups 
"BeagleBoard" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/beagleboard/8bf3bff7-2dbc-4197-b4ea-57837bfa442f%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to