Commit e2e3e2b1be703e0c93d0e49cac9a0dd2e1ba8f6e

Authored by Simon Glass
Committed by Albert ARIBAUD
1 parent b2b92f5315

arm: Add CONFIG_DISPLAY_BOARDINFO_LATE to display board info on LCD

This option displays board info after stdio is running, so that it will
appear on the LCD. If it is displayed earlier, the board info will appear
on the serial console but not on the LCD.

Here follows a blow-by-blow description.

1a. Without CONFIG_DISPLAY_BOARDINFO_LATE, on serial:

U-Boot 2011.12-02550-g037e1c5-dirty (Nov 15 2012 - 14:29:42) for SMDK5250

CPU:   S5PC520 @ 1700MHz

Board: Google Snow, rev 0
I2C:   ready
DRAM:  2 GiB Elpida DDR3 @ 800MHz
MMC:   S5P MSHC0: 0, S5P MSHC1: 1
SF: Detected W25Q32 with page size 4 KiB, total 4 MiB
*** Warning - bad CRC, using default environment

In:    mkbp-keyb
Out:   lcd
Err:   lcd
Net:   No ethernet found.
Hit any key to stop autoboot:  0
SMDK5250 #

1b. Without CONFIG_DISPLAY_BOARDINFO_LATE, on LCD (note machine info
is missing):

In:    mkbp-keyb
Out:   lcd
Err:   lcd
Net:   No ethernet found.
Hit any key to stop autoboot:  0
SMDK5250 #

2a. With CONFIG_DISPLAY_BOARDINFO_LATE, on serial:

U-Boot 2011.12-02550-g037e1c5 (Nov 15 2012 - 14:27:40) for SMDK5250

CPU:   S5PC520 @ 1700MHz
I2C:   ready
DRAM:  2 GiB Elpida DDR3 @ 800MHz
MMC:   S5P MSHC0: 0, S5P MSHC1: 1
SF: Detected W25Q32 with page size 4 KiB, total 4 MiB
*** Warning - bad CRC, using default environment

Model: Google Snow
In:    mkbp-keyb
Out:   lcd
Err:   lcd
Net:   No ethernet found.
Hit any key to stop autoboot:  0
SMDK5250 #

2b. With CONFIG_DISPLAY_BOARDINFO_LATE, on LCD (note machine info is present):

Model: Google Snow
In:    mkbp-keyb
Out:   lcd
Err:   lcd
Net:   No ethernet found.
Hit any key to stop autoboot:  0
SMDK5250 #

Since the LCD is all that a typical user sees, it is useful to display
the model there.

We may be able to rearrange things some other way one day, but at
present this seems like a convenient way of getting the required
behaviour.

Signed-off-by: Simon Glass <sjg@chromium.org>

Showing 2 changed files with 24 additions and 0 deletions Side-by-side Diff

... ... @@ -3462,6 +3462,11 @@
3462 3462 when U-Boot starts up. The board function checkboard() is called
3463 3463 to do this.
3464 3464  
  3465 +- CONFIG_DISPLAY_BOARDINFO_LATE
  3466 + Similar to the previous option, but display this information
  3467 + later, once stdio is running and output goes to the LCD, if
  3468 + present.
  3469 +
3465 3470 Low Level (hardware related) configuration options:
3466 3471 ---------------------------------------------------
3467 3472  
arch/arm/lib/board.c
... ... @@ -489,6 +489,16 @@
489 489 #endif
490 490 }
491 491  
  492 +#if defined(CONFIG_DISPLAY_BOARDINFO_LATE) && defined(CONFIG_OF_CONTROL)
  493 +static void display_fdt_model(const void *blob)
  494 +{
  495 + const char *model;
  496 +
  497 + model = (char *)fdt_getprop(blob, 0, "model", NULL);
  498 + printf("Model: %s\n", model ? model : "<unknown>");
  499 +}
  500 +#endif
  501 +
492 502 /************************************************************************
493 503 *
494 504 * This is the next part if the initialization sequence: we are now
... ... @@ -611,6 +621,15 @@
611 621 #endif
612 622  
613 623 console_init_r(); /* fully init console as a device */
  624 +
  625 +#ifdef CONFIG_DISPLAY_BOARDINFO_LATE
  626 +# ifdef CONFIG_OF_CONTROL
  627 + /* Put this here so it appears on the LCD, now it is ready */
  628 + display_fdt_model(gd->fdt_blob);
  629 +# else
  630 + checkboard();
  631 +# endif
  632 +#endif
614 633  
615 634 #if defined(CONFIG_ARCH_MISC_INIT)
616 635 /* miscellaneous arch dependent initialisations */