Merge with /home/tur/proj/idmr/u-boot
[oweals/u-boot.git] / common / cmd_log.c
index 534c67e88706b643229e1fa6f2d2defcd5699fa2..042a403026f00fa04b5cadd571ee3246b301d522 100644 (file)
@@ -46,6 +46,8 @@
 #include <post.h>
 #include <logbuff.h>
 
+DECLARE_GLOBAL_DATA_PTR;
+
 #if defined(CONFIG_LOGBUFFER)
 
 /* Local prototypes */
@@ -73,8 +75,8 @@ static unsigned long *ext_logged_chars;
    in linux/kernel/printk */
 void logbuff_init_ptrs (void)
 {
-       DECLARE_GLOBAL_DATA_PTR;
        unsigned long *ext_tag;
+       unsigned long post_word;
        char *s;
 
        log_buf = (unsigned char *)(gd->bd->bi_memsize-LOGBUFF_LEN);
@@ -82,15 +84,16 @@ void logbuff_init_ptrs (void)
        ext_log_start = (unsigned long *)(log_buf)-3;
        ext_log_size = (unsigned long *)(log_buf)-2;
        ext_logged_chars = (unsigned long *)(log_buf)-1;
+       post_word = post_word_load();
 #ifdef CONFIG_POST
        /* The post routines have setup the word so we can simply test it */
-       if ((post_word_load () & 0xffff) == POST_POWERON) {
+       if (post_word_load () & POST_COLDBOOT) {
                logged_chars = log_size = log_start = 0;
                *ext_tag = LOGBUFF_MAGIC;
        }
 #else
        /* No post routines, so we do our own checking                    */
-       if (post_word_load () != LOGBUFF_MAGIC) {
+       if (post_word != LOGBUFF_MAGIC) {
                logged_chars = log_size = log_start = 0;
                post_word_store (LOGBUFF_MAGIC);
                *ext_tag = LOGBUFF_MAGIC;
@@ -137,8 +140,6 @@ static void logbuff_puts (const char *s)
 
 void logbuff_log(char *msg)
 {
-       DECLARE_GLOBAL_DATA_PTR;
-
        if ((gd->post_log_word & LOGBUFF_INITIALIZED)) {
                logbuff_printk (msg);
        } else {
@@ -177,7 +178,7 @@ int do_log (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
        case 2:
                if (strcmp(argv[1],"show") == 0) {
                        for (i=0; i < (log_size&LOGBUFF_MASK); i++) {
-                               s = log_buf+((log_start+i)&LOGBUFF_MASK);
+                               s = (char *)log_buf+((log_start+i)&LOGBUFF_MASK);
                                putc (*s);
                        }
                        return 0;
@@ -202,8 +203,8 @@ int do_log (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
        }
 }
 #if defined(CONFIG_LOGBUFFER)
-cmd_tbl_t U_BOOT_CMD(LOG) = MK_CMD_ENTRY(
-       "log",     255, 1,      do_log,
+U_BOOT_CMD(
+       log,     255,   1,      do_log,
        "log     - manipulate logbuffer\n",
        "info   - show pointer details\n"
        "log reset  - clear contents\n"