
The check is done in console_init_f(), the 'f' meaning before relocation, and thus before the environment is loaded and much before the boot command is run. You need to put "silent=1" into your built-in environment in the board config file.
In my U-boot 2010.06, I tried with #define CONFIG_BOOTCOMMAND " setenv silent 1;". When I hit "printenv", then there's a printout with all the commands from CONFIG_BOOTCOMMAND in just one line (here it's just "setenv silent 1;" - and not "silent=1"). I could do this manually during boot then I get a silent=1, but even then the boot is the same (and after reboot everything is gone, since I'm booting from SD card).
Well Maybe I have to say with the "setenv verify n;" in the CONFIG_BOOTCOMMAND, a similar line comes out like "setenv verify n;" instead of "verify=n", but the verify is working.
Maybe you need CONFIG_SILENT_CONSOLE_UPDATE_ON_RELOC?
I just put this instead of #define CONFIG_SILENT_CONSOLE_UPDATE_ON_SET, nothing changed
Do you see that in the Linux command line on boot?
Yes the kernel command line is shown during boot, including the "console=" or "console=null". Maybe the kernel version 2.6.39 is just too old for that feature.
If you have silent_linux=yes in U-Boot, then it will make Linux silent. See fixup_silent_linux() for the full details.
As far as I know hitting "silent=1" should silent Linux too (?) if a particular command hasn't been set in the board-headerfile.
Regards, Simon
Kind Regards,
Frank