mirror of
https://github.com/brain-hackers/u-boot-brain
synced 2024-08-20 17:08:52 +09:00
![Simon Glass](/assets/img/avatar_default.png)
This is useful information to show how close we are to the limit. At present it is only available by enabling DEBUG in board_r.c. Make it available with the 'bdinfo' command also. Note that this affects ARM only. The bdinfo command is different for each architecture. Rather than duplicating the code it would be better to refactor it (as was done with global_data). Signed-off-by: Simon Glass <sjg@chromium.org>
582 lines
15 KiB
C
582 lines
15 KiB
C
/*
|
|
* (C) Copyright 2003
|
|
* Wolfgang Denk, DENX Software Engineering, wd@denx.de.
|
|
*
|
|
* SPDX-License-Identifier: GPL-2.0+
|
|
*/
|
|
|
|
/*
|
|
* Boot support
|
|
*/
|
|
#include <common.h>
|
|
#include <command.h>
|
|
#include <linux/compiler.h>
|
|
|
|
DECLARE_GLOBAL_DATA_PTR;
|
|
|
|
__maybe_unused
|
|
static void print_num(const char *name, ulong value)
|
|
{
|
|
printf("%-12s= 0x%08lX\n", name, value);
|
|
}
|
|
|
|
__maybe_unused
|
|
static void print_eth(int idx)
|
|
{
|
|
char name[10], *val;
|
|
if (idx)
|
|
sprintf(name, "eth%iaddr", idx);
|
|
else
|
|
strcpy(name, "ethaddr");
|
|
val = getenv(name);
|
|
if (!val)
|
|
val = "(not set)";
|
|
printf("%-12s= %s\n", name, val);
|
|
}
|
|
|
|
#ifndef CONFIG_DM_ETH
|
|
__maybe_unused
|
|
static void print_eths(void)
|
|
{
|
|
struct eth_device *dev;
|
|
int i = 0;
|
|
|
|
do {
|
|
dev = eth_get_dev_by_index(i);
|
|
if (dev) {
|
|
printf("eth%dname = %s\n", i, dev->name);
|
|
print_eth(i);
|
|
i++;
|
|
}
|
|
} while (dev);
|
|
|
|
printf("current eth = %s\n", eth_get_name());
|
|
printf("ip_addr = %s\n", getenv("ipaddr"));
|
|
}
|
|
#endif
|
|
|
|
__maybe_unused
|
|
static void print_lnum(const char *name, unsigned long long value)
|
|
{
|
|
printf("%-12s= 0x%.8llX\n", name, value);
|
|
}
|
|
|
|
__maybe_unused
|
|
static void print_mhz(const char *name, unsigned long hz)
|
|
{
|
|
char buf[32];
|
|
|
|
printf("%-12s= %6s MHz\n", name, strmhz(buf, hz));
|
|
}
|
|
|
|
#if defined(CONFIG_PPC)
|
|
void __weak board_detail(void)
|
|
{
|
|
/* Please define boot_detail() for your platform */
|
|
}
|
|
|
|
int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
|
|
{
|
|
bd_t *bd = gd->bd;
|
|
|
|
#ifdef DEBUG
|
|
print_num("bd address", (ulong)bd);
|
|
#endif
|
|
print_num("memstart", bd->bi_memstart);
|
|
print_lnum("memsize", bd->bi_memsize);
|
|
print_num("flashstart", bd->bi_flashstart);
|
|
print_num("flashsize", bd->bi_flashsize);
|
|
print_num("flashoffset", bd->bi_flashoffset);
|
|
print_num("sramstart", bd->bi_sramstart);
|
|
print_num("sramsize", bd->bi_sramsize);
|
|
#if defined(CONFIG_5xx) || defined(CONFIG_8xx) || \
|
|
defined(CONFIG_MPC8260) || defined(CONFIG_E500)
|
|
print_num("immr_base", bd->bi_immr_base);
|
|
#endif
|
|
print_num("bootflags", bd->bi_bootflags);
|
|
#if defined(CONFIG_405EP) || \
|
|
defined(CONFIG_405GP) || \
|
|
defined(CONFIG_440EP) || defined(CONFIG_440EPX) || \
|
|
defined(CONFIG_440GR) || defined(CONFIG_440GRX) || \
|
|
defined(CONFIG_440SP) || defined(CONFIG_440SPE) || \
|
|
defined(CONFIG_XILINX_405)
|
|
print_mhz("procfreq", bd->bi_procfreq);
|
|
print_mhz("plb_busfreq", bd->bi_plb_busfreq);
|
|
#if defined(CONFIG_405EP) || defined(CONFIG_405GP) || \
|
|
defined(CONFIG_440EP) || defined(CONFIG_440EPX) || \
|
|
defined(CONFIG_440GR) || defined(CONFIG_440GRX) || \
|
|
defined(CONFIG_440SPE) || defined(CONFIG_XILINX_405)
|
|
print_mhz("pci_busfreq", bd->bi_pci_busfreq);
|
|
#endif
|
|
#else /* ! CONFIG_405GP, CONFIG_405EP, CONFIG_XILINX_405, CONFIG_440EP CONFIG_440GR */
|
|
#if defined(CONFIG_CPM2)
|
|
print_mhz("vco", bd->bi_vco);
|
|
print_mhz("sccfreq", bd->bi_sccfreq);
|
|
print_mhz("brgfreq", bd->bi_brgfreq);
|
|
#endif
|
|
print_mhz("intfreq", bd->bi_intfreq);
|
|
#if defined(CONFIG_CPM2)
|
|
print_mhz("cpmfreq", bd->bi_cpmfreq);
|
|
#endif
|
|
print_mhz("busfreq", bd->bi_busfreq);
|
|
#endif /* CONFIG_405GP, CONFIG_405EP, CONFIG_XILINX_405, CONFIG_440EP CONFIG_440GR */
|
|
|
|
#ifdef CONFIG_ENABLE_36BIT_PHYS
|
|
#ifdef CONFIG_PHYS_64BIT
|
|
puts("addressing = 36-bit\n");
|
|
#else
|
|
puts("addressing = 32-bit\n");
|
|
#endif
|
|
#endif
|
|
|
|
print_eth(0);
|
|
#if defined(CONFIG_HAS_ETH1)
|
|
print_eth(1);
|
|
#endif
|
|
#if defined(CONFIG_HAS_ETH2)
|
|
print_eth(2);
|
|
#endif
|
|
#if defined(CONFIG_HAS_ETH3)
|
|
print_eth(3);
|
|
#endif
|
|
#if defined(CONFIG_HAS_ETH4)
|
|
print_eth(4);
|
|
#endif
|
|
#if defined(CONFIG_HAS_ETH5)
|
|
print_eth(5);
|
|
#endif
|
|
|
|
printf("IP addr = %s\n", getenv("ipaddr"));
|
|
printf("baudrate = %6u bps\n", gd->baudrate);
|
|
print_num("relocaddr", gd->relocaddr);
|
|
board_detail();
|
|
return 0;
|
|
}
|
|
|
|
#elif defined(CONFIG_NIOS2)
|
|
|
|
int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
|
|
{
|
|
int i;
|
|
bd_t *bd = gd->bd;
|
|
|
|
for (i = 0; i < CONFIG_NR_DRAM_BANKS; ++i) {
|
|
print_num("DRAM bank", i);
|
|
print_num("-> start", bd->bi_dram[i].start);
|
|
print_num("-> size", bd->bi_dram[i].size);
|
|
}
|
|
|
|
print_num("flash start", (ulong)bd->bi_flashstart);
|
|
print_num("flash size", (ulong)bd->bi_flashsize);
|
|
print_num("flash offset", (ulong)bd->bi_flashoffset);
|
|
|
|
#if defined(CONFIG_SYS_SRAM_BASE)
|
|
print_num ("sram start", (ulong)bd->bi_sramstart);
|
|
print_num ("sram size", (ulong)bd->bi_sramsize);
|
|
#endif
|
|
|
|
#if defined(CONFIG_CMD_NET)
|
|
print_eth(0);
|
|
printf("ip_addr = %s\n", getenv("ipaddr"));
|
|
#endif
|
|
|
|
printf("baudrate = %u bps\n", gd->baudrate);
|
|
|
|
return 0;
|
|
}
|
|
|
|
#elif defined(CONFIG_MICROBLAZE)
|
|
|
|
int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
|
|
{
|
|
bd_t *bd = gd->bd;
|
|
int i;
|
|
|
|
for (i = 0; i < CONFIG_NR_DRAM_BANKS; ++i) {
|
|
print_num("DRAM bank", i);
|
|
print_num("-> start", bd->bi_dram[i].start);
|
|
print_num("-> size", bd->bi_dram[i].size);
|
|
}
|
|
|
|
print_num("flash start ", (ulong)bd->bi_flashstart);
|
|
print_num("flash size ", (ulong)bd->bi_flashsize);
|
|
print_num("flash offset ", (ulong)bd->bi_flashoffset);
|
|
#if defined(CONFIG_SYS_SRAM_BASE)
|
|
print_num("sram start ", (ulong)bd->bi_sramstart);
|
|
print_num("sram size ", (ulong)bd->bi_sramsize);
|
|
#endif
|
|
#if defined(CONFIG_CMD_NET) && !defined(CONFIG_DM_ETH)
|
|
print_eths();
|
|
#endif
|
|
printf("baudrate = %u bps\n", gd->baudrate);
|
|
print_num("relocaddr", gd->relocaddr);
|
|
print_num("reloc off", gd->reloc_off);
|
|
print_num("fdt_blob", (ulong)gd->fdt_blob);
|
|
print_num("new_fdt", (ulong)gd->new_fdt);
|
|
print_num("fdt_size", (ulong)gd->fdt_size);
|
|
|
|
return 0;
|
|
}
|
|
|
|
#elif defined(CONFIG_SPARC)
|
|
|
|
int do_bdinfo(cmd_tbl_t * cmdtp, int flag, int argc, char * const argv[])
|
|
{
|
|
bd_t *bd = gd->bd;
|
|
|
|
#ifdef DEBUG
|
|
print_num("bd address ", (ulong) bd);
|
|
#endif
|
|
print_num("memstart ", bd->bi_memstart);
|
|
print_lnum("memsize ", bd->bi_memsize);
|
|
print_num("flashstart ", bd->bi_flashstart);
|
|
print_num("CONFIG_SYS_MONITOR_BASE ", CONFIG_SYS_MONITOR_BASE);
|
|
print_num("CONFIG_ENV_ADDR ", CONFIG_ENV_ADDR);
|
|
printf("CONFIG_SYS_RELOC_MONITOR_BASE = 0x%x (%d)\n", CONFIG_SYS_RELOC_MONITOR_BASE,
|
|
CONFIG_SYS_MONITOR_LEN);
|
|
printf("CONFIG_SYS_MALLOC_BASE = 0x%x (%d)\n", CONFIG_SYS_MALLOC_BASE,
|
|
CONFIG_SYS_MALLOC_LEN);
|
|
printf("CONFIG_SYS_INIT_SP_OFFSET = 0x%x (%d)\n", CONFIG_SYS_INIT_SP_OFFSET,
|
|
CONFIG_SYS_STACK_SIZE);
|
|
printf("CONFIG_SYS_PROM_OFFSET = 0x%x (%d)\n", CONFIG_SYS_PROM_OFFSET,
|
|
CONFIG_SYS_PROM_SIZE);
|
|
printf("CONFIG_SYS_GBL_DATA_OFFSET = 0x%x (%d)\n", CONFIG_SYS_GBL_DATA_OFFSET,
|
|
GENERATED_GBL_DATA_SIZE);
|
|
|
|
#if defined(CONFIG_CMD_NET)
|
|
print_eth(0);
|
|
printf("ip_addr = %s\n", getenv("ipaddr"));
|
|
#endif
|
|
printf("baudrate = %6u bps\n", gd->baudrate);
|
|
return 0;
|
|
}
|
|
|
|
#elif defined(CONFIG_M68K)
|
|
|
|
int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
|
|
{
|
|
bd_t *bd = gd->bd;
|
|
|
|
print_num("memstart", (ulong)bd->bi_memstart);
|
|
print_lnum("memsize", (u64)bd->bi_memsize);
|
|
print_num("flashstart", (ulong)bd->bi_flashstart);
|
|
print_num("flashsize", (ulong)bd->bi_flashsize);
|
|
print_num("flashoffset", (ulong)bd->bi_flashoffset);
|
|
#if defined(CONFIG_SYS_INIT_RAM_ADDR)
|
|
print_num("sramstart", (ulong)bd->bi_sramstart);
|
|
print_num("sramsize", (ulong)bd->bi_sramsize);
|
|
#endif
|
|
#if defined(CONFIG_SYS_MBAR)
|
|
print_num("mbar", bd->bi_mbar_base);
|
|
#endif
|
|
print_mhz("cpufreq", bd->bi_intfreq);
|
|
print_mhz("busfreq", bd->bi_busfreq);
|
|
#ifdef CONFIG_PCI
|
|
print_mhz("pcifreq", bd->bi_pcifreq);
|
|
#endif
|
|
#ifdef CONFIG_EXTRA_CLOCK
|
|
print_mhz("flbfreq", bd->bi_flbfreq);
|
|
print_mhz("inpfreq", bd->bi_inpfreq);
|
|
print_mhz("vcofreq", bd->bi_vcofreq);
|
|
#endif
|
|
#if defined(CONFIG_CMD_NET)
|
|
print_eth(0);
|
|
#if defined(CONFIG_HAS_ETH1)
|
|
print_eth(1);
|
|
#endif
|
|
#if defined(CONFIG_HAS_ETH2)
|
|
print_eth(2);
|
|
#endif
|
|
#if defined(CONFIG_HAS_ETH3)
|
|
print_eth(3);
|
|
#endif
|
|
|
|
printf("ip_addr = %s\n", getenv("ipaddr"));
|
|
#endif
|
|
printf("baudrate = %u bps\n", gd->baudrate);
|
|
|
|
return 0;
|
|
}
|
|
|
|
#elif defined(CONFIG_BLACKFIN)
|
|
|
|
int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
|
|
{
|
|
bd_t *bd = gd->bd;
|
|
|
|
printf("U-Boot = %s\n", bd->bi_r_version);
|
|
printf("CPU = %s\n", bd->bi_cpu);
|
|
printf("Board = %s\n", bd->bi_board_name);
|
|
print_mhz("VCO", bd->bi_vco);
|
|
print_mhz("CCLK", bd->bi_cclk);
|
|
print_mhz("SCLK", bd->bi_sclk);
|
|
|
|
print_num("boot_params", (ulong)bd->bi_boot_params);
|
|
print_num("memstart", (ulong)bd->bi_memstart);
|
|
print_lnum("memsize", (u64)bd->bi_memsize);
|
|
print_num("flashstart", (ulong)bd->bi_flashstart);
|
|
print_num("flashsize", (ulong)bd->bi_flashsize);
|
|
print_num("flashoffset", (ulong)bd->bi_flashoffset);
|
|
|
|
print_eth(0);
|
|
printf("ip_addr = %s\n", getenv("ipaddr"));
|
|
printf("baudrate = %u bps\n", gd->baudrate);
|
|
|
|
return 0;
|
|
}
|
|
|
|
#elif defined(CONFIG_MIPS)
|
|
|
|
int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
|
|
{
|
|
bd_t *bd = gd->bd;
|
|
|
|
print_num("boot_params", (ulong)bd->bi_boot_params);
|
|
print_num("memstart", (ulong)bd->bi_memstart);
|
|
print_lnum("memsize", (u64)bd->bi_memsize);
|
|
print_num("flashstart", (ulong)bd->bi_flashstart);
|
|
print_num("flashsize", (ulong)bd->bi_flashsize);
|
|
print_num("flashoffset", (ulong)bd->bi_flashoffset);
|
|
|
|
print_eth(0);
|
|
printf("ip_addr = %s\n", getenv("ipaddr"));
|
|
printf("baudrate = %u bps\n", gd->baudrate);
|
|
print_num("relocaddr", gd->relocaddr);
|
|
print_num("reloc off", gd->reloc_off);
|
|
|
|
return 0;
|
|
}
|
|
|
|
#elif defined(CONFIG_AVR32)
|
|
|
|
int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
|
|
{
|
|
bd_t *bd = gd->bd;
|
|
|
|
print_num("boot_params", (ulong)bd->bi_boot_params);
|
|
print_num("memstart", (ulong)bd->bi_dram[0].start);
|
|
print_lnum("memsize", (u64)bd->bi_dram[0].size);
|
|
print_num("flashstart", (ulong)bd->bi_flashstart);
|
|
print_num("flashsize", (ulong)bd->bi_flashsize);
|
|
print_num("flashoffset", (ulong)bd->bi_flashoffset);
|
|
|
|
print_eth(0);
|
|
printf("ip_addr = %s\n", getenv("ipaddr"));
|
|
printf("baudrate = %u bps\n", gd->baudrate);
|
|
|
|
return 0;
|
|
}
|
|
|
|
#elif defined(CONFIG_ARM)
|
|
|
|
static int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc,
|
|
char * const argv[])
|
|
{
|
|
int i;
|
|
bd_t *bd = gd->bd;
|
|
|
|
print_num("arch_number", bd->bi_arch_number);
|
|
print_num("boot_params", (ulong)bd->bi_boot_params);
|
|
|
|
for (i = 0; i < CONFIG_NR_DRAM_BANKS; ++i) {
|
|
print_num("DRAM bank", i);
|
|
print_num("-> start", bd->bi_dram[i].start);
|
|
print_num("-> size", bd->bi_dram[i].size);
|
|
}
|
|
|
|
#ifdef CONFIG_SYS_MEM_RESERVE_SECURE
|
|
if (gd->arch.secure_ram & MEM_RESERVE_SECURE_SECURED) {
|
|
print_num("Secure ram",
|
|
gd->arch.secure_ram & MEM_RESERVE_SECURE_ADDR_MASK);
|
|
}
|
|
#endif
|
|
#if defined(CONFIG_CMD_NET) && !defined(CONFIG_DM_ETH)
|
|
print_eths();
|
|
#endif
|
|
printf("baudrate = %u bps\n", gd->baudrate);
|
|
#if !(defined(CONFIG_SYS_ICACHE_OFF) && defined(CONFIG_SYS_DCACHE_OFF))
|
|
print_num("TLB addr", gd->arch.tlb_addr);
|
|
#endif
|
|
print_num("relocaddr", gd->relocaddr);
|
|
print_num("reloc off", gd->reloc_off);
|
|
print_num("irq_sp", gd->irq_sp); /* irq stack pointer */
|
|
print_num("sp start ", gd->start_addr_sp);
|
|
#if defined(CONFIG_LCD) || defined(CONFIG_VIDEO)
|
|
print_num("FB base ", gd->fb_base);
|
|
#endif
|
|
/*
|
|
* TODO: Currently only support for davinci SOC's is added.
|
|
* Remove this check once all the board implement this.
|
|
*/
|
|
#ifdef CONFIG_CLOCKS
|
|
printf("ARM frequency = %ld MHz\n", gd->bd->bi_arm_freq);
|
|
printf("DSP frequency = %ld MHz\n", gd->bd->bi_dsp_freq);
|
|
printf("DDR frequency = %ld MHz\n", gd->bd->bi_ddr_freq);
|
|
#endif
|
|
#ifdef CONFIG_BOARD_TYPES
|
|
printf("Board Type = %ld\n", gd->board_type);
|
|
#endif
|
|
#ifdef CONFIG_SYS_MALLOC_F
|
|
printf("Early malloc usage: %lx / %x\n", gd->malloc_ptr,
|
|
CONFIG_SYS_MALLOC_F_LEN);
|
|
#endif
|
|
|
|
return 0;
|
|
}
|
|
|
|
#elif defined(CONFIG_SH)
|
|
|
|
int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
|
|
{
|
|
bd_t *bd = gd->bd;
|
|
print_num("mem start ", (ulong)bd->bi_memstart);
|
|
print_lnum("mem size ", (u64)bd->bi_memsize);
|
|
print_num("flash start ", (ulong)bd->bi_flashstart);
|
|
print_num("flash size ", (ulong)bd->bi_flashsize);
|
|
print_num("flash offset ", (ulong)bd->bi_flashoffset);
|
|
|
|
#if defined(CONFIG_CMD_NET)
|
|
print_eth(0);
|
|
printf("ip_addr = %s\n", getenv("ipaddr"));
|
|
#endif
|
|
printf("baudrate = %u bps\n", gd->baudrate);
|
|
return 0;
|
|
}
|
|
|
|
#elif defined(CONFIG_X86)
|
|
|
|
int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
|
|
{
|
|
int i;
|
|
bd_t *bd = gd->bd;
|
|
|
|
print_num("boot_params", (ulong)bd->bi_boot_params);
|
|
print_num("bi_memstart", bd->bi_memstart);
|
|
print_num("bi_memsize", bd->bi_memsize);
|
|
print_num("bi_flashstart", bd->bi_flashstart);
|
|
print_num("bi_flashsize", bd->bi_flashsize);
|
|
print_num("bi_flashoffset", bd->bi_flashoffset);
|
|
print_num("bi_sramstart", bd->bi_sramstart);
|
|
print_num("bi_sramsize", bd->bi_sramsize);
|
|
print_num("bi_bootflags", bd->bi_bootflags);
|
|
print_mhz("cpufreq", bd->bi_intfreq);
|
|
print_mhz("busfreq", bd->bi_busfreq);
|
|
|
|
for (i = 0; i < CONFIG_NR_DRAM_BANKS; ++i) {
|
|
print_num("DRAM bank", i);
|
|
print_num("-> start", bd->bi_dram[i].start);
|
|
print_num("-> size", bd->bi_dram[i].size);
|
|
}
|
|
|
|
#if defined(CONFIG_CMD_NET)
|
|
print_eth(0);
|
|
printf("ip_addr = %s\n", getenv("ipaddr"));
|
|
print_mhz("ethspeed", bd->bi_ethspeed);
|
|
#endif
|
|
printf("baudrate = %u bps\n", gd->baudrate);
|
|
|
|
return 0;
|
|
}
|
|
|
|
#elif defined(CONFIG_SANDBOX)
|
|
|
|
int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
|
|
{
|
|
int i;
|
|
bd_t *bd = gd->bd;
|
|
|
|
print_num("boot_params", (ulong)bd->bi_boot_params);
|
|
|
|
for (i = 0; i < CONFIG_NR_DRAM_BANKS; ++i) {
|
|
print_num("DRAM bank", i);
|
|
print_num("-> start", bd->bi_dram[i].start);
|
|
print_num("-> size", bd->bi_dram[i].size);
|
|
}
|
|
|
|
#if defined(CONFIG_CMD_NET)
|
|
print_eth(0);
|
|
printf("ip_addr = %s\n", getenv("ipaddr"));
|
|
#endif
|
|
#if defined(CONFIG_LCD) || defined(CONFIG_VIDEO)
|
|
print_num("FB base ", gd->fb_base);
|
|
#endif
|
|
return 0;
|
|
}
|
|
|
|
#elif defined(CONFIG_NDS32)
|
|
|
|
int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
|
|
{
|
|
int i;
|
|
bd_t *bd = gd->bd;
|
|
|
|
print_num("arch_number", bd->bi_arch_number);
|
|
print_num("boot_params", (ulong)bd->bi_boot_params);
|
|
|
|
for (i = 0; i < CONFIG_NR_DRAM_BANKS; ++i) {
|
|
print_num("DRAM bank", i);
|
|
print_num("-> start", bd->bi_dram[i].start);
|
|
print_num("-> size", bd->bi_dram[i].size);
|
|
}
|
|
|
|
#if defined(CONFIG_CMD_NET)
|
|
print_eth(0);
|
|
printf("ip_addr = %s\n", getenv("ipaddr"));
|
|
#endif
|
|
printf("baudrate = %u bps\n", gd->baudrate);
|
|
|
|
return 0;
|
|
}
|
|
|
|
#elif defined(CONFIG_OPENRISC)
|
|
|
|
int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
|
|
{
|
|
bd_t *bd = gd->bd;
|
|
|
|
print_num("mem start", (ulong)bd->bi_memstart);
|
|
print_lnum("mem size", (u64)bd->bi_memsize);
|
|
print_num("flash start", (ulong)bd->bi_flashstart);
|
|
print_num("flash size", (ulong)bd->bi_flashsize);
|
|
print_num("flash offset", (ulong)bd->bi_flashoffset);
|
|
|
|
#if defined(CONFIG_CMD_NET)
|
|
print_eth(0);
|
|
printf("ip_addr = %s\n", getenv("ipaddr"));
|
|
#endif
|
|
|
|
printf("baudrate = %u bps\n", gd->baudrate);
|
|
|
|
return 0;
|
|
}
|
|
|
|
#elif defined(CONFIG_ARC)
|
|
|
|
int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
|
|
{
|
|
bd_t *bd = gd->bd;
|
|
|
|
print_num("mem start", bd->bi_memstart);
|
|
print_lnum("mem size", bd->bi_memsize);
|
|
|
|
#if defined(CONFIG_CMD_NET)
|
|
print_eth(0);
|
|
printf("ip_addr = %s\n", getenv("ipaddr"));
|
|
#endif
|
|
printf("baudrate = %d bps\n", gd->baudrate);
|
|
|
|
return 0;
|
|
}
|
|
|
|
#else
|
|
#error "a case for this architecture does not exist!"
|
|
#endif
|
|
|
|
/* -------------------------------------------------------------------- */
|
|
|
|
U_BOOT_CMD(
|
|
bdinfo, 1, 1, do_bdinfo,
|
|
"print Board Info structure",
|
|
""
|
|
);
|