Drop the log buffer
authorSimon Glass <sjg@chromium.org>
Mon, 4 Dec 2017 20:48:23 +0000 (13:48 -0700)
committerTom Rini <trini@konsulko.com>
Thu, 7 Dec 2017 20:17:00 +0000 (15:17 -0500)
This does not appear to be used by any boards. Before introducing a new
log system, remove this old one.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
12 files changed:
cmd/Makefile
cmd/log.c [deleted file]
common/board_f.c
common/board_r.c
common/image.c
common/stdio.c
include/asm-generic/global_data.h
include/logbuff.h [deleted file]
include/post.h
post/post.c
post/tests.c
scripts/config_whitelist.txt

index 2b0444d5b777819fb744318bd43843b131a877f5..f9eb76090d683644f42a52cb700f5c3c67998229 100644 (file)
@@ -76,7 +76,6 @@ obj-$(CONFIG_LED_STATUS_CMD) += legacy_led.o
 obj-$(CONFIG_CMD_LED) += led.o
 obj-$(CONFIG_CMD_LICENSE) += license.o
 obj-y += load.o
-obj-$(CONFIG_LOGBUFFER) += log.o
 obj-$(CONFIG_ID_EEPROM) += mac.o
 obj-$(CONFIG_CMD_MD5SUM) += md5sum.o
 obj-$(CONFIG_CMD_MEMORY) += mem.o
