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:
Anson Huang 2019-01-15 14:27:10 +08:00
parent f1ac79642e
commit 2e8ab4f538
3 changed files with 16 additions and 10 deletions

View File

@ -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
*/
@ -16,10 +16,11 @@
#define UTS 0xb4 /* UART Test Register (mx31) */
#define URXD_RX_DATA (0xFF)
.globl console_uart_register
.globl console_uart_init
.globl console_uart_putc
.globl console_uart_getc
.globl console_imx_uart_register
.globl console_imx_uart_init
.globl console_imx_uart_putc
.globl console_imx_uart_getc
.globl console_imx_uart_flush
func console_imx_uart_register
mov x7, x30
@ -32,7 +33,7 @@ func console_imx_uart_register
mov x0, x6
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:
ret x7
@ -82,3 +83,8 @@ getc_error:
mov w0, #-1
ret
endfunc console_imx_uart_getc
func console_imx_uart_flush
mov x0, #0
ret
endfunc console_imx_uart_flush

View File

@ -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
*/
@ -16,7 +16,7 @@ typedef struct {
uintptr_t base;
} 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);
#endif /*__ASSEMBLY__*/

View File

@ -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
*/
@ -87,7 +87,7 @@ void bl31_early_platform_setup2(u_register_t arg0, u_register_t arg1,
#if DEBUG_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);
#endif
/*