imx: make imx uart work for debug mode
With DEBUG_CONSOLE enabled, build will fail for imx8mq platform: ./build/imx8mq/release/bl31/imx8mq_bl31_setup.o: In function `bl31_early_platform_setup2': imx8mq_bl31_setup.c:(.text.bl31_early_platform_setup2+0x40): undefined reference to `console_uart_register' Makefile:741: recipe for target 'build/imx8mq/release/bl31/bl31.elf' failed make: *** [build/imx8mq/release/bl31/bl31.elf] Error 1 Besides, the .console_flush callback needs to be added to avoid panic when debug mode is enabled, since the console_flush() will call it without checking whether the function callback is valid. Signed-off-by: Anson Huang <Anson.Huang@nxp.com>
This commit is contained in:
parent
f1ac79642e
commit
2e8ab4f538
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2018, ARM Limited and Contributors. All rights reserved.
|
* Copyright (c) 2018-2019, ARM Limited and Contributors. All rights reserved.
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: BSD-3-Clause
|
* SPDX-License-Identifier: BSD-3-Clause
|
||||||
*/
|
*/
|
||||||
|
@ -16,10 +16,11 @@
|
||||||
#define UTS 0xb4 /* UART Test Register (mx31) */
|
#define UTS 0xb4 /* UART Test Register (mx31) */
|
||||||
#define URXD_RX_DATA (0xFF)
|
#define URXD_RX_DATA (0xFF)
|
||||||
|
|
||||||
.globl console_uart_register
|
.globl console_imx_uart_register
|
||||||
.globl console_uart_init
|
.globl console_imx_uart_init
|
||||||
.globl console_uart_putc
|
.globl console_imx_uart_putc
|
||||||
.globl console_uart_getc
|
.globl console_imx_uart_getc
|
||||||
|
.globl console_imx_uart_flush
|
||||||
|
|
||||||
func console_imx_uart_register
|
func console_imx_uart_register
|
||||||
mov x7, x30
|
mov x7, x30
|
||||||
|
@ -32,7 +33,7 @@ func console_imx_uart_register
|
||||||
|
|
||||||
mov x0, x6
|
mov x0, x6
|
||||||
mov x30, x7
|
mov x30, x7
|
||||||
finish_console_register imx_uart putc=1, getc=1
|
finish_console_register imx_uart putc=1, getc=1, flush=1
|
||||||
|
|
||||||
register_fail:
|
register_fail:
|
||||||
ret x7
|
ret x7
|
||||||
|
@ -82,3 +83,8 @@ getc_error:
|
||||||
mov w0, #-1
|
mov w0, #-1
|
||||||
ret
|
ret
|
||||||
endfunc console_imx_uart_getc
|
endfunc console_imx_uart_getc
|
||||||
|
|
||||||
|
func console_imx_uart_flush
|
||||||
|
mov x0, #0
|
||||||
|
ret
|
||||||
|
endfunc console_imx_uart_flush
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2018, ARM Limited and Contributors. All rights reserved.
|
* Copyright (c) 2018-2019, ARM Limited and Contributors. All rights reserved.
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: BSD-3-Clause
|
* SPDX-License-Identifier: BSD-3-Clause
|
||||||
*/
|
*/
|
||||||
|
@ -16,7 +16,7 @@ typedef struct {
|
||||||
uintptr_t base;
|
uintptr_t base;
|
||||||
} console_uart_t;
|
} console_uart_t;
|
||||||
|
|
||||||
int console_uart_register(uintptr_t baseaddr, uint32_t clock, uint32_t baud,
|
int console_imx_uart_register(uintptr_t baseaddr, uint32_t clock, uint32_t baud,
|
||||||
console_uart_t *console);
|
console_uart_t *console);
|
||||||
#endif /*__ASSEMBLY__*/
|
#endif /*__ASSEMBLY__*/
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2018, ARM Limited and Contributors. All rights reserved.
|
* Copyright (c) 2018-2019, ARM Limited and Contributors. All rights reserved.
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: BSD-3-Clause
|
* SPDX-License-Identifier: BSD-3-Clause
|
||||||
*/
|
*/
|
||||||
|
@ -87,7 +87,7 @@ void bl31_early_platform_setup2(u_register_t arg0, u_register_t arg1,
|
||||||
#if DEBUG_CONSOLE
|
#if DEBUG_CONSOLE
|
||||||
static console_uart_t console;
|
static console_uart_t console;
|
||||||
|
|
||||||
console_uart_register(IMX_BOOT_UART_BASE, IMX_BOOT_UART_CLK_IN_HZ,
|
console_imx_uart_register(IMX_BOOT_UART_BASE, IMX_BOOT_UART_CLK_IN_HZ,
|
||||||
IMX_CONSOLE_BAUDRATE, &console);
|
IMX_CONSOLE_BAUDRATE, &console);
|
||||||
#endif
|
#endif
|
||||||
/*
|
/*
|
||||||
|
|
Loading…
Reference in New Issue