• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2018, ARM Limited and Contributors. All rights reserved.
3  *
4  * SPDX-License-Identifier: BSD-3-Clause
5  */
6 #include <assert.h>
7 
8 #include <platform_def.h>
9 
10 #include <common/debug.h>
11 #include <drivers/console.h>
12 
13 #include <plat_marvell.h>
14 
15 #ifdef PLAT_a3700
16 #include <drivers/marvell/uart/a3700_console.h>
17 
18 static console_a3700_t marvell_boot_console;
19 static console_a3700_t marvell_runtime_console;
20 #else
21 #include <drivers/ti/uart/uart_16550.h>
22 
23 static console_16550_t marvell_boot_console;
24 static console_16550_t marvell_runtime_console;
25 #endif
26 
27 /*******************************************************************************
28  * Functions that set up the console
29  ******************************************************************************/
30 
31 /* Initialize the console to provide early debug support */
marvell_console_boot_init(void)32 void marvell_console_boot_init(void)
33 {
34 	int rc =
35 #ifdef PLAT_a3700
36 	console_a3700_register(
37 #else
38 	console_16550_register(
39 #endif
40 				PLAT_MARVELL_BOOT_UART_BASE,
41 				PLAT_MARVELL_BOOT_UART_CLK_IN_HZ,
42 				MARVELL_CONSOLE_BAUDRATE,
43 				&marvell_boot_console);
44 	if (rc == 0) {
45 		/*
46 		 * The crash console doesn't use the multi console API, it uses
47 		 * the core console functions directly. It is safe to call panic
48 		 * and let it print debug information.
49 		 */
50 		panic();
51 	}
52 
53 	console_set_scope(&marvell_boot_console.console,
54 			  CONSOLE_FLAG_BOOT);
55 }
56 
marvell_console_boot_end(void)57 void marvell_console_boot_end(void)
58 {
59 	(void)console_flush();
60 
61 	(void)console_unregister(&marvell_boot_console.console);
62 }
63 
64 /* Initialize the runtime console */
marvell_console_runtime_init(void)65 void marvell_console_runtime_init(void)
66 {
67 	int rc =
68 #ifdef PLAT_a3700
69 	console_a3700_register(
70 #else
71 	console_16550_register(
72 #endif
73 				PLAT_MARVELL_BOOT_UART_BASE,
74 				PLAT_MARVELL_BOOT_UART_CLK_IN_HZ,
75 				MARVELL_CONSOLE_BAUDRATE,
76 				&marvell_runtime_console);
77 	if (rc == 0)
78 		panic();
79 
80 	console_set_scope(&marvell_runtime_console.console,
81 			  CONSOLE_FLAG_RUNTIME);
82 }
83 
marvell_console_runtime_end(void)84 void marvell_console_runtime_end(void)
85 {
86 	(void)console_flush();
87 
88 	(void)console_unregister(&marvell_runtime_console.console);
89 }
90