1 // SPDX-License-Identifier: BSD-2-Clause 2 /* 3 * Copyright (c) 2016-2023, Linaro Limited 4 * Copyright (c) 2014-2023, STMicroelectronics International N.V. 5 * Copyright (C) 2022-2023 Nuvoton Ltd. 6 */ 7 8 #include <console.h> 9 #include <drivers/gic.h> 10 #include <drivers/ns16550.h> 11 #include <kernel/boot.h> 12 #include <kernel/linker.h> 13 #include <platform_config.h> 14 #include <trace.h> 15 16 #define COLOR_NORMAL "\x1B[0m" 17 #define COLOR_RED "\x1B[31m" 18 #define COLOR_GREEN "\x1B[32m" 19 #define COLOR_YELLOW "\x1B[33m" 20 #define COLOR_BLUE "\x1B[34m" 21 #define COLOR_MAGENTA "\x1B[35m" 22 #define COLOR_CYAN "\x1B[36m" 23 #define COLOR_WHITE "\x1B[37m" 24 25 static struct ns16550_data console_data __nex_bss; 26 27 register_phys_mem_pgdir(MEM_AREA_IO_SEC, CONSOLE_UART_BASE, UART_REG_SIZE); 28 register_phys_mem_pgdir(MEM_AREA_IO_SEC, GICD_BASE, GIC_DIST_REG_SIZE); 29 register_phys_mem_pgdir(MEM_AREA_IO_SEC, GICC_BASE, GIC_DIST_REG_SIZE); 30 31 register_ddr(DRAM0_BASE, DRAM0_SIZE); 32 33 static void print_version(void) 34 { 35 IMSG(COLOR_MAGENTA); 36 IMSG(">================================================"); 37 IMSG("OP-TEE OS Version %s", core_v_str); 38 IMSG(">================================================"); 39 IMSG(COLOR_NORMAL); 40 } 41 42 void main_init_gic(void) 43 { 44 if (IS_ENABLED(CFG_NPCM_DEBUG)) 45 print_version(); 46 47 gic_init(GICC_BASE, GICD_BASE); 48 } 49 50 void console_init(void) 51 { 52 ns16550_init(&console_data, CONSOLE_UART_BASE, IO_WIDTH_U32, 2); 53 register_serial_console(&console_data.chip); 54 } 55