diff mbox

[U-Boot] board: am335x/mux: Do not hang when encountering a bad EEPROM

Message ID 1478666924-21599-1-git-send-email-mr.nuke.me@gmail.com
State Accepted
Commit c19a28bc65aa27fe143e3c784d4f2e19e08810bf
Delegated to: Tom Rini
Headers show

Commit Message

Alexandru Gagniuc Nov. 9, 2016, 4:48 a.m. UTC
In most cases, the SPL and u-boot.img will be on the same boot media.
Since the SPL was loaded by the boot rom, the pinmux will already have
been configured for this media. This, the board will still be able to
boot successfully, or at least reach the u-boot console, where more
recovery options are available.

I've encountered this on a beaglebone black with a corrupted EEPROM.
Removing this check allowed the board to boot successfully. I've also
seen this on EVM-based boards with an unprogrammed EEPROM. On those
boards, for some reason there were no UART messages. This made it look
as if the SOC was dead.

Remove the hang(), as it is not a fatal error. Also reformat the error
message to be clearer as to the cause. The original message made it
appear as if the wrong binary was being loaded.

Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
---
 board/ti/am335x/mux.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Tom Rini Nov. 11, 2016, 4:05 p.m. UTC | #1
On Tue, Nov 08, 2016 at 08:48:44PM -0800, Alexandru Gagniuc wrote:

> In most cases, the SPL and u-boot.img will be on the same boot media.
> Since the SPL was loaded by the boot rom, the pinmux will already have
> been configured for this media. This, the board will still be able to
> boot successfully, or at least reach the u-boot console, where more
> recovery options are available.
> 
> I've encountered this on a beaglebone black with a corrupted EEPROM.
> Removing this check allowed the board to boot successfully. I've also
> seen this on EVM-based boards with an unprogrammed EEPROM. On those
> boards, for some reason there were no UART messages. This made it look
> as if the SOC was dead.
> 
> Remove the hang(), as it is not a fatal error. Also reformat the error
> message to be clearer as to the cause. The original message made it
> appear as if the wrong binary was being loaded.
> 
> Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>

Reviewed-by: Tom Rini <trini@konsulko.com>
Tom Rini Nov. 13, 2016, 8:58 p.m. UTC | #2
On Tue, Nov 08, 2016 at 08:48:44PM -0800, Alex G. wrote:

> In most cases, the SPL and u-boot.img will be on the same boot media.
> Since the SPL was loaded by the boot rom, the pinmux will already have
> been configured for this media. This, the board will still be able to
> boot successfully, or at least reach the u-boot console, where more
> recovery options are available.
> 
> I've encountered this on a beaglebone black with a corrupted EEPROM.
> Removing this check allowed the board to boot successfully. I've also
> seen this on EVM-based boards with an unprogrammed EEPROM. On those
> boards, for some reason there were no UART messages. This made it look
> as if the SOC was dead.
> 
> Remove the hang(), as it is not a fatal error. Also reformat the error
> message to be clearer as to the cause. The original message made it
> appear as if the wrong binary was being loaded.
> 
> Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
> Reviewed-by: Tom Rini <trini@konsulko.com>

Applied to u-boot/master, thanks!
diff mbox

Patch

diff --git a/board/ti/am335x/mux.c b/board/ti/am335x/mux.c
index 8afa5f9..ad85b3a 100644
--- a/board/ti/am335x/mux.c
+++ b/board/ti/am335x/mux.c
@@ -397,7 +397,7 @@  void enable_board_pin_mux(void)
 		configure_module_pin_mux(rmii1_pin_mux);
 		configure_module_pin_mux(spi0_pin_mux);
 	} else {
-		puts("Unknown board, cannot configure pinmux.");
-		hang();
+		/* Unknown board. We might still be able to boot. */
+		puts("Bad EEPROM or unknown board, cannot configure pinmux.");
 	}
 }