mirror of
https://github.com/u-boot/u-boot.git
synced 2025-05-04 02:32:32 +00:00

This returns a devicetree and updates a parameter with an error code. Swap it, since this fits better with the way U-Boot normally works. It also (more easily) allows leaving the existing pointer unchanged. No yaks were harmed in this change, but there is a very small code-size reduction. For sifive, the OF_BOARD option must be set for the function to be called, so there is no point in checking it again. Also OF_SEPARATE is defined always. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Matthias Brugger <mbrugger@suse.com> Reviewed-by: Patrice Chotard <patrice.chotard@foss.st.com> [trini: Update total_compute] Signed-off-by: Tom Rini <trini@konsulko.com>
38 lines
907 B
C
38 lines
907 B
C
// SPDX-License-Identifier: GPL-2.0+ OR BSD-3-Clause
|
|
/*
|
|
* Copyright (C) 2019, STMicroelectronics - All Rights Reserved
|
|
*/
|
|
|
|
#define LOG_CATEGORY LOGC_ARCH
|
|
|
|
#include <config.h>
|
|
#include <errno.h>
|
|
#include <log.h>
|
|
#include <linux/libfdt.h>
|
|
#include <asm/arch/sys_proto.h>
|
|
#include <asm/sections.h>
|
|
#include <asm/system.h>
|
|
|
|
/*
|
|
* Use the saved FDT address provided by TF-A at boot time (NT_FW_CONFIG =
|
|
* Non Trusted Firmware configuration file) when the pointer is valid
|
|
*/
|
|
int board_fdt_blob_setup(void **fdtp)
|
|
{
|
|
unsigned long nt_fw_dtb = get_stm32mp_bl2_dtb();
|
|
|
|
log_debug("%s: nt_fw_dtb=%lx\n", __func__, nt_fw_dtb);
|
|
|
|
/* use external device tree only if address is valid */
|
|
if (nt_fw_dtb < STM32_DDR_BASE ||
|
|
fdt_magic(nt_fw_dtb) != FDT_MAGIC) {
|
|
log_debug("DTB not found.\n");
|
|
log_debug("fall back to builtin DTB, %p\n", _end);
|
|
|
|
return -EEXIST;
|
|
}
|
|
|
|
*fdtp = (void *)nt_fw_dtb;
|
|
|
|
return 0;
|
|
}
|