diff --git a/arch/arm/include/asm/global_data.h b/arch/arm/include/asm/global_data.h index 1264d3028f..fac98d559a 100644 --- a/arch/arm/include/asm/global_data.h +++ b/arch/arm/include/asm/global_data.h @@ -80,6 +80,7 @@ typedef struct global_data { char env_buf[32]; /* buffer for getenv() before reloc. */ #if defined(CONFIG_POST) || defined(CONFIG_LOGBUFFER) unsigned long post_log_word; /* Record POST activities */ + unsigned long post_log_res; /* success of POST test */ unsigned long post_init_f_time; /* When post_init_f started */ #endif } gd_t; diff --git a/arch/blackfin/include/asm/global_data.h b/arch/blackfin/include/asm/global_data.h index f7aa71113d..67aa30f04c 100644 --- a/arch/blackfin/include/asm/global_data.h +++ b/arch/blackfin/include/asm/global_data.h @@ -53,6 +53,7 @@ typedef struct global_data { unsigned long env_valid; /* Checksum of Environment valid? */ #if defined(CONFIG_POST) || defined(CONFIG_LOGBUFFER) unsigned long post_log_word; /* Record POST activities */ + unsigned long post_log_res; /* success of POST test */ unsigned long post_init_f_time; /* When post_init_f started */ #endif diff --git a/arch/nios2/include/asm/global_data.h b/arch/nios2/include/asm/global_data.h index d9f06645a3..4b86fbdacf 100644 --- a/arch/nios2/include/asm/global_data.h +++ b/arch/nios2/include/asm/global_data.h @@ -37,6 +37,7 @@ typedef struct global_data { unsigned long env_valid; /* Checksum of Environment valid */ #if defined(CONFIG_POST) || defined(CONFIG_LOGBUFFER) unsigned long post_log_word; /* Record POST activities */ + unsigned long post_log_res; /* success of POST test */ unsigned long post_init_f_time; /* When post_init_f started */ #endif void **jt; /* Standalone app jump table */ diff --git a/arch/powerpc/include/asm/global_data.h b/arch/powerpc/include/asm/global_data.h index 7fcaf384ed..01f1d4acba 100644 --- a/arch/powerpc/include/asm/global_data.h +++ b/arch/powerpc/include/asm/global_data.h @@ -163,6 +163,7 @@ typedef struct global_data { #endif #if defined(CONFIG_POST) || defined(CONFIG_LOGBUFFER) unsigned long post_log_word; /* Record POST activities */ + unsigned long post_log_res; /* success of POST test */ unsigned long post_init_f_time; /* When post_init_f started */ #endif #ifdef CONFIG_BOARD_TYPES diff --git a/arch/sparc/include/asm/global_data.h b/arch/sparc/include/asm/global_data.h index a1e4b44aac..613e2d8e0c 100644 --- a/arch/sparc/include/asm/global_data.h +++ b/arch/sparc/include/asm/global_data.h @@ -61,6 +61,7 @@ typedef struct global_data { #endif #if defined(CONFIG_POST) || defined(CONFIG_LOGBUFFER) unsigned long post_log_word; /* Record POST activities */ + unsigned long post_log_res; /* success of POST test */ unsigned long post_init_f_time; /* When post_init_f started */ #endif #ifdef CONFIG_BOARD_TYPES diff --git a/post/post.c b/post/post.c index 852d6a5dab..61acf8d5bb 100644 --- a/post/post.c +++ b/post/post.c @@ -121,6 +121,7 @@ void post_bootmode_init (void) /* Reset activity record */ gd->post_log_word = 0; + gd->post_log_res = 0; } int post_bootmode_get (unsigned int *last_test) @@ -144,12 +145,12 @@ int post_bootmode_get (unsigned int *last_test) /* POST tests run before relocation only mark status bits .... */ static void post_log_mark_start ( unsigned long testid ) { - gd->post_log_word |= (testid)<<16; + gd->post_log_word |= testid; } static void post_log_mark_succ ( unsigned long testid ) { - gd->post_log_word |= testid; + gd->post_log_res |= testid; } /* ... and the messages are output once we are relocated */ @@ -158,9 +159,9 @@ void post_output_backlog ( void ) int j; for (j = 0; j < post_list_size; j++) { - if (gd->post_log_word & (post_list[j].testid<<16)) { + if (gd->post_log_word & (post_list[j].testid)) { post_log ("POST %s ", post_list[j].cmd); - if (gd->post_log_word & post_list[j].testid) + if (gd->post_log_res & post_list[j].testid) post_log ("PASSED\n"); else { post_log ("FAILED\n");