x86: Fix the mystery of printch() during 64-bit boot
authorBin Meng <bmeng.cn@gmail.com>
Sun, 14 Oct 2018 03:52:09 +0000 (20:52 -0700)
committerBin Meng <bmeng.cn@gmail.com>
Mon, 22 Oct 2018 09:51:45 +0000 (17:51 +0800)
commit49d5ff439c9ddc0ac124ea117fd33b194dca3142
treef2a79f25d6633ebc1a1d5387bd172db8437f95b1
parent2c78a79ec7fc0b3729e9f16214cf8e08e4664a0b
x86: Fix the mystery of printch() during 64-bit boot

At present in arch_setup_gd() it calls printch(' ') at the end which
has been a mystery for a long time as without such call the 64-bit
U-Boot just does not boot at all.

In fact this is due to the bug that board_init_f() was called with
boot_flags not being set. Hence whatever value being there in the
rdi register becomes the boot_flags if without such magic call.
With a printch(' ') call the rdi register is initialized as 0x20
and this value seems to be sane enough for the whole boot process.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
arch/x86/cpu/start64.S
arch/x86/cpu/x86_64/cpu.c