• Michalis Pappas's avatar
    qemu: don't use C functions for the crash console callbacks · 0e24ea81
    Michalis Pappas authored
    
    Use the console_pl011_core_* functions directly in the crash console
    callbacks.
    
    This bypasses the MULTI_CONSOLE_API for the crash console (UART1), but
    allows using the crash console before the C runtime has been initialized
    (eg to call ASM_ASSERT). This retains backwards compatibility with respect
    to functionality when the old API is used.
    
    Use the MULTI_CONSOLE_API to register UART0 as the boot and runtime
    console.
    
    Fixes ARM-software/tf-issues#572
    Signed-off-by: default avatarMichalis Pappas <mpappas@fastmail.fm>
    0e24ea81
qemu_console.c 722 Bytes
/*
 * Copyright (c) 2015-2018, ARM Limited and Contributors. All rights reserved.
 *
 * SPDX-License-Identifier: BSD-3-Clause
 */
#include <console.h>
#include <pl011.h>
#include <platform_def.h>

#if MULTI_CONSOLE_API
static console_pl011_t console;
#endif /* MULTI_CONSOLE_API */

void qemu_console_init(void)
{
#if MULTI_CONSOLE_API
	(void)console_pl011_register(PLAT_QEMU_BOOT_UART_BASE,
			       PLAT_QEMU_BOOT_UART_CLK_IN_HZ,
			       PLAT_QEMU_CONSOLE_BAUDRATE, &console);

	console_set_scope(&console.console, CONSOLE_FLAG_BOOT |
			  CONSOLE_FLAG_RUNTIME);
#else
	console_init(PLAT_QEMU_BOOT_UART_BASE,
		     PLAT_QEMU_BOOT_UART_CLK_IN_HZ,
		     PLAT_QEMU_CONSOLE_BAUDRATE);
#endif /* MULTI_CONSOLE_API */
}