[U-Boot] [RFC PATCH v2 06/15] bootstage: Convert progress numbers 20-41 to enums
Simon Glass
sjg at chromium.org
Sat Dec 10 22:07:58 CET 2011
Signed-off-by: Simon Glass <sjg at chromium.org>
---
arch/powerpc/lib/board.c | 2 +-
arch/sparc/lib/board.c | 2 +-
arch/x86/lib/board.c | 18 +++++++++---------
board/hermes/hermes.c | 4 +++-
board/pcs440ep/pcs440ep.c | 3 ++-
include/bootstage.h | 25 +++++++++++++++++++++++++
post/post.c | 4 ++--
7 files changed, 43 insertions(+), 15 deletions(-)
diff --git a/arch/powerpc/lib/board.c b/arch/powerpc/lib/board.c
index b11ec8c..837c82d 100644
--- a/arch/powerpc/lib/board.c
+++ b/arch/powerpc/lib/board.c
@@ -1065,7 +1065,7 @@ void board_init_r(gd_t *id, ulong dest_addr)
void hang(void)
{
puts("### ERROR ### Please RESET the board ###\n");
- show_boot_error(30);
+ show_boot_error(BOOTSTAGE_ID_NEED_RESET);
for (;;)
;
}
diff --git a/arch/sparc/lib/board.c b/arch/sparc/lib/board.c
index fcbc666..770136b 100644
--- a/arch/sparc/lib/board.c
+++ b/arch/sparc/lib/board.c
@@ -426,7 +426,7 @@ void hang(void)
{
puts("### ERROR ### Please RESET the board ###\n");
#ifdef CONFIG_SHOW_BOOT_PROGRESS
- show_boot_error(30);
+ show_boot_error(BOOTSTAGE_ID_NEED_RESET);
#endif
for (;;) ;
}
diff --git a/arch/x86/lib/board.c b/arch/x86/lib/board.c
index d742fec..1f677cc 100644
--- a/arch/x86/lib/board.c
+++ b/arch/x86/lib/board.c
@@ -280,7 +280,7 @@ void board_init_r(gd_t *id, ulong dest_addr)
static gd_t gd_data;
init_fnc_t **init_fnc_ptr;
- show_boot_progress(0x21);
+ show_boot_progress(BOOTSTAGE_ID_BOARD_INIT_R);
/* Global data pointer is now writable */
gd = &gd_data;
@@ -291,7 +291,7 @@ void board_init_r(gd_t *id, ulong dest_addr)
gd->bd = &bd_data;
memset(gd->bd, 0, sizeof(bd_t));
- show_boot_progress(0x22);
+ show_boot_progress(BOOTSTAGE_ID_BOARD_GLOBAL_DATA);
gd->baudrate = CONFIG_BAUDRATE;
@@ -302,7 +302,7 @@ void board_init_r(gd_t *id, ulong dest_addr)
if ((*init_fnc_ptr)() != 0)
hang();
}
- show_boot_progress(0x23);
+ show_boot_progress(BOOTSTAGE_ID_BOARD_INIT_SEQ);
#ifdef CONFIG_SERIAL_MULTI
serial_initialize();
@@ -312,14 +312,14 @@ void board_init_r(gd_t *id, ulong dest_addr)
/* configure available FLASH banks */
size = flash_init();
display_flash_config(size);
- show_boot_progress(0x24);
+ show_boot_progress(BOOTSTAGE_ID_BOARD_FLASH);
#endif
- show_boot_progress(0x25);
+ show_boot_progress(BOOTSTAGE_ID_BOARD_FLASH_37);
/* initialize environment */
env_relocate();
- show_boot_progress(0x26);
+ show_boot_progress(BOOTSTAGE_ID_BOARD_ENV);
#ifdef CONFIG_CMD_NET
@@ -334,7 +334,7 @@ void board_init_r(gd_t *id, ulong dest_addr)
pci_init();
#endif
- show_boot_progress(0x27);
+ show_boot_progress(BOOTSTAGE_ID_BOARD_PCI);
stdio_init();
@@ -363,7 +363,7 @@ void board_init_r(gd_t *id, ulong dest_addr)
/* enable exceptions */
enable_interrupts();
- show_boot_progress(0x28);
+ show_boot_progress(BOOTSTAGE_ID_BOARD_INTERRUPTS);
#ifdef CONFIG_STATUS_LED
status_led_set(STATUS_LED_BOOT, STATUS_LED_BLINKING);
@@ -432,7 +432,7 @@ void board_init_r(gd_t *id, ulong dest_addr)
post_run(NULL, POST_RAM | post_bootmode_get(0));
#endif
- show_boot_progress(0x29);
+ show_boot_progress(BOOTSTAGE_ID_BOARD_DONE);
/* main_loop() can return to retry autoboot, if so just run it again. */
for (;;)
diff --git a/board/hermes/hermes.c b/board/hermes/hermes.c
index 1b40ae8..38bab03 100644
--- a/board/hermes/hermes.c
+++ b/board/hermes/hermes.c
@@ -595,7 +595,9 @@ void show_boot_progress (int status)
{
volatile immap_t *immr = (immap_t *) CONFIG_SYS_IMMR;
- if (status < -32) status = -1; /* let things compatible */
+ /* let things compatible */
+ if (status < -BOOTSTAGE_ID_POST_FAIL_R)
+ status = -1;
status ^= 0x0F;
status = (status & 0x0F) << 14;
immr->im_cpm.cp_pbdat = (immr->im_cpm.cp_pbdat & ~PB_LED_ALL) | status;
diff --git a/board/pcs440ep/pcs440ep.c b/board/pcs440ep/pcs440ep.c
index 118d81c..f67eedd 100644
--- a/board/pcs440ep/pcs440ep.c
+++ b/board/pcs440ep/pcs440ep.c
@@ -97,7 +97,8 @@ static void status_led_blink (void)
void show_boot_progress (int val)
{
/* find all valid Codes for val in README */
- if (val == -30) return;
+ if (val == -BOOTSTAGE_ID_NEED_RESET)
+ return;
if (val < 0) {
/* smthing goes wrong */
status_led_blink ();
diff --git a/include/bootstage.h b/include/bootstage.h
index 8c5a92e..4b8d818 100644
--- a/include/bootstage.h
+++ b/include/bootstage.h
@@ -68,6 +68,31 @@ enum bootstage_id {
BOOTSTAGE_ID_NO_RAMDISK, /* No ram disk found (not an error) */
BOOTSTAGE_ID_RUN_OS = 15, /* Exiting U-Boot, entering OS */
+
+ BOOTSTAGE_ID_NEED_RESET = 30,
+ BOOTSTAGE_ID_POST_FAIL, /* Post failure */
+ BOOTSTAGE_ID_POST_FAIL_R, /* Post failure reported after reloc */
+
+ /*
+ * This set is reported ony by x86, and the meaning is different. In
+ * this case we are reporting completion of a particular stage.
+ * This should probably change in he x86 code (which doesn't report
+ * errors in any case), but discussion this can perhaps wait until we
+ * have a generic board implementation.
+ */
+ BOOTSTAGE_ID_BOARD_INIT_R, /* We have relocated */
+ BOOTSTAGE_ID_BOARD_GLOBAL_DATA, /* Global data is set up */
+
+ BOOTSTAGE_ID_BOARD_INIT_SEQ, /* We completed the init sequence */
+ BOOTSTAGE_ID_BOARD_FLASH, /* We have configured flash banks */
+ BOOTSTAGE_ID_BOARD_FLASH_37, /* In case you didn't hear... */
+ BOOTSTAGE_ID_BOARD_ENV, /* Environment is relocated & ready */
+ BOOTSTAGE_ID_BOARD_PCI, /* PCI is up */
+
+ BOOTSTAGE_ID_BOARD_INTERRUPTS, /* Exceptions / interrupts ready */
+ BOOTSTAGE_ID_BOARD_DONE, /* Board init done, off to main loop */
+ /* ^^^ here ends the x86 sequence */
+
};
/*
diff --git a/post/post.c b/post/post.c
index 1cc3f09..3a91020 100644
--- a/post/post.c
+++ b/post/post.c
@@ -157,7 +157,7 @@ void post_output_backlog(void)
post_log("PASSED\n");
else {
post_log("FAILED\n");
- show_boot_error(31);
+ show_boot_error(BOOTSTAGE_ID_POST_FAIL_R);
}
}
}
@@ -294,7 +294,7 @@ static int post_run_single(struct post_test *test,
} else {
if ((*test->test)(flags) != 0) {
post_log("FAILED\n");
- show_boot_error(32);
+ show_boot_error(BOOTSTAGE_ID_POST_FAIL_R);
show_post_progress(i, POST_AFTER, POST_FAILED);
if (test_flags & POST_CRITICAL)
gd->flags |= GD_FLG_POSTFAIL;
--
1.7.3.1
More information about the U-Boot
mailing list