Merge "refactor(plat/st): avoid fixed DT address" into integration

This commit is contained in:
Manish Pandey 2021-06-16 23:23:30 +02:00 committed by TrustedFirmware Code Review
commit 5d582ff936
4 changed files with 16 additions and 14 deletions

View File

@ -1,6 +1,6 @@
/*
* Copyright (c) 2020, STMicroelectronics - All Rights Reserved
* Copyright (c) 2017-2019, ARM Limited and Contributors. All rights reserved.
* Copyright (c) 2020-2021, STMicroelectronics - All Rights Reserved
* Copyright (c) 2017-2021, ARM Limited and Contributors. All rights reserved.
*
* SPDX-License-Identifier: BSD-3-Clause
*/
@ -9,6 +9,7 @@
#define STM32MP_DT_H
#include <stdbool.h>
#include <stdint.h>
#define DT_DISABLED U(0)
#define DT_NON_SECURE U(1)
@ -25,7 +26,7 @@ struct dt_node_info {
/*******************************************************************************
* Function and variable prototypes
******************************************************************************/
int dt_open_and_check(void);
int dt_open_and_check(uintptr_t dt_addr);
int fdt_get_address(void **fdt_addr);
bool fdt_check_node(int node);
uint8_t fdt_get_status(int node);

View File

@ -19,20 +19,19 @@
#include <stm32mp_dt.h>
static int fdt_checked;
static void *fdt = (void *)(uintptr_t)STM32MP_DTB_BASE;
static void *fdt;
/*******************************************************************************
* This function checks device tree file with its header.
* Returns 0 on success and a negative FDT error code on failure.
******************************************************************************/
int dt_open_and_check(void)
int dt_open_and_check(uintptr_t dt_addr)
{
int ret = fdt_check_header(fdt);
int ret;
ret = fdt_check_header((void *)dt_addr);
if (ret == 0) {
fdt_checked = 1;
fdt = (void *)dt_addr;
}
return ret;
@ -45,11 +44,13 @@ int dt_open_and_check(void)
******************************************************************************/
int fdt_get_address(void **fdt_addr)
{
if (fdt_checked == 1) {
*fdt_addr = fdt;
if (fdt == NULL) {
return 0;
}
return fdt_checked;
*fdt_addr = fdt;
return 1;
}
/*******************************************************************************

View File

@ -196,7 +196,7 @@ void bl2_el3_plat_arch_setup(void)
configure_mmu();
if (dt_open_and_check() < 0) {
if (dt_open_and_check(STM32MP_DTB_BASE) < 0) {
panic();
}

View File

@ -146,7 +146,7 @@ void sp_min_early_platform_setup2(u_register_t arg0, u_register_t arg1,
bl_params = bl_params->next_params_info;
}
if (dt_open_and_check() < 0) {
if (dt_open_and_check(STM32MP_DTB_BASE) < 0) {
panic();
}