mirror of
https://github.com/ARM-software/arm-trusted-firmware.git
synced 2025-04-16 09:34:18 +00:00
plat/arm/fvp: populate runtime console parameters dynamically
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>
This commit is contained in:
parent
447870bf0d
commit
12d1343027
4 changed files with 59 additions and 0 deletions
54
plat/arm/board/fvp/fvp_console.c
Normal file
54
plat/arm/board/fvp/fvp_console.c
Normal file
|
@ -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);
|
||||
}
|
|
@ -201,6 +201,7 @@ BL31_SOURCES += drivers/arm/fvp/fvp_pwrc.c \
|
|||
drivers/cfi/v2m/v2m_flash.c \
|
||||
lib/utils/mem_region.c \
|
||||
plat/arm/board/fvp/fvp_bl31_setup.c \
|
||||
plat/arm/board/fvp/fvp_console.c \
|
||||
plat/arm/board/fvp/fvp_pm.c \
|
||||
plat/arm/board/fvp/fvp_topology.c \
|
||||
plat/arm/board/fvp/aarch64/fvp_helpers.S \
|
||||
|
|
|
@ -10,6 +10,7 @@ BL32_SOURCES += drivers/arm/fvp/fvp_pwrc.c \
|
|||
lib/utils/mem_region.c \
|
||||
plat/arm/board/fvp/aarch32/fvp_helpers.S \
|
||||
plat/arm/board/fvp/fvp_pm.c \
|
||||
plat/arm/board/fvp/fvp_console.c \
|
||||
plat/arm/board/fvp/fvp_topology.c \
|
||||
plat/arm/board/fvp/sp_min/fvp_sp_min_setup.c \
|
||||
plat/arm/common/arm_nor_psci_mem_protect.c \
|
||||
|
|
|
@ -13,6 +13,9 @@
|
|||
#include <drivers/console.h>
|
||||
#include <plat/arm/common/plat_arm.h>
|
||||
|
||||
#pragma weak arm_console_runtime_init
|
||||
#pragma weak arm_console_runtime_end
|
||||
|
||||
/*******************************************************************************
|
||||
* Functions that set up the console
|
||||
******************************************************************************/
|
||||
|
|
Loading…
Add table
Reference in a new issue