Browse Source
We query the UART base address and clk frequency in runtime using fconf getter APIs. Change-Id: I5f4e84953be5f384472bf90720b706d45cb86260 Signed-off-by: Madhukar Pappireddy <madhukar.pappireddy@arm.com>pull/1979/head
Madhukar Pappireddy
5 years ago
4 changed files with 59 additions and 0 deletions
@ -0,0 +1,54 @@ |
|||
/*
|
|||
* Copyright (c) 2020, ARM Limited and Contributors. All rights reserved. |
|||
* |
|||
* SPDX-License-Identifier: BSD-3-Clause |
|||
*/ |
|||
|
|||
#include <assert.h> |
|||
|
|||
#include <platform_def.h> |
|||
|
|||
#include <common/debug.h> |
|||
#include <drivers/arm/pl011.h> |
|||
#include <drivers/console.h> |
|||
#include <fconf_hw_config_getter.h> |
|||
#include <plat/arm/common/plat_arm.h> |
|||
|
|||
static console_t fvp_runtime_console; |
|||
|
|||
/* Initialize the runtime console */ |
|||
void arm_console_runtime_init(void) |
|||
{ |
|||
uintptr_t uart_base; |
|||
uint32_t uart_clk; |
|||
|
|||
/*
|
|||
* fconf APIs are not supported for RESET_TO_SP_MIN, RESET_TO_BL31 and |
|||
* BL2_AT_EL3 systems. |
|||
*/ |
|||
#if RESET_TO_SP_MIN || RESET_TO_BL31 || BL2_AT_EL3 |
|||
uart_base = PLAT_ARM_RUN_UART_BASE; |
|||
uart_clk = PLAT_ARM_RUN_UART_CLK_IN_HZ; |
|||
#else |
|||
uart_base = FCONF_GET_PROPERTY(hw_config, uart_serial_config, |
|||
uart_base); |
|||
uart_clk = FCONF_GET_PROPERTY(hw_config, uart_serial_config, |
|||
uart_clk); |
|||
#endif |
|||
|
|||
int rc = console_pl011_register(uart_base, uart_clk, |
|||
ARM_CONSOLE_BAUDRATE, |
|||
&fvp_runtime_console); |
|||
|
|||
if (rc == 0) { |
|||
panic(); |
|||
} |
|||
|
|||
console_set_scope(&fvp_runtime_console, CONSOLE_FLAG_RUNTIME); |
|||
} |
|||
|
|||
void arm_console_runtime_end(void) |
|||
{ |
|||
(void)console_flush(); |
|||
(void)console_unregister(&fvp_runtime_console); |
|||
} |
Loading…
Reference in new issue