]> git.kernelconcepts.de Git - karo-tx-uboot.git/blob - common/cmd_bdinfo.c
armv7: rename cache related CONFIG flags
[karo-tx-uboot.git] / common / cmd_bdinfo.c
1 /*
2  * (C) Copyright 2003
3  * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
4  *
5  * See file CREDITS for list of people who contributed to this
6  * project.
7  *
8  * This program is free software; you can redistribute it and/or
9  * modify it under the terms of the GNU General Public License as
10  * published by the Free Software Foundation; either version 2 of
11  * the License, or (at your option) any later version.
12  *
13  * This program is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16  * GNU General Public License for more details.
17  *
18  * You should have received a copy of the GNU General Public License
19  * along with this program; if not, write to the Free Software
20  * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
21  * MA 02111-1307 USA
22  */
23
24 /*
25  * Boot support
26  */
27 #include <common.h>
28 #include <command.h>
29
30 DECLARE_GLOBAL_DATA_PTR;
31
32 static void print_num(const char *, ulong);
33
34 #if !(defined(CONFIG_ARM) || defined(CONFIG_M68K)) || defined(CONFIG_CMD_NET)
35 static void print_eth(int idx);
36 #endif
37
38 #if (!defined(CONFIG_ARM) && !defined(CONFIG_X86))
39 static void print_lnum(const char *, u64);
40 #endif
41
42 #if defined(CONFIG_PPC)
43 static void print_str(const char *, const char *);
44
45 int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
46 {
47         bd_t *bd = gd->bd;
48         char buf[32];
49
50 #ifdef DEBUG
51         print_num("bd address",         (ulong)bd);
52 #endif
53         print_num("memstart",           bd->bi_memstart);
54         print_lnum("memsize",           bd->bi_memsize);
55         print_num("flashstart",         bd->bi_flashstart);
56         print_num("flashsize",          bd->bi_flashsize);
57         print_num("flashoffset",        bd->bi_flashoffset);
58         print_num("sramstart",          bd->bi_sramstart);
59         print_num("sramsize",           bd->bi_sramsize);
60 #if     defined(CONFIG_5xx)  || defined(CONFIG_8xx) || \
61         defined(CONFIG_8260) || defined(CONFIG_E500)
62         print_num("immr_base",          bd->bi_immr_base);
63 #endif
64         print_num("bootflags",          bd->bi_bootflags);
65 #if     defined(CONFIG_405CR) || defined(CONFIG_405EP) || \
66         defined(CONFIG_405GP) || \
67         defined(CONFIG_440EP) || defined(CONFIG_440EPX) || \
68         defined(CONFIG_440GR) || defined(CONFIG_440GRX) || \
69         defined(CONFIG_440SP) || defined(CONFIG_440SPE) || \
70         defined(CONFIG_XILINX_405)
71         print_str("procfreq",           strmhz(buf, bd->bi_procfreq));
72         print_str("plb_busfreq",        strmhz(buf, bd->bi_plb_busfreq));
73 #if     defined(CONFIG_405EP) || defined(CONFIG_405GP) || \
74         defined(CONFIG_440EP) || defined(CONFIG_440EPX) || \
75         defined(CONFIG_440GR) || defined(CONFIG_440GRX) || \
76         defined(CONFIG_440SPE) || defined(CONFIG_XILINX_405)
77         print_str("pci_busfreq",        strmhz(buf, bd->bi_pci_busfreq));
78 #endif
79 #else   /* ! CONFIG_405GP, CONFIG_405CR, CONFIG_405EP, CONFIG_XILINX_405, CONFIG_440EP CONFIG_440GR */
80 #if defined(CONFIG_CPM2)
81         print_str("vco",                strmhz(buf, bd->bi_vco));
82         print_str("sccfreq",            strmhz(buf, bd->bi_sccfreq));
83         print_str("brgfreq",            strmhz(buf, bd->bi_brgfreq));
84 #endif
85         print_str("intfreq",            strmhz(buf, bd->bi_intfreq));
86 #if defined(CONFIG_CPM2)
87         print_str("cpmfreq",            strmhz(buf, bd->bi_cpmfreq));
88 #endif
89         print_str("busfreq",            strmhz(buf, bd->bi_busfreq));
90 #endif /* CONFIG_405GP, CONFIG_405CR, CONFIG_405EP, CONFIG_XILINX_405, CONFIG_440EP CONFIG_440GR */
91 #if defined(CONFIG_MPC8220)
92         print_str("inpfreq",            strmhz(buf, bd->bi_inpfreq));
93         print_str("flbfreq",            strmhz(buf, bd->bi_flbfreq));
94         print_str("pcifreq",            strmhz(buf, bd->bi_pcifreq));
95         print_str("vcofreq",            strmhz(buf, bd->bi_vcofreq));
96         print_str("pevfreq",            strmhz(buf, bd->bi_pevfreq));
97 #endif
98
99         print_eth(0);
100 #if defined(CONFIG_HAS_ETH1)
101         print_eth(1);
102 #endif
103 #if defined(CONFIG_HAS_ETH2)
104         print_eth(2);
105 #endif
106 #if defined(CONFIG_HAS_ETH3)
107         print_eth(3);
108 #endif
109 #if defined(CONFIG_HAS_ETH4)
110         print_eth(4);
111 #endif
112 #if defined(CONFIG_HAS_ETH5)
113         print_eth(5);
114 #endif
115
116 #ifdef CONFIG_HERMES
117         print_str("ethspeed",           strmhz(buf, bd->bi_ethspeed));
118 #endif
119         printf("IP addr     = %pI4\n", &bd->bi_ip_addr);
120         printf("baudrate    = %6ld bps\n", bd->bi_baudrate);
121         print_num("relocaddr", gd->relocaddr);
122         return 0;
123 }
124
125 #elif defined(CONFIG_NIOS2)
126
127 int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
128 {
129         bd_t *bd = gd->bd;
130
131         print_num("mem start",          (ulong)bd->bi_memstart);
132         print_lnum("mem size",          (u64)bd->bi_memsize);
133         print_num("flash start",        (ulong)bd->bi_flashstart);
134         print_num("flash size",         (ulong)bd->bi_flashsize);
135         print_num("flash offset",       (ulong)bd->bi_flashoffset);
136
137 #if defined(CONFIG_SYS_SRAM_BASE)
138         print_num ("sram start",        (ulong)bd->bi_sramstart);
139         print_num ("sram size",         (ulong)bd->bi_sramsize);
140 #endif
141
142 #if defined(CONFIG_CMD_NET)
143         print_eth(0);
144         printf("ip_addr     = %pI4\n", &bd->bi_ip_addr);
145 #endif
146
147         printf("baudrate    = %ld bps\n", bd->bi_baudrate);
148
149         return 0;
150 }
151
152 #elif defined(CONFIG_MICROBLAZE)
153
154 int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
155 {
156         bd_t *bd = gd->bd;
157         print_num("mem start      ",    (ulong)bd->bi_memstart);
158         print_lnum("mem size       ",   (u64)bd->bi_memsize);
159         print_num("flash start    ",    (ulong)bd->bi_flashstart);
160         print_num("flash size     ",    (ulong)bd->bi_flashsize);
161         print_num("flash offset   ",    (ulong)bd->bi_flashoffset);
162 #if defined(CONFIG_SYS_SRAM_BASE)
163         print_num("sram start     ",    (ulong)bd->bi_sramstart);
164         print_num("sram size      ",    (ulong)bd->bi_sramsize);
165 #endif
166 #if defined(CONFIG_CMD_NET)
167         print_eth(0);
168         printf("ip_addr     = %pI4\n", &bd->bi_ip_addr);
169 #endif
170         printf("baudrate    = %ld bps\n", (ulong)bd->bi_baudrate);
171         return 0;
172 }
173
174 #elif defined(CONFIG_SPARC)
175
176 int do_bdinfo(cmd_tbl_t * cmdtp, int flag, int argc, char * const argv[])
177 {
178         bd_t *bd = gd->bd;
179
180 #ifdef DEBUG
181         print_num("bd address             ", (ulong) bd);
182 #endif
183         print_num("memstart               ", bd->bi_memstart);
184         print_lnum("memsize                ", bd->bi_memsize);
185         print_num("flashstart             ", bd->bi_flashstart);
186         print_num("CONFIG_SYS_MONITOR_BASE       ", CONFIG_SYS_MONITOR_BASE);
187         print_num("CONFIG_ENV_ADDR           ", CONFIG_ENV_ADDR);
188         printf("CONFIG_SYS_RELOC_MONITOR_BASE = 0x%lx (%d)\n", CONFIG_SYS_RELOC_MONITOR_BASE,
189                CONFIG_SYS_MONITOR_LEN);
190         printf("CONFIG_SYS_MALLOC_BASE        = 0x%lx (%d)\n", CONFIG_SYS_MALLOC_BASE,
191                CONFIG_SYS_MALLOC_LEN);
192         printf("CONFIG_SYS_INIT_SP_OFFSET     = 0x%lx (%d)\n", CONFIG_SYS_INIT_SP_OFFSET,
193                CONFIG_SYS_STACK_SIZE);
194         printf("CONFIG_SYS_PROM_OFFSET        = 0x%lx (%d)\n", CONFIG_SYS_PROM_OFFSET,
195                CONFIG_SYS_PROM_SIZE);
196         printf("CONFIG_SYS_GBL_DATA_OFFSET    = 0x%lx (%d)\n", CONFIG_SYS_GBL_DATA_OFFSET,
197                GENERATED_GBL_DATA_SIZE);
198
199 #if defined(CONFIG_CMD_NET)
200         print_eth(0);
201         printf("ip_addr     = %pI4\n", &bd->bi_ip_addr);
202 #endif
203         printf("baudrate               = %6ld bps\n", bd->bi_baudrate);
204         return 0;
205 }
206
207 #elif defined(CONFIG_M68K)
208
209 static void print_str(const char *, const char *);
210
211 int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
212 {
213         bd_t *bd = gd->bd;
214         char buf[32];
215
216         print_num("memstart",           (ulong)bd->bi_memstart);
217         print_lnum("memsize",           (u64)bd->bi_memsize);
218         print_num("flashstart",         (ulong)bd->bi_flashstart);
219         print_num("flashsize",          (ulong)bd->bi_flashsize);
220         print_num("flashoffset",        (ulong)bd->bi_flashoffset);
221 #if defined(CONFIG_SYS_INIT_RAM_ADDR)
222         print_num("sramstart",          (ulong)bd->bi_sramstart);
223         print_num("sramsize",           (ulong)bd->bi_sramsize);
224 #endif
225 #if defined(CONFIG_SYS_MBAR)
226         print_num("mbar",               bd->bi_mbar_base);
227 #endif
228         print_str("cpufreq",            strmhz(buf, bd->bi_intfreq));
229         print_str("busfreq",            strmhz(buf, bd->bi_busfreq));
230 #ifdef CONFIG_PCI
231         print_str("pcifreq",            strmhz(buf, bd->bi_pcifreq));
232 #endif
233 #ifdef CONFIG_EXTRA_CLOCK
234         print_str("flbfreq",            strmhz(buf, bd->bi_flbfreq));
235         print_str("inpfreq",            strmhz(buf, bd->bi_inpfreq));
236         print_str("vcofreq",            strmhz(buf, bd->bi_vcofreq));
237 #endif
238 #if defined(CONFIG_CMD_NET)
239         print_eth(0);
240 #if defined(CONFIG_HAS_ETH1)
241         print_eth(1);
242 #endif
243 #if defined(CONFIG_HAS_ETH2)
244         print_eth(2);
245 #endif
246 #if defined(CONFIG_HAS_ETH3)
247         print_eth(3);
248 #endif
249
250         printf("ip_addr     = %pI4\n", &bd->bi_ip_addr);
251 #endif
252         printf("baudrate    = %ld bps\n", bd->bi_baudrate);
253
254         return 0;
255 }
256
257 #elif defined(CONFIG_BLACKFIN)
258
259 static void print_str(const char *, const char *);
260
261 int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
262 {
263         bd_t *bd = gd->bd;
264         char buf[32];
265
266         printf("U-Boot      = %s\n", bd->bi_r_version);
267         printf("CPU         = %s\n", bd->bi_cpu);
268         printf("Board       = %s\n", bd->bi_board_name);
269         print_str("VCO",        strmhz(buf, bd->bi_vco));
270         print_str("CCLK",       strmhz(buf, bd->bi_cclk));
271         print_str("SCLK",       strmhz(buf, bd->bi_sclk));
272
273         print_num("boot_params",        (ulong)bd->bi_boot_params);
274         print_num("memstart",           (ulong)bd->bi_memstart);
275         print_lnum("memsize",           (u64)bd->bi_memsize);
276         print_num("flashstart",         (ulong)bd->bi_flashstart);
277         print_num("flashsize",          (ulong)bd->bi_flashsize);
278         print_num("flashoffset",        (ulong)bd->bi_flashoffset);
279
280         print_eth(0);
281         printf("ip_addr     = %pI4\n", &bd->bi_ip_addr);
282         printf("baudrate    = %d bps\n", bd->bi_baudrate);
283
284         return 0;
285 }
286
287 #elif defined(CONFIG_MIPS)
288
289 int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
290 {
291         bd_t *bd = gd->bd;
292
293         print_num("boot_params",        (ulong)bd->bi_boot_params);
294         print_num("memstart",           (ulong)bd->bi_memstart);
295         print_lnum("memsize",           (u64)bd->bi_memsize);
296         print_num("flashstart",         (ulong)bd->bi_flashstart);
297         print_num("flashsize",          (ulong)bd->bi_flashsize);
298         print_num("flashoffset",        (ulong)bd->bi_flashoffset);
299
300         print_eth(0);
301         printf("ip_addr     = %pI4\n", &bd->bi_ip_addr);
302         printf("baudrate    = %d bps\n", bd->bi_baudrate);
303
304         return 0;
305 }
306
307 #elif defined(CONFIG_AVR32)
308
309 int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
310 {
311         bd_t *bd = gd->bd;
312
313         print_num("boot_params",        (ulong)bd->bi_boot_params);
314         print_num("memstart",           (ulong)bd->bi_memstart);
315         print_lnum("memsize",           (u64)bd->bi_memsize);
316         print_num("flashstart",         (ulong)bd->bi_flashstart);
317         print_num("flashsize",          (ulong)bd->bi_flashsize);
318         print_num("flashoffset",        (ulong)bd->bi_flashoffset);
319
320         print_eth(0);
321         printf("ip_addr     = %pI4\n", &bd->bi_ip_addr);
322         printf("baudrate    = %lu bps\n", bd->bi_baudrate);
323
324         return 0;
325 }
326
327 #elif defined(CONFIG_ARM)
328
329 int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
330 {
331         int i;
332         bd_t *bd = gd->bd;
333
334         print_num("arch_number",        bd->bi_arch_number);
335         print_num("boot_params",        (ulong)bd->bi_boot_params);
336
337         for (i = 0; i < CONFIG_NR_DRAM_BANKS; ++i) {
338                 print_num("DRAM bank",  i);
339                 print_num("-> start",   bd->bi_dram[i].start);
340                 print_num("-> size",    bd->bi_dram[i].size);
341         }
342
343 #if defined(CONFIG_CMD_NET)
344         print_eth(0);
345         printf("ip_addr     = %pI4\n", &bd->bi_ip_addr);
346 #endif
347         printf("baudrate    = %d bps\n", bd->bi_baudrate);
348 #if !(defined(CONFIG_SYS_ICACHE_OFF) && defined(CONFIG_SYS_DCACHE_OFF))
349         print_num("TLB addr", gd->tlb_addr);
350 #endif
351         print_num("relocaddr", gd->relocaddr);
352         print_num("reloc off", gd->reloc_off);
353         print_num("irq_sp", gd->irq_sp);        /* irq stack pointer */
354         print_num("sp start ", gd->start_addr_sp);
355         print_num("FB base  ", gd->fb_base);
356         return 0;
357 }
358
359 #elif defined(CONFIG_SH)
360
361 int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
362 {
363         bd_t *bd = gd->bd;
364         print_num("mem start      ",    (ulong)bd->bi_memstart);
365         print_lnum("mem size       ",   (u64)bd->bi_memsize);
366         print_num("flash start    ",    (ulong)bd->bi_flashstart);
367         print_num("flash size     ",    (ulong)bd->bi_flashsize);
368         print_num("flash offset   ",    (ulong)bd->bi_flashoffset);
369
370 #if defined(CONFIG_CMD_NET)
371         print_eth(0);
372         printf("ip_addr     = %pI4\n", &bd->bi_ip_addr);
373 #endif
374         printf("baudrate    = %ld bps\n", (ulong)bd->bi_baudrate);
375         return 0;
376 }
377
378 #elif defined(CONFIG_X86)
379
380 static void print_str(const char *, const char *);
381
382 int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
383 {
384         int i;
385         bd_t *bd = gd->bd;
386         char buf[32];
387
388         print_num("boot_params",        (ulong)bd->bi_boot_params);
389         print_num("bi_memstart",        bd->bi_memstart);
390         print_num("bi_memsize",         bd->bi_memsize);
391         print_num("bi_flashstart",      bd->bi_flashstart);
392         print_num("bi_flashsize",       bd->bi_flashsize);
393         print_num("bi_flashoffset",     bd->bi_flashoffset);
394         print_num("bi_sramstart",       bd->bi_sramstart);
395         print_num("bi_sramsize",        bd->bi_sramsize);
396         print_num("bi_bootflags",       bd->bi_bootflags);
397         print_str("cpufreq",            strmhz(buf, bd->bi_intfreq));
398         print_str("busfreq",            strmhz(buf, bd->bi_busfreq));
399
400         for (i = 0; i < CONFIG_NR_DRAM_BANKS; ++i) {
401                 print_num("DRAM bank",  i);
402                 print_num("-> start",   bd->bi_dram[i].start);
403                 print_num("-> size",    bd->bi_dram[i].size);
404         }
405
406 #if defined(CONFIG_CMD_NET)
407         print_eth(0);
408         printf("ip_addr     = %pI4\n", &bd->bi_ip_addr);
409         print_str("ethspeed",       strmhz(buf, bd->bi_ethspeed));
410 #endif
411         printf("baudrate    = %d bps\n", bd->bi_baudrate);
412
413         return 0;
414 }
415
416 #else
417  #error "a case for this architecture does not exist!"
418 #endif
419
420 static void print_num(const char *name, ulong value)
421 {
422         printf("%-12s= 0x%08lX\n", name, value);
423 }
424
425 #if !(defined(CONFIG_ARM) || defined(CONFIG_M68K)) || defined(CONFIG_CMD_NET)
426 static void print_eth(int idx)
427 {
428         char name[10], *val;
429         if (idx)
430                 sprintf(name, "eth%iaddr", idx);
431         else
432                 strcpy(name, "ethaddr");
433         val = getenv(name);
434         if (!val)
435                 val = "(not set)";
436         printf("%-12s= %s\n", name, val);
437 }
438 #endif
439
440 #if (!defined(CONFIG_ARM) && !defined(CONFIG_X86))
441 static void print_lnum(const char *name, u64 value)
442 {
443         printf("%-12s= 0x%.8llX\n", name, value);
444 }
445 #endif
446
447 #if     defined(CONFIG_PPC) || \
448         defined(CONFIG_M68K) || \
449         defined(CONFIG_BLACKFIN) || \
450         defined(CONFIG_X86)
451 static void print_str(const char *name, const char *str)
452 {
453         printf("%-12s= %6s MHz\n", name, str);
454 }
455 #endif  /* CONFIG_PPC */
456
457
458 /* -------------------------------------------------------------------- */
459
460 U_BOOT_CMD(
461         bdinfo, 1,      1,      do_bdinfo,
462         "print Board Info structure",
463         ""
464 );