diff --git a/cmd/log.c b/cmd/log.c
deleted file mode 100644 (file)
index 7a3bd5c..0000000
--- a/cmd/log.c
+++ /dev/null
@@ -1,313 +0,0 @@
-/*
- * (C) Copyright 2002-2007
- * Detlev Zundel, DENX Software Engineering, dzu@denx.de.
- *
- * Code used from linux/kernel/printk.c
- * Copyright (C) 1991, 1992  Linus Torvalds
- *
- * SPDX-License-Identifier:    GPL-2.0+
- *
- * Comments:
- *
- * After relocating the code, the environment variable "loglevel" is
- * copied to console_loglevel.  The functionality is similar to the
- * handling in the Linux kernel, i.e. messages logged with a priority
- * less than console_loglevel are also output to stdout.
- *
- * If you want messages with the default level (e.g. POST messages) to
- * appear on stdout also, make sure the environment variable
- * "loglevel" is set at boot time to a number higher than
- * default_message_loglevel below.
- */
-
-/*
- * Logbuffer handling routines
- */
-
-#include <common.h>
-#include <command.h>
-#include <stdio_dev.h>
-#include <post.h>
-#include <logbuff.h>
-
-DECLARE_GLOBAL_DATA_PTR;
-
-/* Local prototypes */
-static void logbuff_putc(struct stdio_dev *dev, const char c);
-static void logbuff_puts(struct stdio_dev *dev, const char *s);
-static int logbuff_printk(const char *line);
-
-static char buf[1024];
-
-/* This combination will not print messages with the default loglevel */
-static unsigned console_loglevel = 3;
-static unsigned default_message_loglevel = 4;
-static unsigned log_version = 1;
-#ifdef CONFIG_ALT_LB_ADDR
-static volatile logbuff_t *log;
-#else
-static logbuff_t *log;
-#endif
-static char *lbuf;
-
-unsigned long __logbuffer_base(void)
-{
-       return CONFIG_SYS_SDRAM_BASE + get_effective_memsize() - LOGBUFF_LEN;
-}
-unsigned long logbuffer_base(void)
-__attribute__((weak, alias("__logbuffer_base")));
-
-void logbuff_init_ptrs(void)
-{
-       unsigned long tag, post_word;
-       char *s;
-
-#ifdef CONFIG_ALT_LB_ADDR
-       log = (logbuff_t *)CONFIG_ALT_LH_ADDR;
-       lbuf = (char *)CONFIG_ALT_LB_ADDR;
-#else
-       log = (logbuff_t *)(logbuffer_base()) - 1;
-       lbuf = (char *)log->buf;
-#endif
-
-       /* Set up log version */
-       s = env_get("logversion");
-       if (s)
-               log_version = (int)simple_strtoul(s, NULL, 10);
-
-       if (log_version == 2)
-               tag = log->v2.tag;
-       else
-               tag = log->v1.tag;
-       post_word = post_word_load();
-#ifdef CONFIG_POST
-       /* The post routines have setup the word so we can simply test it */
-       if (tag != LOGBUFF_MAGIC || (post_word & POST_COLDBOOT))
-               logbuff_reset();
-#else
-       /* No post routines, so we do our own checking                    */
-       if (tag != LOGBUFF_MAGIC || post_word != LOGBUFF_MAGIC) {
-               logbuff_reset ();
-               post_word_store (LOGBUFF_MAGIC);
-       }
-#endif
-       if (log_version == 2 && (long)log->v2.start > (long)log->v2.con)
-               log->v2.start = log->v2.con;
-
-       /* Initialize default loglevel if present */
-       s = env_get("loglevel");
-       if (s)
-               console_loglevel = (int)simple_strtoul(s, NULL, 10);
-
-       gd->flags |= GD_FLG_LOGINIT;
-}
-
-void logbuff_reset(void)
-{
-#ifndef CONFIG_ALT_LB_ADDR
-       memset(log, 0, sizeof(logbuff_t));
-#endif
-       if (log_version == 2) {
-               log->v2.tag = LOGBUFF_MAGIC;
-#ifdef CONFIG_ALT_LB_ADDR
-               log->v2.start = 0;
-               log->v2.con = 0;
-               log->v2.end = 0;
-               log->v2.chars = 0;
-#endif
-       } else {
-               log->v1.tag = LOGBUFF_MAGIC;
-#ifdef CONFIG_ALT_LB_ADDR
-               log->v1.dummy = 0;
-               log->v1.start = 0;
-               log->v1.size = 0;
-               log->v1.chars = 0;
-#endif
-       }
-}
-
-int drv_logbuff_init(void)
-{
-       struct stdio_dev logdev;
-       int rc;
-
-       /* Device initialization */
-       memset (&logdev, 0, sizeof (logdev));
-
-       strcpy (logdev.name, "logbuff");
-       logdev.ext   = 0;                       /* No extensions */
-       logdev.flags = DEV_FLAGS_OUTPUT;        /* Output only */
-       logdev.putc  = logbuff_putc;            /* 'putc' function */
-       logdev.puts  = logbuff_puts;            /* 'puts' function */
-
-       rc = stdio_register(&logdev);
-
-       return (rc == 0) ? 1 : rc;
-}
-
-static void logbuff_putc(struct stdio_dev *dev, const char c)
-{
-       char buf[2];
-       buf[0] = c;
-       buf[1] = '\0';
-       logbuff_printk(buf);
-}
-
-static void logbuff_puts(struct stdio_dev *dev, const char *s)
-{
-       logbuff_printk (s);
-}
-
-void logbuff_log(char *msg)
-{
-       if ((gd->flags & GD_FLG_LOGINIT)) {
-               logbuff_printk(msg);
-       } else {
-               /*
-                * Can happen only for pre-relocated errors as logging
-                * at that stage should be disabled
-                */
-               puts (msg);
-       }
-}
-
-/*
- * Subroutine:  do_log
- *
- * Description: Handler for 'log' command..
- *
- * Inputs:     argv[1] contains the subcommand
- *
- * Return:      None
- *
- */
-int do_log(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
-{
-       struct stdio_dev *sdev = NULL;
-       char *s;
-       unsigned long i, start, size;
-
-       if (strcmp(argv[1], "append") == 0) {
-               /* Log concatenation of all arguments separated by spaces */
-               for (i = 2; i < argc; i++) {
-                       logbuff_printk(argv[i]);
-                       logbuff_putc(sdev, (i < argc - 1) ? ' ' : '\n');
-               }
-               return 0;
-       }
-
-       switch (argc) {
-
-       case 2:
-               if (strcmp(argv[1], "show") == 0) {
-                       if (log_version == 2) {
-                               start = log->v2.start;
-                               size = log->v2.end - log->v2.start;
-                       } else {
-                               start = log->v1.start;
-                               size = log->v1.size;
-                       }
-                       if (size > LOGBUFF_LEN)
-                               size = LOGBUFF_LEN;
-                       for (i = 0; i < size; i++) {
-                               s = lbuf + ((start + i) & LOGBUFF_MASK);
-                               putc(*s);
-                       }
-                       return 0;
-               } else if (strcmp(argv[1], "reset") == 0) {
-                       logbuff_reset();
-                       return 0;
-               } else if (strcmp(argv[1], "info") == 0) {
-                       printf("Logbuffer   at  %08lx\n", (unsigned long)lbuf);
-                       if (log_version == 2) {
-                               printf("log_start    =  %08lx\n",
-                                       log->v2.start);
-                               printf("log_end      =  %08lx\n", log->v2.end);
-                               printf("log_con      =  %08lx\n", log->v2.con);
-                               printf("logged_chars =  %08lx\n",
-                                       log->v2.chars);
-                       }
-                       else {
-                               printf("log_start    =  %08lx\n",
-                                       log->v1.start);
-                               printf("log_size     =  %08lx\n",
-                                       log->v1.size);
-                               printf("logged_chars =  %08lx\n",
-                                       log->v1.chars);
-                       }
-                       return 0;
-               }
-               return CMD_RET_USAGE;
-
-       default:
-               return CMD_RET_USAGE;
-       }
-}
-
-U_BOOT_CMD(
-       log,     255,   1,      do_log,
-       "manipulate logbuffer",
-       "info   - show pointer details\n"
-       "log reset  - clear contents\n"
-       "log show   - show contents\n"
-       "log append <msg> - append <msg> to the logbuffer"
-);
-
-static int logbuff_printk(const char *line)
-{
-       int i;
-       char *msg, *p, *buf_end;
-       int line_feed;
-       static signed char msg_level = -1;
-
-       strcpy(buf + 3, line);
-       i = strlen(line);
-       buf_end = buf + 3 + i;
-       for (p = buf + 3; p < buf_end; p++) {
-               msg = p;
-               if (msg_level < 0) {
-                       if (
-                               p[0] != '<' ||
-                               p[1] < '0' ||
-                               p[1] > '7' ||
-                               p[2] != '>'
-                       ) {
-                               p -= 3;
-                               p[0] = '<';
-                               p[1] = default_message_loglevel + '0';
-                               p[2] = '>';
-                       } else {
-                               msg += 3;
-                       }
-                       msg_level = p[1] - '0';
-               }
-               line_feed = 0;
-               for (; p < buf_end; p++) {
-                       if (log_version == 2) {
-                               lbuf[log->v2.end & LOGBUFF_MASK] = *p;
-                               log->v2.end++;
-                               if (log->v2.end - log->v2.start > LOGBUFF_LEN)
-                                       log->v2.start++;
-                               log->v2.chars++;
-                       } else {
-                               lbuf[(log->v1.start + log->v1.size) &
-                                        LOGBUFF_MASK] = *p;
-                               if (log->v1.size < LOGBUFF_LEN)
-                                       log->v1.size++;
-                               else
-                                       log->v1.start++;
-                               log->v1.chars++;
-                       }
-                       if (*p == '\n') {
-                               line_feed = 1;
-                               break;
-                       }
-               }
-               if (msg_level < console_loglevel) {
-                       printf("%s", msg);
-               }
-               if (line_feed)
-                       msg_level = -1;
-       }
-       return i;
-}
index 9220815441e51f58d34eac914c570a84da206bd1..1e8bf63ec105140c500eca363adebdbda6d7ff1d 100644 (file)
@@ -19,7 +19,6 @@
 #include <i2c.h>
 #include <initcall.h>
 #include <init_helpers.h>
-#include <logbuff.h>
 #include <malloc.h>
 #include <mapmem.h>
 #include <os.h>
@@ -296,20 +295,6 @@ static int setup_dest_addr(void)
        return 0;
 }
 
