xref: /rk3399_ARM-atf/plat/nxp/s32/s32g274ardb2/plat_console.c (revision 624ffe51eabc1d00bb46c8bfadb4b229d5b2f5a9)
18b81a39eSGhennadi Procopciuc /*
28b81a39eSGhennadi Procopciuc  * Copyright 2024 NXP
38b81a39eSGhennadi Procopciuc  *
48b81a39eSGhennadi Procopciuc  * SPDX-License-Identifier: BSD-3-Clause
58b81a39eSGhennadi Procopciuc  */
68b81a39eSGhennadi Procopciuc 
78b81a39eSGhennadi Procopciuc #include <common/debug.h>
8*a1e07b39SGhennadi Procopciuc #include <lib/xlat_tables/xlat_tables_v2.h>
98b81a39eSGhennadi Procopciuc #include <linflex.h>
108b81a39eSGhennadi Procopciuc #include <plat_console.h>
118b81a39eSGhennadi Procopciuc #include <platform_def.h>
128b81a39eSGhennadi Procopciuc 
console_s32g2_register(void)138b81a39eSGhennadi Procopciuc void console_s32g2_register(void)
148b81a39eSGhennadi Procopciuc {
15bf012960SGhennadi Procopciuc 	static console_t s32g2_console = {
16bf012960SGhennadi Procopciuc 		.next = NULL,
17bf012960SGhennadi Procopciuc 		.flags = 0u,
18bf012960SGhennadi Procopciuc 	};
198b81a39eSGhennadi Procopciuc 	int ret;
208b81a39eSGhennadi Procopciuc 
21*a1e07b39SGhennadi Procopciuc 	ret = mmap_add_dynamic_region(UART_BASE, UART_BASE, PAGE_SIZE,
22*a1e07b39SGhennadi Procopciuc 				      MT_DEVICE | MT_RW | MT_SECURE);
23*a1e07b39SGhennadi Procopciuc 	if (ret != 0) {
24*a1e07b39SGhennadi Procopciuc 		panic();
25*a1e07b39SGhennadi Procopciuc 	}
26*a1e07b39SGhennadi Procopciuc 
278b81a39eSGhennadi Procopciuc 	ret = console_linflex_register(UART_BASE, UART_CLOCK_HZ,
288b81a39eSGhennadi Procopciuc 				       UART_BAUDRATE, &s32g2_console);
298b81a39eSGhennadi Procopciuc 	if (ret == 0) {
308b81a39eSGhennadi Procopciuc 		panic();
318b81a39eSGhennadi Procopciuc 	}
328b81a39eSGhennadi Procopciuc 
338b81a39eSGhennadi Procopciuc 	console_set_scope(&s32g2_console,
348b81a39eSGhennadi Procopciuc 			  CONSOLE_FLAG_BOOT | CONSOLE_FLAG_CRASH |
358b81a39eSGhennadi Procopciuc 			  CONSOLE_FLAG_TRANSLATE_CRLF);
368b81a39eSGhennadi Procopciuc }
37