bdinfo: net: Drop legacy ethernet bdinfo
[platform/kernel/u-boot.git] / cmd / bdinfo.c
1 // SPDX-License-Identifier: GPL-2.0+
2 /*
3  * (C) Copyright 2003
4  * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
5  */
6
7 /*
8  * Boot support
9  */
10 #include <common.h>
11 #include <command.h>
12 #include <env.h>
13 #include <net.h>
14 #include <vsprintf.h>
15 #include <asm/cache.h>
16 #include <linux/compiler.h>
17
18 DECLARE_GLOBAL_DATA_PTR;
19
20 static void print_num(const char *name, ulong value)
21 {
22         printf("%-12s= 0x%0*lx\n", name, 2 * (int)sizeof(value), value);
23 }
24
25 __maybe_unused
26 static void print_eth(int idx)
27 {
28         char name[10], *val;
29         if (idx)
30                 sprintf(name, "eth%iaddr", idx);
31         else
32                 strcpy(name, "ethaddr");
33         val = env_get(name);
34         if (!val)
35                 val = "(not set)";
36         printf("%-12s= %s\n", name, val);
37 }
38
39 static void print_lnum(const char *name, unsigned long long value)
40 {
41         printf("%-12s= 0x%.8llX\n", name, value);
42 }
43
44 static void print_mhz(const char *name, unsigned long hz)
45 {
46         char buf[32];
47
48         printf("%-12s= %6s MHz\n", name, strmhz(buf, hz));
49 }
50
51 static void print_bi_dram(const bd_t *bd)
52 {
53 #ifdef CONFIG_NR_DRAM_BANKS
54         int i;
55
56         for (i = 0; i < CONFIG_NR_DRAM_BANKS; ++i) {
57                 if (bd->bi_dram[i].size) {
58                         print_num("DRAM bank",  i);
59                         print_num("-> start",   bd->bi_dram[i].start);
60                         print_num("-> size",    bd->bi_dram[i].size);
61                 }
62         }
63 #endif
64 }
65
66 static void print_eth_ip_addr(void)
67 {
68 #if defined(CONFIG_CMD_NET)
69         print_eth(0);
70         printf("IP addr     = %s\n", env_get("ipaddr"));
71 #endif
72 }
73
74 void __weak board_detail(void)
75 {
76         /* Please define board_detail() for your PPC platform */
77 }
78
79 int do_bdinfo(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
80 {
81         bd_t *bd = gd->bd;
82
83 #ifdef DEBUG
84         print_num("bd address", (ulong)bd);
85 #endif
86         if (IS_ENABLED(CONFIG_ARM))
87                 print_num("arch_number", bd->bi_arch_number);
88         print_num("boot_params", (ulong)bd->bi_boot_params);
89         print_bi_dram(bd);
90         print_num("memstart", (ulong)bd->bi_memstart);
91         print_lnum("memsize", (u64)bd->bi_memsize);
92         print_num("flashstart", (ulong)bd->bi_flashstart);
93         print_num("flashsize", (ulong)bd->bi_flashsize);
94         print_num("flashoffset", (ulong)bd->bi_flashoffset);
95         print_eth_ip_addr();
96         printf("baudrate    = %u bps\n", gd->baudrate);
97         print_num("relocaddr", gd->relocaddr);
98         print_num("reloc off", gd->reloc_off);
99         printf("%-12s= %u-bit\n", "Build", (uint)sizeof(void *) * 8);
100         if (IS_ENABLED(CONFIG_CMD_NET))
101                 printf("current eth = %s\n", eth_get_name());
102         print_num("fdt_blob", (ulong)gd->fdt_blob);
103         print_num("new_fdt", (ulong)gd->new_fdt);
104         print_num("fdt_size", (ulong)gd->fdt_size);
105 #if defined(CONFIG_LCD) || defined(CONFIG_VIDEO) || defined(CONFIG_DM_VIDEO)
106         print_num("FB base  ", gd->fb_base);
107 #endif
108
109         /* This section is used only by ARM */
110 #ifdef CONFIG_ARM
111 #ifdef CONFIG_SYS_MEM_RESERVE_SECURE
112         if (gd->arch.secure_ram & MEM_RESERVE_SECURE_SECURED) {
113                 print_num("Secure ram",
114                           gd->arch.secure_ram & MEM_RESERVE_SECURE_ADDR_MASK);
115         }
116 #endif
117 #ifdef CONFIG_RESV_RAM
118         if (gd->arch.resv_ram)
119                 print_num("Reserved ram", gd->arch.resv_ram);
120 #endif
121 #if !(CONFIG_IS_ENABLED(SYS_ICACHE_OFF) && CONFIG_IS_ENABLED(SYS_DCACHE_OFF))
122         print_num("TLB addr", gd->arch.tlb_addr);
123 #endif
124         print_num("irq_sp", gd->irq_sp);        /* irq stack pointer */
125         print_num("sp start ", gd->start_addr_sp);
126         /*
127          * TODO: Currently only support for davinci SOC's is added.
128          * Remove this check once all the board implement this.
129          */
130 #ifdef CONFIG_CLOCKS
131         printf("ARM frequency = %ld MHz\n", gd->bd->bi_arm_freq);
132         printf("DSP frequency = %ld MHz\n", gd->bd->bi_dsp_freq);
133         printf("DDR frequency = %ld MHz\n", gd->bd->bi_ddr_freq);
134 #endif
135 #ifdef CONFIG_BOARD_TYPES
136         printf("Board Type  = %ld\n", gd->board_type);
137 #endif
138 #if CONFIG_VAL(SYS_MALLOC_F_LEN)
139         printf("Early malloc usage: %lx / %x\n", gd->malloc_ptr,
140                CONFIG_VAL(SYS_MALLOC_F_LEN));
141 #endif
142 #if CONFIG_IS_ENABLED(MULTI_DTB_FIT)
143         print_num("multi_dtb_fit", (ulong)gd->multi_dtb_fit);
144 #endif
145 #endif /* CONFIG_ARM */
146
147         /* This section is used only by ppc */
148 #if defined(CONFIG_MPC8xx) || defined(CONFIG_E500)
149         print_num("immr_base", bd->bi_immr_base);
150 #endif
151         if (IS_ENABLED(CONFIG_PPC)) {
152                 print_num("bootflags", bd->bi_bootflags);
153                 print_mhz("intfreq", bd->bi_intfreq);
154 #ifdef CONFIG_ENABLE_36BIT_PHYS
155                 if (IS_ENABLED(CONFIG_PHYS_64BIT))
156                         puts("addressing  = 36-bit\n");
157                 else
158                         puts("addressing  = 32-bit\n");
159 #endif
160                 board_detail();
161         }
162 #if defined(CONFIG_CPM2)
163         print_mhz("cpmfreq", bd->bi_cpmfreq);
164         print_mhz("vco", bd->bi_vco);
165         print_mhz("sccfreq", bd->bi_sccfreq);
166         print_mhz("brgfreq", bd->bi_brgfreq);
167 #endif
168
169         /* This is used by m68k and ppc */
170 #if defined(CONFIG_SYS_INIT_RAM_ADDR)
171         print_num("sramstart", (ulong)bd->bi_sramstart);
172         print_num("sramsize", (ulong)bd->bi_sramsize);
173 #endif
174         if (IS_ENABLED(CONFIG_PPC) || IS_ENABLED(CONFIG_M68K))
175                 print_mhz("busfreq", bd->bi_busfreq);
176
177         /* The rest are used only by m68k */
178 #ifdef CONFIG_M68K
179 #if defined(CONFIG_SYS_MBAR)
180         print_num("mbar", bd->bi_mbar_base);
181 #endif
182         print_mhz("cpufreq", bd->bi_intfreq);
183         if (IS_ENABLED(CONFIG_PCI))
184                 print_mhz("pcifreq", bd->bi_pcifreq);
185 #ifdef CONFIG_EXTRA_CLOCK
186         print_mhz("flbfreq", bd->bi_flbfreq);
187         print_mhz("inpfreq", bd->bi_inpfreq);
188         print_mhz("vcofreq", bd->bi_vcofreq);
189 #endif
190 #endif
191
192         return 0;
193 }
194
195 /* -------------------------------------------------------------------- */
196
197 U_BOOT_CMD(
198         bdinfo, 1,      1,      do_bdinfo,
199         "print Board Info structure",
200         ""
201 );