fdt: Swap the signature for board_fdt_blob_setup()
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>
diff --git a/board/andestech/ae350/ae350.c b/board/andestech/ae350/ae350.c
index 5ae5bae..1d9d4a9 100644
--- a/board/andestech/ae350/ae350.c
+++ b/board/andestech/ae350/ae350.c
@@ -79,21 +79,24 @@
}
#define ANDES_HW_DTB_ADDRESS 0xF2000000
-void *board_fdt_blob_setup(int *err)
+int board_fdt_blob_setup(void **fdtp)
{
- *err = 0;
-
if (IS_ENABLED(CONFIG_OF_SEPARATE) || IS_ENABLED(CONFIG_OF_BOARD)) {
- if (fdt_magic((uintptr_t)gd->arch.firmware_fdt_addr) == FDT_MAGIC)
- return (void *)(ulong)gd->arch.firmware_fdt_addr;
+ if (fdt_magic((uintptr_t)gd->arch.firmware_fdt_addr) ==
+ FDT_MAGIC) {
+ *fdtp = (void *)(ulong)gd->arch.firmware_fdt_addr;
+
+ return 0;
+ }
}
- if (fdt_magic(CONFIG_SYS_FDT_BASE) == FDT_MAGIC)
- return (void *)CONFIG_SYS_FDT_BASE;
- return (void *)ANDES_HW_DTB_ADDRESS;
+ if (fdt_magic(CONFIG_SYS_FDT_BASE) == FDT_MAGIC) {
+ *fdtp = (void *)CONFIG_SYS_FDT_BASE;
+
+ return 0;
+ }
- *err = -EINVAL;
- return NULL;
+ return -EINVAL;
}
#ifdef CONFIG_SPL_BOARD_INIT