
On 27 November 2013 11:32, Alexey Brodkin Alexey.Brodkin@synopsys.comwrote:
If U-Boot build with DEBUG enabled/defined the first call of "debug" function (that dumps data to any available console) will happen before zeroing of initial "gd" in init call "zero_global_data" in "init_sequence_f".
And if stack was not filled with zeros chances are high that "gd->have_console" won't be 0. In its turn it will cause attempt to output things to non-initialized yet serial console.
So for safety and predictability we set "gd->have_console = 0".
Signed-off-by: Alexey Brodkin abrodkin@synopsys.com
Acked-by: Simon Glass sjg@chromium.org
I have a similar patch locally, but it actually does memset() on the whole structure. Some archs handle this setup differently. For example both ARM and x86 now allocate it in low level code so there is no need for the board_f code to allocate a global data structure.
Regards, Simon
Cc: Mischa Jonker mjonker@synopsys.com Cc: Wolfgang Denk wd@denx.de Cc: Simon Glass sjg@chromium.org
common/board_f.c | 1 + 1 file changed, 1 insertion(+)
diff --git a/common/board_f.c b/common/board_f.c index f0664bc..fcfd713 100644 --- a/common/board_f.c +++ b/common/board_f.c @@ -1010,6 +1010,7 @@ void board_init_f(ulong boot_flags) #endif
gd->flags = boot_flags;
gd->have_console = 0; if (initcall_run_list(init_sequence_f)) hang();
-- 1.8.4.2