xref: /arm-trusted-firmware/plat/amlogic/common/aml_console.c (revision 91f16700b400a8c0651d24a598fc48ee2997a0d7)
1*91f16700Schasinglulu /*
2*91f16700Schasinglulu  * Copyright (c) 2019, Carlo Caione <ccaione@baylibre.com>
3*91f16700Schasinglulu  *
4*91f16700Schasinglulu  * SPDX-License-Identifier: BSD-3-Clause
5*91f16700Schasinglulu  */
6*91f16700Schasinglulu 
7*91f16700Schasinglulu #include <common/debug.h>
8*91f16700Schasinglulu #include <meson_console.h>
9*91f16700Schasinglulu #include <platform_def.h>
10*91f16700Schasinglulu 
11*91f16700Schasinglulu /*******************************************************************************
12*91f16700Schasinglulu  * Function that sets up the console
13*91f16700Schasinglulu  ******************************************************************************/
14*91f16700Schasinglulu static console_t aml_console;
15*91f16700Schasinglulu 
16*91f16700Schasinglulu void aml_console_init(void)
17*91f16700Schasinglulu {
18*91f16700Schasinglulu 	int rc = console_meson_register(AML_UART0_AO_BASE,
19*91f16700Schasinglulu 					AML_UART0_AO_CLK_IN_HZ,
20*91f16700Schasinglulu 					AML_UART_BAUDRATE,
21*91f16700Schasinglulu 					&aml_console);
22*91f16700Schasinglulu 	if (rc == 0) {
23*91f16700Schasinglulu 		/*
24*91f16700Schasinglulu 		 * The crash console doesn't use the multi console API, it uses
25*91f16700Schasinglulu 		 * the core console functions directly. It is safe to call panic
26*91f16700Schasinglulu 		 * and let it print debug information.
27*91f16700Schasinglulu 		 */
28*91f16700Schasinglulu 		panic();
29*91f16700Schasinglulu 	}
30*91f16700Schasinglulu 
31*91f16700Schasinglulu 	console_set_scope(&aml_console,
32*91f16700Schasinglulu 			  CONSOLE_FLAG_BOOT | CONSOLE_FLAG_RUNTIME);
33*91f16700Schasinglulu }
34