Commit 2e8ab4f5 authored by Anson Huang's avatar Anson Huang
Browse files

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: default avatarAnson Huang <Anson.Huang@nxp.com>
parent f1ac7964
/*
* 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
/*
* 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__*/
......
/*
* 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
/*
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment