/* * Copyright (c) 2018-2020, ARM Limited and Contributors. All rights reserved. * * SPDX-License-Identifier: BSD-3-Clause */ #include #include #include #include #include #ifdef PLAT_a3700 #include #define console_marvell_register console_a3700_register #else #include #define console_marvell_register console_16550_register #endif static console_t marvell_boot_console; static console_t marvell_runtime_console; /******************************************************************************* * Functions that set up the console ******************************************************************************/ /* Initialize the console to provide early debug support */ void marvell_console_boot_init(void) { int rc = console_marvell_register(PLAT_MARVELL_BOOT_UART_BASE, PLAT_MARVELL_BOOT_UART_CLK_IN_HZ, MARVELL_CONSOLE_BAUDRATE, &marvell_boot_console); if (rc == 0) { /* * The crash console doesn't use the multi console API, it uses * the core console functions directly. It is safe to call panic * and let it print debug information. */ panic(); } console_set_scope(&marvell_boot_console, CONSOLE_FLAG_BOOT); } void marvell_console_boot_end(void) { console_flush(); (void)console_unregister(&marvell_boot_console); } /* Initialize the runtime console */ void marvell_console_runtime_init(void) { int rc = console_marvell_register(PLAT_MARVELL_BOOT_UART_BASE, PLAT_MARVELL_BOOT_UART_CLK_IN_HZ, MARVELL_CONSOLE_BAUDRATE, &marvell_runtime_console); if (rc == 0) panic(); console_set_scope(&marvell_runtime_console, CONSOLE_FLAG_RUNTIME); } void marvell_console_runtime_end(void) { console_flush(); (void)console_unregister(&marvell_runtime_console); }