mirror of
https://github.com/ARM-software/arm-trusted-firmware.git
synced 2025-05-03 17:38:39 +00:00
sp_min: Implement sp_min_plat_runtime_setup()
On ARM platforms before exiting from SP_MIN ensure that the default console is switched to the runtime serial port. Change-Id: I0ca0d42cc47e345d56179eac16aa3d6712767c9b Signed-off-by: Dimitris Papastamos <dimitris.papastamos@arm.com>
This commit is contained in:
parent
3705cd47b2
commit
21568304ef
7 changed files with 44 additions and 3 deletions
|
@ -176,6 +176,12 @@ void sp_min_main(void)
|
||||||
* corresponding to the desired security state after the next ERET.
|
* corresponding to the desired security state after the next ERET.
|
||||||
*/
|
*/
|
||||||
sp_min_prepare_next_image_entry();
|
sp_min_prepare_next_image_entry();
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Perform any platform specific runtime setup prior to cold boot exit
|
||||||
|
* from SP_MIN.
|
||||||
|
*/
|
||||||
|
sp_min_plat_runtime_setup();
|
||||||
}
|
}
|
||||||
|
|
||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2016, ARM Limited and Contributors. All rights reserved.
|
* Copyright (c) 2016-2017, ARM Limited and Contributors. All rights reserved.
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: BSD-3-Clause
|
* SPDX-License-Identifier: BSD-3-Clause
|
||||||
*/
|
*/
|
||||||
|
@ -12,8 +12,9 @@
|
||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
void sp_min_early_platform_setup(void *from_bl2,
|
void sp_min_early_platform_setup(void *from_bl2,
|
||||||
void *plat_params_from_bl2);
|
void *plat_params_from_bl2);
|
||||||
void sp_min_plat_arch_setup(void);
|
|
||||||
void sp_min_platform_setup(void);
|
void sp_min_platform_setup(void);
|
||||||
|
void sp_min_plat_runtime_setup(void);
|
||||||
|
void sp_min_plat_arch_setup(void);
|
||||||
entry_point_info_t *sp_min_plat_get_bl33_ep_info(void);
|
entry_point_info_t *sp_min_plat_get_bl33_ep_info(void);
|
||||||
|
|
||||||
#endif /* __PLATFORM_SP_MIN_H__ */
|
#endif /* __PLATFORM_SP_MIN_H__ */
|
||||||
|
|
|
@ -54,6 +54,9 @@
|
||||||
#define PLAT_ARM_BL31_RUN_UART_BASE SOC_CSS_UART1_BASE
|
#define PLAT_ARM_BL31_RUN_UART_BASE SOC_CSS_UART1_BASE
|
||||||
#define PLAT_ARM_BL31_RUN_UART_CLK_IN_HZ SOC_CSS_UART1_CLK_IN_HZ
|
#define PLAT_ARM_BL31_RUN_UART_CLK_IN_HZ SOC_CSS_UART1_CLK_IN_HZ
|
||||||
|
|
||||||
|
#define PLAT_ARM_SP_MIN_RUN_UART_BASE SOC_CSS_UART1_BASE
|
||||||
|
#define PLAT_ARM_SP_MIN_RUN_UART_CLK_IN_HZ SOC_CSS_UART1_CLK_IN_HZ
|
||||||
|
|
||||||
#define PLAT_ARM_CRASH_UART_BASE PLAT_ARM_BL31_RUN_UART_BASE
|
#define PLAT_ARM_CRASH_UART_BASE PLAT_ARM_BL31_RUN_UART_BASE
|
||||||
#define PLAT_ARM_CRASH_UART_CLK_IN_HZ PLAT_ARM_BL31_RUN_UART_CLK_IN_HZ
|
#define PLAT_ARM_CRASH_UART_CLK_IN_HZ PLAT_ARM_BL31_RUN_UART_CLK_IN_HZ
|
||||||
|
|
||||||
|
|
|
@ -163,6 +163,7 @@ void arm_tsp_early_platform_setup(void);
|
||||||
/* SP_MIN utility functions */
|
/* SP_MIN utility functions */
|
||||||
void arm_sp_min_early_platform_setup(void *from_bl2,
|
void arm_sp_min_early_platform_setup(void *from_bl2,
|
||||||
void *plat_params_from_bl2);
|
void *plat_params_from_bl2);
|
||||||
|
void arm_sp_min_plat_runtime_setup(void);
|
||||||
|
|
||||||
/* FIP TOC validity check */
|
/* FIP TOC validity check */
|
||||||
int arm_io_is_toc_valid(void);
|
int arm_io_is_toc_valid(void);
|
||||||
|
|
|
@ -56,6 +56,9 @@
|
||||||
#define PLAT_ARM_BL31_RUN_UART_BASE V2M_IOFPGA_UART1_BASE
|
#define PLAT_ARM_BL31_RUN_UART_BASE V2M_IOFPGA_UART1_BASE
|
||||||
#define PLAT_ARM_BL31_RUN_UART_CLK_IN_HZ V2M_IOFPGA_UART1_CLK_IN_HZ
|
#define PLAT_ARM_BL31_RUN_UART_CLK_IN_HZ V2M_IOFPGA_UART1_CLK_IN_HZ
|
||||||
|
|
||||||
|
#define PLAT_ARM_SP_MIN_RUN_UART_BASE V2M_IOFPGA_UART1_BASE
|
||||||
|
#define PLAT_ARM_SP_MIN_RUN_UART_CLK_IN_HZ V2M_IOFPGA_UART1_CLK_IN_HZ
|
||||||
|
|
||||||
#define PLAT_ARM_CRASH_UART_BASE PLAT_ARM_BL31_RUN_UART_BASE
|
#define PLAT_ARM_CRASH_UART_BASE PLAT_ARM_BL31_RUN_UART_BASE
|
||||||
#define PLAT_ARM_CRASH_UART_CLK_IN_HZ PLAT_ARM_BL31_RUN_UART_CLK_IN_HZ
|
#define PLAT_ARM_CRASH_UART_CLK_IN_HZ PLAT_ARM_BL31_RUN_UART_CLK_IN_HZ
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2016, ARM Limited and Contributors. All rights reserved.
|
* Copyright (c) 2016-2017, ARM Limited and Contributors. All rights reserved.
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: BSD-3-Clause
|
* SPDX-License-Identifier: BSD-3-Clause
|
||||||
*/
|
*/
|
||||||
|
@ -127,6 +127,17 @@ void sp_min_early_platform_setup(void *from_bl2,
|
||||||
plat_arm_interconnect_enter_coherency();
|
plat_arm_interconnect_enter_coherency();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*******************************************************************************
|
||||||
|
* Perform any SP_MIN platform runtime setup prior to SP_MIN exit.
|
||||||
|
* Common to ARM standard platforms.
|
||||||
|
******************************************************************************/
|
||||||
|
void arm_sp_min_plat_runtime_setup(void)
|
||||||
|
{
|
||||||
|
/* Initialize the runtime console */
|
||||||
|
console_init(PLAT_ARM_SP_MIN_RUN_UART_BASE,
|
||||||
|
PLAT_ARM_SP_MIN_RUN_UART_CLK_IN_HZ, ARM_CONSOLE_BAUDRATE);
|
||||||
|
}
|
||||||
|
|
||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
* Perform platform specific setup for SP_MIN
|
* Perform platform specific setup for SP_MIN
|
||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
|
@ -155,6 +166,11 @@ void sp_min_platform_setup(void)
|
||||||
plat_arm_pwrc_setup();
|
plat_arm_pwrc_setup();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void sp_min_plat_runtime_setup(void)
|
||||||
|
{
|
||||||
|
arm_sp_min_plat_runtime_setup();
|
||||||
|
}
|
||||||
|
|
||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
* Perform the very early platform specific architectural setup here. At the
|
* Perform the very early platform specific architectural setup here. At the
|
||||||
* moment this only initializes the MMU
|
* moment this only initializes the MMU
|
||||||
|
|
|
@ -4,6 +4,7 @@
|
||||||
* SPDX-License-Identifier: BSD-3-Clause
|
* SPDX-License-Identifier: BSD-3-Clause
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include <console.h>
|
||||||
#include <platform.h>
|
#include <platform.h>
|
||||||
#include <xlat_mmu_helpers.h>
|
#include <xlat_mmu_helpers.h>
|
||||||
|
|
||||||
|
@ -13,8 +14,18 @@
|
||||||
* platforms but may also be overridden by a platform if required.
|
* platforms but may also be overridden by a platform if required.
|
||||||
*/
|
*/
|
||||||
#pragma weak bl32_plat_enable_mmu
|
#pragma weak bl32_plat_enable_mmu
|
||||||
|
#pragma weak sp_min_plat_runtime_setup
|
||||||
|
|
||||||
void bl32_plat_enable_mmu(uint32_t flags)
|
void bl32_plat_enable_mmu(uint32_t flags)
|
||||||
{
|
{
|
||||||
enable_mmu_secure(flags);
|
enable_mmu_secure(flags);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void sp_min_plat_runtime_setup(void)
|
||||||
|
{
|
||||||
|
/*
|
||||||
|
* Finish the use of console driver in SP_MIN so that any runtime logs
|
||||||
|
* from SP_MIN will be suppressed.
|
||||||
|
*/
|
||||||
|
console_uninit();
|
||||||
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue