[PATCH v3 07/17] board_f: Introduce arch_setup_bdinfo initcall
Ovidiu Panait
ovidiu.panait at windriver.com
Mon Jul 20 16:13:57 CEST 2020
Certain architectures (ppc, mips, sh, m68k) use setup board_part1 and
setup_board_part2 calls during pre-relocation init to populate gd->bd
boardinfo fields. This makes the generic init sequence cluttered with
arch-specific ifdefs.
In order to clean these arch-specific sequences from generic init,
introduce arch_setup_bdinfo weak initcall so that everyone can define their
own bdinfo setup routines.
Reviewed-by: Simon Glass <sjg at chromium.org>
Signed-off-by: Ovidiu Panait <ovidiu.panait at windriver.com>
---
common/board_f.c | 7 ++++++-
include/init.h | 12 ++++++++++++
2 files changed, 18 insertions(+), 1 deletion(-)
diff --git a/common/board_f.c b/common/board_f.c
index 72446f6da5..4356431488 100644
--- a/common/board_f.c
+++ b/common/board_f.c
@@ -598,11 +598,16 @@ static int display_new_sp(void)
return 0;
}
-int setup_bdinfo(void)
+__weak int arch_setup_bdinfo(void)
{
return 0;
}
+int setup_bdinfo(void)
+{
+ return arch_setup_bdinfo();
+}
+
#if defined(CONFIG_M68K) || defined(CONFIG_MIPS) || defined(CONFIG_PPC) || \
defined(CONFIG_SH)
static int setup_board_part1(void)
diff --git a/include/init.h b/include/init.h
index 2a8c910677..e9354e8fca 100644
--- a/include/init.h
+++ b/include/init.h
@@ -141,6 +141,18 @@ int arch_reserve_stacks(void);
*/
int arch_reserve_mmu(void);
+/**
+ * arch_setup_bdinfo() - Architecture dependent boardinfo setup
+ *
+ * Architecture-specific routine for populating various boardinfo fields of
+ * gd->bd. It is called during the generic board init sequence.
+ *
+ * If an implementation is not provided, it will just be a nop stub.
+ *
+ * Return: 0 if OK
+ */
+int arch_setup_bdinfo(void);
+
/**
* setup_bdinfo() - Generic boardinfo setup
*
--
2.17.1
More information about the U-Boot
mailing list