-#if defined(CONFIG_LOGBUFFER)
-static int reserve_logbuffer(void)
-{
-#ifndef CONFIG_ALT_LB_ADDR
-       /* reserve kernel log buffer */
-       gd->relocaddr -= LOGBUFF_RESERVE;
-       debug("Reserving %dk for kernel logbuffer at %08lx\n", LOGBUFF_LEN,
-               gd->relocaddr);
-#endif
-
-       return 0;
-}
-#endif
-
 #ifdef CONFIG_PRAM
 /* reserve protected RAM */
 static int reserve_pram(void)
@@ -846,9 +831,6 @@ static const init_fnc_t init_sequence_f[] = {
         *  - board info struct
         */
        setup_dest_addr,
-#if defined(CONFIG_LOGBUFFER)
-       reserve_logbuffer,
-#endif
 #ifdef CONFIG_PRAM
        reserve_pram,
 #endif
index a3b9bfb8ee4a4fe12d58818eb49c4a457f463920..89729d77360d50bdee20dc9f20e79bff20e3534d 100644 (file)
@@ -30,7 +30,6 @@
 #if defined(CONFIG_CMD_KGDB)
 #include <kgdb.h>
 #endif
-#include <logbuff.h>
 #include <malloc.h>
 #include <mapmem.h>
 #ifdef CONFIG_BITBANGMII
@@ -200,19 +199,6 @@ static int initr_addr_map(void)
 }
 #endif
 
