
On Monday 13 May 2013 00:20:15 Sonic Zhang wrote:
Remove blackfin specific implementation of the generic serial API when early print macro is defined.
In BFIN_BOOT_BYPASS mode, don't call generic serial_puts, because early print in bypass mode is running before code binary is relocated to the link address.
the link address of the function doesn't matter. all Blackfin func calls are pcrel based, not absolute address calls. i specifically crafted all of this early serial code so that this does work regardless of the address where the code happens to be executing.
what doesn't work is if you try to use the early serial console with CONFIG_SYS_BFIN_UART (which allows all the serial devices to be selected on the fly). but the header file specifically handles that: #ifndef CONFIG_DEBUG_EARLY_SERIAL # define CONFIG_SYS_BFIN_UART #endif
i guess the problem is that this commit is wrong:
commit 820edc18b5aefa8c82d420f6cba3e13b5631f9b8 Author: Sonic Zhang sonic.zhang@analog.com Date: Fri Nov 30 17:39:32 2012 +0800
blackfin: Correct early serial mess output in BYPASS boot mode.
it shouldn't be messing with the addresses there -mike