Commit c5404b64fb5a35d41f7eff6d12b8ffdb0c851040

Authored by Simon Glass
Committed by Tom Rini
1 parent 0ad0458c76

Drop the log buffer

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>

Showing 12 changed files with 5 additions and 436 deletions Side-by-side Diff

... ... @@ -76,7 +76,6 @@
76 76 obj-$(CONFIG_CMD_LED) += led.o
77 77 obj-$(CONFIG_CMD_LICENSE) += license.o
78 78 obj-y += load.o
79   -obj-$(CONFIG_LOGBUFFER) += log.o
80 79 obj-$(CONFIG_ID_EEPROM) += mac.o
81 80 obj-$(CONFIG_CMD_MD5SUM) += md5sum.o
82 81 obj-$(CONFIG_CMD_MEMORY) += mem.o
1   -/*
2   - * (C) Copyright 2002-2007
3   - * Detlev Zundel, DENX Software Engineering, dzu@denx.de.
4   - *
5   - * Code used from linux/kernel/printk.c
6   - * Copyright (C) 1991, 1992 Linus Torvalds
7   - *
8   - * SPDX-License-Identifier: GPL-2.0+
9   - *
10   - * Comments:
11   - *
12   - * After relocating the code, the environment variable "loglevel" is
13   - * copied to console_loglevel. The functionality is similar to the
14   - * handling in the Linux kernel, i.e. messages logged with a priority
15   - * less than console_loglevel are also output to stdout.
16   - *
17   - * If you want messages with the default level (e.g. POST messages) to
18   - * appear on stdout also, make sure the environment variable
19   - * "loglevel" is set at boot time to a number higher than
20   - * default_message_loglevel below.
21   - */
22   -
23   -/*
24   - * Logbuffer handling routines
25   - */
26   -
27   -#include <common.h>
28   -#include <command.h>
29   -#include <stdio_dev.h>
30   -#include <post.h>
31   -#include <logbuff.h>
32   -
33   -DECLARE_GLOBAL_DATA_PTR;
34   -
35   -/* Local prototypes */
36   -static void logbuff_putc(struct stdio_dev *dev, const char c);
37   -static void logbuff_puts(struct stdio_dev *dev, const char *s);
38   -static int logbuff_printk(const char *line);
39   -
40   -static char buf[1024];
41   -
42   -/* This combination will not print messages with the default loglevel */
43   -static unsigned console_loglevel = 3;
44   -static unsigned default_message_loglevel = 4;
45   -static unsigned log_version = 1;
46   -#ifdef CONFIG_ALT_LB_ADDR
47   -static volatile logbuff_t *log;
48   -#else
49   -static logbuff_t *log;
50   -#endif
51   -static char *lbuf;
52   -
53   -unsigned long __logbuffer_base(void)
54   -{
55   - return CONFIG_SYS_SDRAM_BASE + get_effective_memsize() - LOGBUFF_LEN;
56   -}
57   -unsigned long logbuffer_base(void)
58   -__attribute__((weak, alias("__logbuffer_base")));
59   -
60   -void logbuff_init_ptrs(void)
61   -{
62   - unsigned long tag, post_word;
63   - char *s;
64   -
65   -#ifdef CONFIG_ALT_LB_ADDR
66   - log = (logbuff_t *)CONFIG_ALT_LH_ADDR;
67   - lbuf = (char *)CONFIG_ALT_LB_ADDR;
68   -#else
69   - log = (logbuff_t *)(logbuffer_base()) - 1;
70   - lbuf = (char *)log->buf;
71   -#endif
72   -
73   - /* Set up log version */
74   - s = env_get("logversion");
75   - if (s)
76   - log_version = (int)simple_strtoul(s, NULL, 10);
77   -
78   - if (log_version == 2)
79   - tag = log->v2.tag;
80   - else
81   - tag = log->v1.tag;
82   - post_word = post_word_load();
83   -#ifdef CONFIG_POST
84   - /* The post routines have setup the word so we can simply test it */
85   - if (tag != LOGBUFF_MAGIC || (post_word & POST_COLDBOOT))
86   - logbuff_reset();
87   -#else
88   - /* No post routines, so we do our own checking */
89   - if (tag != LOGBUFF_MAGIC || post_word != LOGBUFF_MAGIC) {
90   - logbuff_reset ();
91   - post_word_store (LOGBUFF_MAGIC);
92   - }
93   -#endif
94   - if (log_version == 2 && (long)log->v2.start > (long)log->v2.con)
95   - log->v2.start = log->v2.con;
96   -
97   - /* Initialize default loglevel if present */
98   - s = env_get("loglevel");
99   - if (s)
100   - console_loglevel = (int)simple_strtoul(s, NULL, 10);
101   -
102   - gd->flags |= GD_FLG_LOGINIT;
103   -}
104   -
105   -void logbuff_reset(void)
106   -{
107   -#ifndef CONFIG_ALT_LB_ADDR
108   - memset(log, 0, sizeof(logbuff_t));
109   -#endif
110   - if (log_version == 2) {
111   - log->v2.tag = LOGBUFF_MAGIC;
112   -#ifdef CONFIG_ALT_LB_ADDR
113   - log->v2.start = 0;
114   - log->v2.con = 0;
115   - log->v2.end = 0;
116   - log->v2.chars = 0;
117   -#endif
118   - } else {
119   - log->v1.tag = LOGBUFF_MAGIC;
120   -#ifdef CONFIG_ALT_LB_ADDR
121   - log->v1.dummy = 0;
122   - log->v1.start = 0;
123   - log->v1.size = 0;
124   - log->v1.chars = 0;
125   -#endif
126   - }
127   -}
128   -
129   -int drv_logbuff_init(void)
130   -{
131   - struct stdio_dev logdev;
132   - int rc;
133   -
134   - /* Device initialization */
135   - memset (&logdev, 0, sizeof (logdev));
136   -
137   - strcpy (logdev.name, "logbuff");
138   - logdev.ext = 0; /* No extensions */
139   - logdev.flags = DEV_FLAGS_OUTPUT; /* Output only */
140   - logdev.putc = logbuff_putc; /* 'putc' function */
141   - logdev.puts = logbuff_puts; /* 'puts' function */
142   -
143   - rc = stdio_register(&logdev);
144   -
145   - return (rc == 0) ? 1 : rc;
146   -}
147   -
148   -static void logbuff_putc(struct stdio_dev *dev, const char c)
149   -{
150   - char buf[2];
151   - buf[0] = c;
152   - buf[1] = '\0';
153   - logbuff_printk(buf);
154   -}
155   -
156   -static void logbuff_puts(struct stdio_dev *dev, const char *s)
157   -{
158   - logbuff_printk (s);
159   -}
160   -
161   -void logbuff_log(char *msg)
162   -{
163   - if ((gd->flags & GD_FLG_LOGINIT)) {
164   - logbuff_printk(msg);
165   - } else {
166   - /*
167   - * Can happen only for pre-relocated errors as logging
168   - * at that stage should be disabled
169   - */
170   - puts (msg);
171   - }
172   -}
173   -
174   -/*
175   - * Subroutine: do_log
176   - *
177   - * Description: Handler for 'log' command..
178   - *
179   - * Inputs: argv[1] contains the subcommand
180   - *
181   - * Return: None
182   - *
183   - */
184   -int do_log(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
185   -{
186   - struct stdio_dev *sdev = NULL;
187   - char *s;
188   - unsigned long i, start, size;
189   -
190   - if (strcmp(argv[1], "append") == 0) {
191   - /* Log concatenation of all arguments separated by spaces */
192   - for (i = 2; i < argc; i++) {
193   - logbuff_printk(argv[i]);
194   - logbuff_putc(sdev, (i < argc - 1) ? ' ' : '\n');
195   - }
196   - return 0;
197   - }
198   -
199   - switch (argc) {
200   -
201   - case 2:
202   - if (strcmp(argv[1], "show") == 0) {
203   - if (log_version == 2) {
204   - start = log->v2.start;
205   - size = log->v2.end - log->v2.start;
206   - } else {
207   - start = log->v1.start;
208   - size = log->v1.size;
209   - }
210   - if (size > LOGBUFF_LEN)
211   - size = LOGBUFF_LEN;
212   - for (i = 0; i < size; i++) {
213   - s = lbuf + ((start + i) & LOGBUFF_MASK);
214   - putc(*s);
215   - }
216   - return 0;
217   - } else if (strcmp(argv[1], "reset") == 0) {
218   - logbuff_reset();
219   - return 0;
220   - } else if (strcmp(argv[1], "info") == 0) {
221   - printf("Logbuffer at %08lx\n", (unsigned long)lbuf);
222   - if (log_version == 2) {
223   - printf("log_start = %08lx\n",
224   - log->v2.start);
225   - printf("log_end = %08lx\n", log->v2.end);
226   - printf("log_con = %08lx\n", log->v2.con);
227   - printf("logged_chars = %08lx\n",
228   - log->v2.chars);
229   - }
230   - else {
231   - printf("log_start = %08lx\n",
232   - log->v1.start);
233   - printf("log_size = %08lx\n",
234   - log->v1.size);
235   - printf("logged_chars = %08lx\n",
236   - log->v1.chars);
237   - }
238   - return 0;
239   - }
240   - return CMD_RET_USAGE;
241   -
242   - default:
243   - return CMD_RET_USAGE;
244   - }
245   -}
246   -
247   -U_BOOT_CMD(
248   - log, 255, 1, do_log,
249   - "manipulate logbuffer",
250   - "info - show pointer details\n"
251   - "log reset - clear contents\n"
252   - "log show - show contents\n"
253   - "log append <msg> - append <msg> to the logbuffer"
254   -);
255   -
256   -static int logbuff_printk(const char *line)
257   -{
258   - int i;
259   - char *msg, *p, *buf_end;
260   - int line_feed;
261   - static signed char msg_level = -1;
262   -
263   - strcpy(buf + 3, line);
264   - i = strlen(line);
265   - buf_end = buf + 3 + i;
266   - for (p = buf + 3; p < buf_end; p++) {
267   - msg = p;
268   - if (msg_level < 0) {
269   - if (
270   - p[0] != '<' ||
271   - p[1] < '0' ||
272   - p[1] > '7' ||
273   - p[2] != '>'
274   - ) {
275   - p -= 3;
276   - p[0] = '<';
277   - p[1] = default_message_loglevel + '0';
278   - p[2] = '>';
279   - } else {
280   - msg += 3;
281   - }
282   - msg_level = p[1] - '0';
283   - }
284   - line_feed = 0;
285   - for (; p < buf_end; p++) {
286   - if (log_version == 2) {
287   - lbuf[log->v2.end & LOGBUFF_MASK] = *p;
288   - log->v2.end++;
289   - if (log->v2.end - log->v2.start > LOGBUFF_LEN)
290   - log->v2.start++;
291   - log->v2.chars++;
292   - } else {
293   - lbuf[(log->v1.start + log->v1.size) &
294   - LOGBUFF_MASK] = *p;
295   - if (log->v1.size < LOGBUFF_LEN)
296   - log->v1.size++;
297   - else
298   - log->v1.start++;
299   - log->v1.chars++;
300   - }
301   - if (*p == '\n') {
302   - line_feed = 1;
303   - break;
304   - }
305   - }
306   - if (msg_level < console_loglevel) {
307   - printf("%s", msg);
308   - }
309   - if (line_feed)
310   - msg_level = -1;
311   - }
312   - return i;
313   -}
... ... @@ -19,7 +19,6 @@
19 19 #include <i2c.h>
20 20 #include <initcall.h>
21 21 #include <init_helpers.h>
22   -#include <logbuff.h>
23 22 #include <malloc.h>
24 23 #include <mapmem.h>
25 24 #include <os.h>
... ... @@ -296,20 +295,6 @@
296 295 return 0;
297 296 }
298 297  
299   -#if defined(CONFIG_LOGBUFFER)
300   -static int reserve_logbuffer(void)
301   -{
302   -#ifndef CONFIG_ALT_LB_ADDR
303   - /* reserve kernel log buffer */
304   - gd->relocaddr -= LOGBUFF_RESERVE;
305   - debug("Reserving %dk for kernel logbuffer at %08lx\n", LOGBUFF_LEN,
306   - gd->relocaddr);
307   -#endif
308   -
309   - return 0;
310   -}
311   -#endif
312   -
313 298 #ifdef CONFIG_PRAM
314 299 /* reserve protected RAM */
315 300 static int reserve_pram(void)
... ... @@ -846,9 +831,6 @@
846 831 * - board info struct
847 832 */
848 833 setup_dest_addr,
849   -#if defined(CONFIG_LOGBUFFER)
850   - reserve_logbuffer,
851   -#endif
852 834 #ifdef CONFIG_PRAM
853 835 reserve_pram,
854 836 #endif
... ... @@ -30,7 +30,6 @@
30 30 #if defined(CONFIG_CMD_KGDB)
31 31 #include <kgdb.h>
32 32 #endif
33   -#include <logbuff.h>
34 33 #include <malloc.h>
35 34 #include <mapmem.h>
36 35 #ifdef CONFIG_BITBANGMII
... ... @@ -200,19 +199,6 @@
200 199 }
201 200 #endif
202 201  
203   -#ifdef CONFIG_LOGBUFFER
204   -unsigned long logbuffer_base(void)
205   -{
206   - return gd->ram_top - LOGBUFF_LEN;
207   -}
208   -
209   -static int initr_logbuffer(void)
210   -{
211   - logbuff_init_ptrs();
212   - return 0;
213   -}
214   -#endif
215   -
216 202 #ifdef CONFIG_POST
217 203 static int initr_post_backlog(void)
218 204 {
... ... @@ -628,7 +614,7 @@
628 614 }
629 615 #endif
630 616  
631   -#if defined(CONFIG_PRAM) || defined(CONFIG_LOGBUFFER)
  617 +#if defined(CONFIG_PRAM)
632 618 /*
633 619 * Export available size of memory for Linux, taking into account the
634 620 * protected RAM at top of memory
... ... @@ -641,10 +627,6 @@
641 627 # ifdef CONFIG_PRAM
642 628 pram = env_get_ulong("pram", 10, CONFIG_PRAM);
643 629 # endif
644   -# if defined(CONFIG_LOGBUFFER) && !defined(CONFIG_ALT_LB_ADDR)
645   - /* Also take the logbuffer into account (pram is in kB) */
646   - pram += (LOGBUFF_LEN + LOGBUFF_OVERHEAD) / 1024;
647   -# endif
648 630 sprintf(memsz, "%ldk", (long int) ((gd->ram_size / 1024) - pram));
649 631 env_set("mem", memsz);
650 632  
... ... @@ -753,9 +735,6 @@
753 735 board_early_init_r,
754 736 #endif
755 737 INIT_FUNC_WATCHDOG_RESET
756   -#ifdef CONFIG_LOGBUFFER
757   - initr_logbuffer,
758   -#endif
759 738 #ifdef CONFIG_POST
760 739 initr_post_backlog,
761 740 #endif
... ... @@ -877,7 +856,7 @@
877 856 INIT_FUNC_WATCHDOG_RESET
878 857 initr_bedbug,
879 858 #endif
880   -#if defined(CONFIG_PRAM) || defined(CONFIG_LOGBUFFER)
  859 +#if defined(CONFIG_PRAM)
881 860 initr_mem,
882 861 #endif
883 862 #ifdef CONFIG_PS2KBD
... ... @@ -15,10 +15,6 @@
15 15 #include <status_led.h>
16 16 #endif
17 17  
18   -#ifdef CONFIG_LOGBUFFER
19   -#include <logbuff.h>
20   -#endif
21   -
22 18 #include <rtc.h>
23 19  
24 20 #include <environment.h>
... ... @@ -1153,11 +1149,6 @@
1153 1149 initrd_high = env_get_bootm_mapsize() + env_get_bootm_low();
1154 1150 }
1155 1151  
1156   -
1157   -#ifdef CONFIG_LOGBUFFER
1158   - /* Prevent initrd from overwriting logbuffer */
1159   - lmb_reserve(lmb, logbuffer_base() - LOGBUFF_OVERHEAD, LOGBUFF_RESERVE);
1160   -#endif
1161 1152  
1162 1153 debug("## initrd_high = 0x%08lx, copy_to_ram = %d\n",
1163 1154 initrd_high, initrd_copy_to_ram);
... ... @@ -17,9 +17,6 @@
17 17 #include <malloc.h>
18 18 #include <stdio_dev.h>
19 19 #include <serial.h>
20   -#ifdef CONFIG_LOGBUFFER
21   -#include <logbuff.h>
22   -#endif
23 20  
24 21 #if defined(CONFIG_SYS_I2C)
25 22 #include <i2c.h>
... ... @@ -380,9 +377,6 @@
380 377 #endif /* CONFIG_DM_VIDEO */
381 378 #if defined(CONFIG_KEYBOARD) && !defined(CONFIG_DM_KEYBOARD)
382 379 drv_keyboard_init ();
383   -#endif
384   -#ifdef CONFIG_LOGBUFFER
385   - drv_logbuff_init ();
386 380 #endif
387 381 drv_system_init ();
388 382 serial_stdio_init ();
include/asm-generic/global_data.h
... ... @@ -36,7 +36,7 @@
36 36 #if defined(CONFIG_LCD) || defined(CONFIG_VIDEO)
37 37 unsigned long fb_base; /* Base address of framebuffer mem */
38 38 #endif
39   -#if defined(CONFIG_POST) || defined(CONFIG_LOGBUFFER)
  39 +#if defined(CONFIG_POST)
40 40 unsigned long post_log_word; /* Record POST activities */
41 41 unsigned long post_log_res; /* success of POST test */
42 42 unsigned long post_init_f_time; /* When post_init_f started */
include/logbuff.h
1   -/*
2   - * (C) Copyright 2002-2007
3   - * Detlev Zundel, dzu@denx.de.
4   - *
5   - * SPDX-License-Identifier: GPL-2.0+
6   - */
7   -#ifndef _LOGBUFF_H
8   -#define _LOGBUFF_H
9   -
10   -#ifdef CONFIG_LOGBUFFER
11   -
12   -#define LOGBUFF_MAGIC 0xc0de4ced /* Forced by code, eh! */
13   -#define LOGBUFF_LEN (16384) /* Must be 16k right now */
14   -#define LOGBUFF_MASK (LOGBUFF_LEN-1)
15   -#define LOGBUFF_OVERHEAD (4096) /* Logbuffer overhead for extra info */
16   -#define LOGBUFF_RESERVE (LOGBUFF_LEN+LOGBUFF_OVERHEAD)
17   -
18   -/* The mapping used here has to be the same as in setup_ext_logbuff ()
19   - in linux/kernel/printk */
20   -
21   -typedef struct {
22   - union {
23   - struct {
24   - unsigned long tag;
25   - unsigned long start;
26   - unsigned long con;
27   - unsigned long end;
28   - unsigned long chars;
29   - } v2;
30   - struct {
31   - unsigned long dummy;
32   - unsigned long tag;
33   - unsigned long start;
34   - unsigned long size;
35   - unsigned long chars;
36   - } v1;
37   - };
38   - unsigned char buf[0];
39   -} logbuff_t;
40   -
41   -int drv_logbuff_init (void);
42   -void logbuff_init_ptrs (void);
43   -void logbuff_log(char *msg);
44   -void logbuff_reset (void);
45   -unsigned long logbuffer_base (void);
46   -
47   -#endif /* CONFIG_LOGBUFFER */
48   -
49   -#endif /* _LOGBUFF_H */
... ... @@ -15,7 +15,7 @@
15 15 #include <common.h>
16 16 #include <asm/io.h>
17 17  
18   -#if defined(CONFIG_POST) || defined(CONFIG_LOGBUFFER)
  18 +#if defined(CONFIG_POST)
