diff options
-rw-r--r-- | arch/powerpc/lib/board.c | 2 | ||||
-rw-r--r-- | arch/sparc/lib/board.c | 2 | ||||
-rw-r--r-- | board/hermes/hermes.c | 4 | ||||
-rw-r--r-- | board/pcs440ep/pcs440ep.c | 3 | ||||
-rw-r--r-- | include/bootstage.h | 25 | ||||
-rw-r--r-- | post/post.c | 4 |
6 files changed, 34 insertions, 6 deletions
diff --git a/arch/powerpc/lib/board.c b/arch/powerpc/lib/board.c index 36cfe7d..dca3fd7 100644 --- a/arch/powerpc/lib/board.c +++ b/arch/powerpc/lib/board.c @@ -1064,7 +1064,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/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 29082eb..a828f5c 100644 --- a/include/bootstage.h +++ b/include/bootstage.h @@ -66,6 +66,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 f3830be..9579a94 100644 --- a/post/post.c +++ b/post/post.c @@ -158,7 +158,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); } } } @@ -295,7 +295,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; |