generic-board: show model name in board_init_f() too
The common/board_r.c has show_model_r() to display the model name if the DTB has a "model" property. It sounds useful to have a similar function in common/board_f.c too because most of the boards show their board name before relocation. Instead of implementing the same function in both common/board_f.c and common/board_r.c, let's split it up into common/show_board_info.c. Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com> Acked-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
5468461d1e
commit
0365ffcc0b
@ -27,6 +27,8 @@ endif
|
||||
# boards
|
||||
obj-$(CONFIG_SYS_GENERIC_BOARD) += board_f.o
|
||||
obj-$(CONFIG_SYS_GENERIC_BOARD) += board_r.o
|
||||
obj-$(CONFIG_DISPLAY_BOARDINFO) += board_info.o
|
||||
obj-$(CONFIG_DISPLAY_BOARDINFO_LATE) += board_info.o
|
||||
|
||||
# core command
|
||||
obj-y += cmd_boot.o
|
||||
|
@ -894,7 +894,7 @@ static init_fnc_t init_sequence_f[] = {
|
||||
prt_mpc5xxx_clks,
|
||||
#endif /* CONFIG_MPC5xxx */
|
||||
#if defined(CONFIG_DISPLAY_BOARDINFO)
|
||||
checkboard, /* display board info */
|
||||
show_board_info,
|
||||
#endif
|
||||
INIT_FUNC_WATCHDOG_INIT
|
||||
#if defined(CONFIG_MISC_INIT_F)
|
||||
|
35
common/board_info.c
Normal file
35
common/board_info.c
Normal file
@ -0,0 +1,35 @@
|
||||
/*
|
||||
* SPDX-License-Identifier: GPL-2.0+
|
||||
*/
|
||||
|
||||
#include <common.h>
|
||||
#include <libfdt.h>
|
||||
#include <linux/compiler.h>
|
||||
|
||||
int __weak checkboard(void)
|
||||
{
|
||||
printf("Board: Unknown\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* If the root node of the DTB has a "model" property, show it.
|
||||
* If CONFIG_OF_CONTROL is disabled or the "model" property is missing,
|
||||
* fall back to checkboard().
|
||||
*/
|
||||
int show_board_info(void)
|
||||
{
|
||||
#ifdef CONFIG_OF_CONTROL
|
||||
DECLARE_GLOBAL_DATA_PTR;
|
||||
const char *model;
|
||||
|
||||
model = fdt_getprop(gd->fdt_blob, 0, "model", NULL);
|
||||
|
||||
if (model) {
|
||||
printf("Model: %s\n", model);
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
return checkboard();
|
||||
}
|
@ -476,22 +476,6 @@ static int initr_api(void)
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_DISPLAY_BOARDINFO_LATE
|
||||
static int show_model_r(void)
|
||||
{
|
||||
/* Put this here so it appears on the LCD, now it is ready */
|
||||
# ifdef CONFIG_OF_CONTROL
|
||||
const char *model;
|
||||
|
||||
model = (char *)fdt_getprop(gd->fdt_blob, 0, "model", NULL);
|
||||
printf("Model: %s\n", model ? model : "<unknown>");
|
||||
# else
|
||||
checkboard();
|
||||
# endif
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
/* enable exceptions */
|
||||
#ifdef CONFIG_ARM
|
||||
static int initr_enable_interrupts(void)
|
||||
@ -801,7 +785,7 @@ init_fnc_t init_sequence_r[] = {
|
||||
#endif
|
||||
console_init_r, /* fully init console as a device */
|
||||
#ifdef CONFIG_DISPLAY_BOARDINFO_LATE
|
||||
show_model_r,
|
||||
show_board_info,
|
||||
#endif
|
||||
#ifdef CONFIG_ARCH_MISC_INIT
|
||||
arch_misc_init, /* miscellaneous arch-dependent init */
|
||||
|
@ -228,12 +228,13 @@ int run_command_list(const char *cmd, int len, int flag);
|
||||
extern char console_buffer[];
|
||||
|
||||
/* arch/$(ARCH)/lib/board.c */
|
||||
void board_init_f(ulong);
|
||||
void board_init_r (gd_t *, ulong) __attribute__ ((noreturn));
|
||||
int checkboard (void);
|
||||
int checkflash (void);
|
||||
int checkdram (void);
|
||||
int last_stage_init(void);
|
||||
void board_init_f(ulong);
|
||||
void board_init_r(gd_t *, ulong) __attribute__ ((noreturn));
|
||||
int checkboard(void);
|
||||
int show_board_info(void);
|
||||
int checkflash(void);
|
||||
int checkdram(void);
|
||||
int last_stage_init(void);
|
||||
extern ulong monitor_flash_len;
|
||||
int mac_read_from_eeprom(void);
|
||||
extern u8 __dtb_dt_begin[]; /* embedded device tree blob */
|
||||
|
Loading…
Reference in New Issue
Block a user