serial: move sbi_dbcn_available to .data section

U-Boot SPL loads the device-tree directly behind main U-Boot overlapping
the .bss section. reserve_fdt() is called in board_init_f() to relocate the
device-tree to a safe location.

Debug UARTs are enabled before board_init_f(). With sbi_dbcn_available in
the .bss section the device-tree is corrupted when _debug_uart_init() is
called in the SBI serial driver. Move the variable to the .data section.

Link: https://bugs.launchpad.net/ubuntu/+source/u-boot/+bug/2054091
Fixes: dfe0837494 ("risc-v: implement DBCN based debug console")
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Tested-by: Aurelien Jarno <aurelien@aurel32.net>
Tested-by: Conor Dooley <conor.dooley@microchip.com>
This commit is contained in:
Heinrich Schuchardt 2024-02-26 17:32:26 +01:00 committed by Leo Yu-Chi Liang
parent 7480282eca
commit 25e7d4bf64

View File

@ -17,7 +17,7 @@ static inline void _debug_uart_putc(int c)
#else
static int sbi_dbcn_available;
static int sbi_dbcn_available __section(".data");
static inline void _debug_uart_init(void)
{