-#ifdef CONFIG_LOGBUFFER
-unsigned long logbuffer_base(void)
-{
-       return gd->ram_top - LOGBUFF_LEN;
-}
-
-static int initr_logbuffer(void)
-{
-       logbuff_init_ptrs();
-       return 0;
-}
-#endif
-
 #ifdef CONFIG_POST
 static int initr_post_backlog(void)
 {
@@ -628,7 +614,7 @@ static int initr_ide(void)
 }
 #endif
 
-#if defined(CONFIG_PRAM) || defined(CONFIG_LOGBUFFER)
+#if defined(CONFIG_PRAM)
 /*
  * Export available size of memory for Linux, taking into account the
  * protected RAM at top of memory
@@ -640,10 +626,6 @@ int initr_mem(void)
 
 # ifdef CONFIG_PRAM
        pram = env_get_ulong("pram", 10, CONFIG_PRAM);
-# endif
-# if defined(CONFIG_LOGBUFFER) && !defined(CONFIG_ALT_LB_ADDR)
-       /* Also take the logbuffer into account (pram is in kB) */
-       pram += (LOGBUFF_LEN + LOGBUFF_OVERHEAD) / 1024;
 # endif
        sprintf(memsz, "%ldk", (long int) ((gd->ram_size / 1024) - pram));
        env_set("mem", memsz);