19 19  
20 20 #ifndef CONFIG_POST_EXTERNAL_WORD_FUNCS
21 21 #ifdef CONFIG_SYS_POST_WORD_ADDR
... ... @@ -58,7 +58,7 @@
58 58 extern void post_word_store(ulong value);
59 59  
60 60 #endif /* CONFIG_POST_EXTERNAL_WORD_FUNCS */
61   -#endif /* defined (CONFIG_POST) || defined(CONFIG_LOGBUFFER) */
  61 +#endif /* defined (CONFIG_POST) */
62 62 #endif /* __ASSEMBLY__ */
63 63  
64 64 #ifdef CONFIG_POST
... ... @@ -15,10 +15,6 @@
15 15 #include <asm/gpio.h>
16 16 #endif
17 17  
18   -#ifdef CONFIG_LOGBUFFER
19   -#include <logbuff.h>
20   -#endif
21   -
22 18 DECLARE_GLOBAL_DATA_PTR;
23 19  
24 20 #define POST_MAX_NUMBER 32
25 21  
... ... @@ -407,13 +403,8 @@
407 403 vsprintf(printbuffer, format, args);
408 404 va_end(args);
409 405  
410   -#ifdef CONFIG_LOGBUFFER
411   - /* Send to the logbuffer */
412   - logbuff_log(printbuffer);
413   -#else
414 406 /* Send to the stdout file */
415 407 puts(printbuffer);
416   -#endif
417 408  
418 409 return 0;
419 410 }
... ... @@ -3,10 +3,6 @@
3 3 * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
4 4 *
5 5 * SPDX-License-Identifier: GPL-2.0+
6   - *
7   - * Be sure to mark tests to be run before relocation as such with the
8   - * CONFIG_SYS_POST_PREREL flag so that logging is done correctly if the
9   - * logbuffer support is enabled.
10 6 */
11 7  
12 8 #include <common.h>
scripts/config_whitelist.txt
... ... @@ -1258,7 +1258,6 @@
1258 1258 CONFIG_LOADADDR
1259 1259 CONFIG_LOADCMD
1260 1260 CONFIG_LOADS_ECHO
1261   -CONFIG_LOGBUFFER
1262 1261 CONFIG_LOWPOWER_ADDR
1263 1262 CONFIG_LOWPOWER_FLAG
1264 1263 CONFIG_LOW_MCFCLK