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:
Masahiro Yamada 2015-01-14 17:07:05 +09:00 committed by Simon Glass
parent 5468461d1e
commit 0365ffcc0b
5 changed files with 46 additions and 24 deletions

View file

@ -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

View file

@ -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
View 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();
}

View file

@ -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 */

View file

@ -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 */