Signed-off-by: Simon Glass <s...@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 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 25d9586..9764e1d 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;
-- 
1.7.7.3

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to