@@ -753,9 +735,6 @@ static init_fnc_t init_sequence_r[] = {
        board_early_init_r,
 #endif
        INIT_FUNC_WATCHDOG_RESET
-#ifdef CONFIG_LOGBUFFER
-       initr_logbuffer,
-#endif
 #ifdef CONFIG_POST
        initr_post_backlog,
 #endif
@@ -877,7 +856,7 @@ static init_fnc_t init_sequence_r[] = {
        INIT_FUNC_WATCHDOG_RESET
        initr_bedbug,
 #endif
-#if defined(CONFIG_PRAM) || defined(CONFIG_LOGBUFFER)
+#if defined(CONFIG_PRAM)
        initr_mem,
 #endif
 #ifdef CONFIG_PS2KBD
index 4ec4744589f21dee4d3a3fa3401d42129c3e1d63..4bcf6b3128a852ee24a4a83f8d4ee91bd70699ac 100644 (file)
 #include <status_led.h>
 #endif
 
-#ifdef CONFIG_LOGBUFFER
-#include <logbuff.h>
-#endif
-
 #include <rtc.h>
 
 #include <environment.h>
@@ -1154,11 +1150,6 @@ int boot_ramdisk_high(struct lmb *lmb, ulong rd_data, ulong rd_len,
        }
 
 
-#ifdef CONFIG_LOGBUFFER
-       /* Prevent initrd from overwriting logbuffer */
-       lmb_reserve(lmb, logbuffer_base() - LOGBUFF_OVERHEAD, LOGBUFF_RESERVE);
-#endif
-
        debug("## initrd_high = 0x%08lx, copy_to_ram = %d\n",
                        initrd_high, initrd_copy_to_ram);
 
index ee4f0bda9ea72f69efbefcaa3849a3f5b8f422ca..2e5143a025533a214f873aaf22440ed74e2f6cef 100644 (file)
@@ -17,9 +17,6 @@
 #include <malloc.h>
 #include <stdio_dev.h>
 #include <serial.h>
-#ifdef CONFIG_LOGBUFFER
-#include <logbuff.h>
-#endif
 
 #if defined(CONFIG_SYS_I2C)
 #include <i2c.h>
@@ -380,9 +377,6 @@ int stdio_add_devices(void)
 #endif /* CONFIG_DM_VIDEO */
 #if defined(CONFIG_KEYBOARD) && !defined(CONFIG_DM_KEYBOARD)
        drv_keyboard_init ();
-#endif
-#ifdef CONFIG_LOGBUFFER
-       drv_logbuff_init ();
 #endif
        drv_system_init ();
        serial_stdio_init ();
index 944f58195cafb767672b9c6a360c6c96912b5181..79197acfa42df4975a2b3cc367703f8b0f01e82e 100644 (file)
@@ -36,7 +36,7 @@ typedef struct global_data {
 #if defined(CONFIG_LCD) || defined(CONFIG_VIDEO)
        unsigned long fb_base;          /* Base address of framebuffer mem */
 #endif
-#if defined(CONFIG_POST) || defined(CONFIG_LOGBUFFER)
+#if defined(CONFIG_POST)
        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 */
diff --git a/include/logbuff.h b/include/logbuff.h
deleted file mode 100644 (file)
index 625feb9..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * (C) Copyright 2002-2007
- * Detlev Zundel, dzu@denx.de.
- *
- * SPDX-License-Identifier:    GPL-2.0+
- */
-#ifndef _LOGBUFF_H
-#define _LOGBUFF_H
-
-#ifdef CONFIG_LOGBUFFER
-
-#define LOGBUFF_MAGIC  0xc0de4ced      /* Forced by code, eh!  */
-#define LOGBUFF_LEN    (16384) /* Must be 16k right now */
-#define LOGBUFF_MASK   (LOGBUFF_LEN-1)
-#define LOGBUFF_OVERHEAD (4096) /* Logbuffer overhead for extra info */
-#define LOGBUFF_RESERVE (LOGBUFF_LEN+LOGBUFF_OVERHEAD)
-
-/* The mapping used here has to be the same as in setup_ext_logbuff ()
-   in linux/kernel/printk */
-
-typedef struct {
-       union {
-               struct {
-                       unsigned long   tag;
-                       unsigned long   start;
-                       unsigned long   con;
-                       unsigned long   end;
-                       unsigned long   chars;
-               } v2;
-               struct {
-                       unsigned long   dummy;
-                       unsigned long   tag;
-                       unsigned long   start;
-                       unsigned long   size;
-                       unsigned long   chars;
-               } v1;
-       };
-       unsigned char   buf[0];
-} logbuff_t;
-
-int drv_logbuff_init (void);
-void logbuff_init_ptrs (void);
-void logbuff_log(char *msg);
-void logbuff_reset (void);
-unsigned long logbuffer_base (void);
-
-#endif /* CONFIG_LOGBUFFER */
-
-#endif /* _LOGBUFF_H */
index d5278111e8501a89b2b09d0e46fae9dc9d817b5d..b41a6c812722a577149f33a8ffbd0929ba643452 100644 (file)
@@ -15,7 +15,7 @@
 #include <common.h>
 #include <asm/io.h>
 
-#if defined(CONFIG_POST) || defined(CONFIG_LOGBUFFER)
+#if defined(CONFIG_POST)
 
 #ifndef CONFIG_POST_EXTERNAL_WORD_FUNCS
 #ifdef CONFIG_SYS_POST_WORD_ADDR
@@ -58,7 +58,7 @@ extern ulong post_word_load(void);
 extern void post_word_store(ulong value);
 
 #endif /* CONFIG_POST_EXTERNAL_WORD_FUNCS */
-#endif /* defined (CONFIG_POST) || defined(CONFIG_LOGBUFFER) */
+#endif /* defined (CONFIG_POST) */
 #endif /* __ASSEMBLY__ */
 
 #ifdef CONFIG_POST
index 8fef0c34127d2a635cbe83db5895ad1f819ff8a9..6c7902ad0c7ba85bd078fbc0aa6bd2adf53eff37 100644 (file)
 #include <asm/gpio.h>
 #endif
 
-#ifdef CONFIG_LOGBUFFER
-#include <logbuff.h>
-#endif
-
 DECLARE_GLOBAL_DATA_PTR;
 
 #define POST_MAX_NUMBER                32
@@ -407,13 +403,8 @@ int post_log(char *format, ...)
        vsprintf(printbuffer, format, args);
        va_end(args);
 
-#ifdef CONFIG_LOGBUFFER
-       /* Send to the logbuffer */
-       logbuff_log(printbuffer);
-#else
        /* Send to the stdout file */
        puts(printbuffer);
-#endif
 
        return 0;
 }
index bc8e39805157da8431f82d84e5c63e0afdb1563c..473c0ea1e1d04aa468ecf62cab39d31bb10c1de4 100644 (file)
@@ -3,10 +3,6 @@
  * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
  *
  * SPDX-License-Identifier:    GPL-2.0+
- *
- * Be sure to mark tests to be run before relocation as such with the
- * CONFIG_SYS_POST_PREREL flag so that logging is done correctly if the
- * logbuffer support is enabled.
  */
 
 #include <common.h>
index c2fe81e5520fd846e6034f12ae05139d7cf8b64d..d5ae1f468552aaafdf4ef9a73b0cee7892827ac8 100644 (file)
@@ -1258,7 +1258,6 @@ CONFIG_LMS283GF05
 CONFIG_LOADADDR
 CONFIG_LOADCMD
 CONFIG_LOADS_ECHO
-CONFIG_LOGBUFFER
 CONFIG_LOWPOWER_ADDR
 CONFIG_LOWPOWER_FLAG
 CONFIG_LOW_MCFCLK