diff mbox

[U-Boot,v2] generic-board: show model name in board_init_f() too

Message ID 1421222825-9696-1-git-send-email-yamada.m@jp.panasonic.com
State Accepted
Delegated to: Simon Glass
Headers show

Commit Message

Masahiro Yamada Jan. 14, 2015, 8:07 a.m. UTC
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>
---

Changes in v2:
  - include <libfdt.h> from common/board_info.c to fix warnings

 common/Makefile     |  2 ++
 common/board_f.c    |  2 +-
 common/board_info.c | 35 +++++++++++++++++++++++++++++++++++
 common/board_r.c    | 18 +-----------------
 include/common.h    | 13 +++++++------
 5 files changed, 46 insertions(+), 24 deletions(-)
 create mode 100644 common/board_info.c

Comments

Simon Glass Jan. 14, 2015, 11:05 p.m. UTC | #1
On 14 January 2015 at 01:07, Masahiro Yamada <yamada.m@jp.panasonic.com> wrote:
> 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>
> ---
>
> Changes in v2:
>   - include <libfdt.h> from common/board_info.c to fix warnings
>
>  common/Makefile     |  2 ++
>  common/board_f.c    |  2 +-
>  common/board_info.c | 35 +++++++++++++++++++++++++++++++++++
>  common/board_r.c    | 18 +-----------------
>  include/common.h    | 13 +++++++------
>  5 files changed, 46 insertions(+), 24 deletions(-)
>  create mode 100644 common/board_info.c

Acked-by: Simon Glass <sjg@chromium.org>
Simon Glass Jan. 15, 2015, 2:38 p.m. UTC | #2
On 14 January 2015 at 16:05, Simon Glass <sjg@chromium.org> wrote:
> On 14 January 2015 at 01:07, Masahiro Yamada <yamada.m@jp.panasonic.com> wrote:
>> 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>
>> ---
>>
>> Changes in v2:
>>   - include <libfdt.h> from common/board_info.c to fix warnings
>>
>>  common/Makefile     |  2 ++
>>  common/board_f.c    |  2 +-
>>  common/board_info.c | 35 +++++++++++++++++++++++++++++++++++
>>  common/board_r.c    | 18 +-----------------
>>  include/common.h    | 13 +++++++------
>>  5 files changed, 46 insertions(+), 24 deletions(-)
>>  create mode 100644 common/board_info.c
>
> Acked-by: Simon Glass <sjg@chromium.org>

Applied to u-boot-dm, thanks!
diff mbox

Patch

diff --git a/common/Makefile b/common/Makefile
index c668a2f..2ac45b8 100644
--- a/common/Makefile
+++ b/common/Makefile
@@ -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
diff --git a/common/board_f.c b/common/board_f.c
index 3a4b32c..b029a77 100644
--- a/common/board_f.c
+++ b/common/board_f.c
@@ -888,7 +888,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)
diff --git a/common/board_info.c b/common/board_info.c
new file mode 100644
index 0000000..42d0641
--- /dev/null
+++ b/common/board_info.c
@@ -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();
+}
diff --git a/common/board_r.c b/common/board_r.c
index a301cc2..68a9448 100644
--- a/common/board_r.c
+++ b/common/board_r.c
@@ -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 */
diff --git a/include/common.h b/include/common.h
index 29350e4..4e4fd7d 100644
--- a/include/common.h
+++ b/include/common.h
@@ -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 */