xref: /optee_os/core/arch/arm/plat-poplar/main.c (revision 55ab8f06a831946a49717446cd2e4495a2b5d659)
1d22ddc7bSVictor Chong /*
2d22ddc7bSVictor Chong  * Copyright (c) 2017, Linaro Limited
3d22ddc7bSVictor Chong  * SPDX-License-Identifier: BSD-2-Clause
4d22ddc7bSVictor Chong  */
5d22ddc7bSVictor Chong 
6d22ddc7bSVictor Chong #include <console.h>
7d22ddc7bSVictor Chong #include <drivers/pl011.h>
8d22ddc7bSVictor Chong #ifdef CFG_PL061
9d22ddc7bSVictor Chong #include <drivers/pl061_gpio.h>
10d22ddc7bSVictor Chong #endif
11d22ddc7bSVictor Chong #include <kernel/panic.h>
12d22ddc7bSVictor Chong #include <mm/tee_pager.h>
13d22ddc7bSVictor Chong #include <mm/core_memprot.h>
14d22ddc7bSVictor Chong #include <platform_config.h>
15d22ddc7bSVictor Chong #include <stdint.h>
16d22ddc7bSVictor Chong 
17d22ddc7bSVictor Chong static struct pl011_data console_data;
18d22ddc7bSVictor Chong 
19a5e82dc7SJerome Forissier register_phys_mem_pgdir(MEM_AREA_IO_NSEC, CONSOLE_UART_BASE, PL011_REG_SIZE);
20d22ddc7bSVictor Chong /* for dynamic shared memory */
21216816c8SEdison Ai register_dynamic_shm(DRAM0_BASE_NSEC, DRAM0_SIZE_NSEC);
22d22ddc7bSVictor Chong 
plat_console_init(void)23*55ab8f06SAlvin Chang void plat_console_init(void)
24d22ddc7bSVictor Chong {
25d22ddc7bSVictor Chong 	pl011_init(&console_data, CONSOLE_UART_BASE,
26d22ddc7bSVictor Chong 		CONSOLE_UART_CLK_IN_HZ, CONSOLE_BAUDRATE);
27d22ddc7bSVictor Chong 	register_serial_console(&console_data.chip);
28d22ddc7bSVictor Chong }
29