[U-Boot] [PATCH V2] cmd_bdinfo: move implementation to arch instead of common
Jean-Christophe PLAGNIOL-VILLARD
plagnioj at jcrosoft.com
Wed Nov 12 20:13:20 CET 2008
introduce two new weak functions board_bdinfo and soc_bdinfo to allow board and
soc to print more information
Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj at jcrosoft.com>
---
common/cmd_bdinfo.c | 504 ++++++-----------------------------------------
include/bdinfo.h | 54 +++++
lib_arm/Makefile | 1 +
lib_arm/bdinfo.c | 58 ++++++
lib_avr32/Makefile | 1 +
lib_avr32/bdinfo.c | 50 +++++
lib_blackfin/Makefile | 1 +
lib_blackfin/bdinfo.c | 57 ++++++
lib_i386/Makefile | 1 +
lib_i386/bdinfo.c | 50 +++++
lib_m68k/Makefile | 1 +
lib_m68k/bdinfo.c | 83 ++++++++
lib_microblaze/Makefile | 1 +
lib_microblaze/bdinfo.c | 54 +++++
lib_mips/Makefile | 1 +
lib_mips/bdinfo.c | 50 +++++
lib_nios/Makefile | 1 +
lib_nios/bdinfo.c | 49 +++++
lib_nios2/Makefile | 1 +
lib_nios2/bdinfo.c | 57 ++++++
lib_ppc/Makefile | 1 +
lib_ppc/bdinfo.c | 119 +++++++++++
lib_sh/Makefile | 1 +
lib_sh/bdinfo.c | 50 +++++
lib_sparc/Makefile | 13 +-
lib_sparc/bdinfo.c | 64 ++++++
26 files changed, 872 insertions(+), 451 deletions(-)
rewrite common/cmd_bdinfo.c (90%)
create mode 100644 include/bdinfo.h
create mode 100644 lib_arm/bdinfo.c
create mode 100644 lib_avr32/bdinfo.c
create mode 100644 lib_blackfin/bdinfo.c
create mode 100644 lib_i386/bdinfo.c
create mode 100644 lib_m68k/bdinfo.c
create mode 100644 lib_microblaze/bdinfo.c
create mode 100644 lib_mips/bdinfo.c
create mode 100644 lib_nios/bdinfo.c
create mode 100644 lib_nios2/bdinfo.c
create mode 100644 lib_ppc/bdinfo.c
create mode 100644 lib_sh/bdinfo.c
create mode 100644 lib_sparc/bdinfo.c
diff --git a/common/cmd_bdinfo.c b/common/cmd_bdinfo.c
dissimilarity index 90%
index 087eda7..63cb6dc 100644
--- a/common/cmd_bdinfo.c
+++ b/common/cmd_bdinfo.c
@@ -1,447 +1,57 @@
-/*
- * (C) Copyright 2003
- * Wolfgang Denk, DENX Software Engineering, wd at denx.de.
- *
- * See file CREDITS for list of people who contributed to this
- * project.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- */
-
-/*
- * Boot support
- */
-#include <common.h>
-#include <command.h>
-#include <net.h> /* for print_IPaddr */
-
-DECLARE_GLOBAL_DATA_PTR;
-
-static void print_num(const char *, ulong);
-
-#ifndef CONFIG_ARM /* PowerPC and other */
-static void print_lnum(const char *, u64);
-
-#ifdef CONFIG_PPC
-static void print_str(const char *, const char *);
-
-int do_bdinfo ( cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
-{
- int i;
- bd_t *bd = gd->bd;
- char buf[32];
-
-#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_8260) || defined(CONFIG_E500)
- print_num ("immr_base", bd->bi_immr_base );
-#endif
- print_num ("bootflags", bd->bi_bootflags );
-#if defined(CONFIG_405GP) || defined(CONFIG_405CR) || \
- defined(CONFIG_405EP) || defined(CONFIG_XILINX_405) || \
- defined(CONFIG_440EP) || defined(CONFIG_440GR) || \
- defined(CONFIG_440EPX) || defined(CONFIG_440GRX) || \
- defined(CONFIG_440SP) || defined(CONFIG_440SPE)
- print_str ("procfreq", strmhz(buf, bd->bi_procfreq));
- print_str ("plb_busfreq", strmhz(buf, bd->bi_plb_busfreq));
-#if defined(CONFIG_405GP) || defined(CONFIG_405EP) || defined(CONFIG_XILINX_405) || \
- defined(CONFIG_440EP) || defined(CONFIG_440GR) || defined(CONFIG_440SPE) || \
- defined(CONFIG_440EPX) || defined(CONFIG_440GRX)
- print_str ("pci_busfreq", strmhz(buf, bd->bi_pci_busfreq));
-#endif
-#else /* ! CONFIG_405GP, CONFIG_405CR, CONFIG_405EP, CONFIG_XILINX_405, CONFIG_440EP CONFIG_440GR */
-#if defined(CONFIG_CPM2)
- print_str ("vco", strmhz(buf, bd->bi_vco));
- print_str ("sccfreq", strmhz(buf, bd->bi_sccfreq));
- print_str ("brgfreq", strmhz(buf, bd->bi_brgfreq));
-#endif
- print_str ("intfreq", strmhz(buf, bd->bi_intfreq));
-#if defined(CONFIG_CPM2)
- print_str ("cpmfreq", strmhz(buf, bd->bi_cpmfreq));
-#endif
- print_str ("busfreq", strmhz(buf, bd->bi_busfreq));
-#endif /* CONFIG_405GP, CONFIG_405CR, CONFIG_405EP, CONFIG_XILINX_405, CONFIG_440EP CONFIG_440GR */
-#if defined(CONFIG_MPC8220)
- print_str ("inpfreq", strmhz(buf, bd->bi_inpfreq));
- print_str ("flbfreq", strmhz(buf, bd->bi_flbfreq));
- print_str ("pcifreq", strmhz(buf, bd->bi_pcifreq));
- print_str ("vcofreq", strmhz(buf, bd->bi_vcofreq));
- print_str ("pevfreq", strmhz(buf, bd->bi_pevfreq));
-#endif
-
- puts ("ethaddr =");
- for (i=0; i<6; ++i) {
- printf ("%c%02X", i ? ':' : ' ', bd->bi_enetaddr[i]);
- }
-
-#if defined(CONFIG_HAS_ETH1)
- puts ("\neth1addr =");
- for (i=0; i<6; ++i) {
- printf ("%c%02X", i ? ':' : ' ', bd->bi_enet1addr[i]);
- }
-#endif
-
-#if defined(CONFIG_HAS_ETH2)
- puts ("\neth2addr =");
- for (i=0; i<6; ++i) {
- printf ("%c%02X", i ? ':' : ' ', bd->bi_enet2addr[i]);
- }
-#endif
-
-#if defined(CONFIG_HAS_ETH3)
- puts ("\neth3addr =");
- for (i=0; i<6; ++i) {
- printf ("%c%02X", i ? ':' : ' ', bd->bi_enet3addr[i]);
- }
-#endif
-
-#if defined(CONFIG_HAS_ETH4)
- puts ("\neth4addr =");
- for (i=0; i<6; ++i) {
- printf ("%c%02X", i ? ':' : ' ', bd->bi_enet4addr[i]);
- }
-#endif
-
-#if defined(CONFIG_HAS_ETH5)
- puts ("\neth5addr =");
- for (i=0; i<6; ++i) {
- printf ("%c%02X", i ? ':' : ' ', bd->bi_enet5addr[i]);
- }
-#endif
-
-#ifdef CONFIG_HERMES
- print_str ("ethspeed", strmhz(buf, bd->bi_ethspeed));
-#endif
- puts ("\nIP addr = "); print_IPaddr (bd->bi_ip_addr);
- printf ("\nbaudrate = %6ld bps\n", bd->bi_baudrate );
- return 0;
-}
-
-#elif defined(CONFIG_NIOS) /* NIOS*/
-
-int do_bdinfo ( cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
-{
- int i;
- 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);
-
- puts ("ethaddr =");
- for (i=0; i<6; ++i) {
- printf ("%c%02X", i ? ':' : ' ', bd->bi_enetaddr[i]);
- }
- puts ("\nip_addr = ");
- print_IPaddr (bd->bi_ip_addr);
- printf ("\nbaudrate = %ld bps\n", bd->bi_baudrate);
-
- return 0;
-}
-
-#elif defined(CONFIG_NIOS2) /* Nios-II */
-
-int do_bdinfo ( cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
-{
-#if defined(CONFIG_CMD_NET)
- int i;
-#endif
- 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_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)
- puts ("ethaddr =");
- for (i=0; i<6; ++i) {
- printf ("%c%02X", i ? ':' : ' ', bd->bi_enetaddr[i]);
- }
- puts ("\nip_addr = ");
- print_IPaddr (bd->bi_ip_addr);
-#endif
-
- printf ("\nbaudrate = %ld bps\n", bd->bi_baudrate);
-
- return 0;
-}
-#elif defined(CONFIG_MICROBLAZE) /* ! PPC, which leaves Microblaze */
-
-int do_bdinfo ( cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
-{
- int i;
- 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_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)
- puts ("ethaddr =");
- for (i=0; i<6; ++i) {
- printf ("%c%02X", i ? ':' : ' ', bd->bi_enetaddr[i]);
- }
- puts ("\nip_addr = ");
- print_IPaddr (bd->bi_ip_addr);
-#endif
- printf ("\nbaudrate = %ld bps\n", (ulong)bd->bi_baudrate);
- return 0;
-}
-
-#elif defined(CONFIG_SPARC) /* SPARC */
-int do_bdinfo(cmd_tbl_t * cmdtp, int flag, int argc, char *argv[])
-{
- bd_t *bd = gd->bd;
-#if defined(CONFIG_CMD_NET)
- int i;
-#endif
-
-#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%lx (%d)\n", CONFIG_SYS_RELOC_MONITOR_BASE,
- CONFIG_SYS_MONITOR_LEN);
- printf("CONFIG_SYS_MALLOC_BASE = 0x%lx (%d)\n", CONFIG_SYS_MALLOC_BASE,
- CONFIG_SYS_MALLOC_LEN);
- printf("CONFIG_SYS_INIT_SP_OFFSET = 0x%lx (%d)\n", CONFIG_SYS_INIT_SP_OFFSET,
- CONFIG_SYS_STACK_SIZE);
- printf("CONFIG_SYS_PROM_OFFSET = 0x%lx (%d)\n", CONFIG_SYS_PROM_OFFSET,
- CONFIG_SYS_PROM_SIZE);
- printf("CONFIG_SYS_GBL_DATA_OFFSET = 0x%lx (%d)\n", CONFIG_SYS_GBL_DATA_OFFSET,
- CONFIG_SYS_GBL_DATA_SIZE);
-
-#if defined(CONFIG_CMD_NET)
- puts("ethaddr =");
- for (i = 0; i < 6; ++i) {
- printf("%c%02X", i ? ':' : ' ', bd->bi_enetaddr[i]);
- }
- puts("\nIP addr = ");
- print_IPaddr(bd->bi_ip_addr);
-#endif
- printf("\nbaudrate = %6ld bps\n", bd->bi_baudrate);
- return 0;
-}
-
-#elif defined(CONFIG_M68K) /* M68K */
-static void print_str(const char *, const char *);
-
-int do_bdinfo ( cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
-{
- int i;
- bd_t *bd = gd->bd;
- char buf[32];
-
- 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_str ("busfreq", strmhz(buf, bd->bi_busfreq));
-#ifdef CONFIG_PCI
- print_str ("pcifreq", strmhz(buf, bd->bi_pcifreq));
-#endif
-#ifdef CONFIG_EXTRA_CLOCK
- print_str ("flbfreq", strmhz(buf, bd->bi_flbfreq));
- print_str ("inpfreq", strmhz(buf, bd->bi_inpfreq));
- print_str ("vcofreq", strmhz(buf, bd->bi_vcofreq));
-#endif
-#if defined(CONFIG_CMD_NET)
- puts ("ethaddr =");
- for (i=0; i<6; ++i) {
- printf ("%c%02X", i ? ':' : ' ', bd->bi_enetaddr[i]);
- }
-
-#if defined(CONFIG_HAS_ETH1)
- puts ("\neth1addr =");
- for (i=0; i<6; ++i) {
- printf ("%c%02X", i ? ':' : ' ', bd->bi_enet1addr[i]);
- }
-#endif
-
-#if defined(CONFIG_HAS_ETH2)
- puts ("\neth2addr =");
- for (i=0; i<6; ++i) {
- printf ("%c%02X", i ? ':' : ' ', bd->bi_enet2addr[i]);
- }
-#endif
-
-#if defined(CONFIG_HAS_ETH3)
- puts ("\neth3addr =");
- for (i=0; i<6; ++i) {
- printf ("%c%02X", i ? ':' : ' ', bd->bi_enet3addr[i]);
- }
-#endif
-
- puts ("\nip_addr = ");
- print_IPaddr (bd->bi_ip_addr);
-#endif
- printf ("\nbaudrate = %d bps\n", bd->bi_baudrate);
-
- return 0;
-}
-
-#elif defined(CONFIG_BLACKFIN)
-
-int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
-{
- int i;
- 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);
- printf("VCO = %lu MHz\n", bd->bi_vco / 1000000);
- printf("CCLK = %lu MHz\n", bd->bi_cclk / 1000000);
- printf("SCLK = %lu MHz\n", bd->bi_sclk / 1000000);
-
- 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);
-
- puts("ethaddr =");
- for (i = 0; i < 6; ++i)
- printf("%c%02X", i ? ':' : ' ', bd->bi_enetaddr[i]);
- puts("\nip_addr = ");
- print_IPaddr(bd->bi_ip_addr);
- printf("\nbaudrate = %d bps\n", bd->bi_baudrate);
-
- return 0;
-}
-
-#else /* ! PPC, which leaves MIPS */
-
-int do_bdinfo ( cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
-{
- int i;
- 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);
-
- puts ("ethaddr =");
- for (i=0; i<6; ++i) {
- printf ("%c%02X", i ? ':' : ' ', bd->bi_enetaddr[i]);
- }
- puts ("\nip_addr = ");
- print_IPaddr (bd->bi_ip_addr);
- printf ("\nbaudrate = %ld bps\n", bd->bi_baudrate);
-
- return 0;
-}
-#endif /* MIPS */
-
-#else /* ARM */
-
-int do_bdinfo ( cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
-{
- int i;
- bd_t *bd = gd->bd;
-
- print_num ("arch_number", bd->bi_arch_number);
- print_num ("env_t", (ulong)bd->bi_env);
- 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)
- puts ("ethaddr =");
- for (i=0; i<6; ++i) {
- printf ("%c%02X", i ? ':' : ' ', bd->bi_enetaddr[i]);
- }
- puts ( "\n"
- "ip_addr = ");
- print_IPaddr (bd->bi_ip_addr);
-#endif
- printf ("\n"
- "baudrate = %d bps\n", bd->bi_baudrate);
-
- return 0;
-}
-
-#endif /* CONFIG_ARM XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX */
-
-static void print_num(const char *name, ulong value)
-{
- printf ("%-12s= 0x%08lX\n", name, value);
-}
-
-#ifndef CONFIG_ARM
-static void print_lnum(const char *name, u64 value)
-{
- printf ("%-12s= 0x%.8llX\n", name, value);
-}
-#endif
-
-#if defined(CONFIG_PPC) || defined(CONFIG_M68K)
-static void print_str(const char *name, const char *str)
-{
- printf ("%-12s= %6s MHz\n", name, str);
-}
-#endif /* CONFIG_PPC */
-
-
-/* -------------------------------------------------------------------- */
-
-U_BOOT_CMD(
- bdinfo, 1, 1, do_bdinfo,
- "bdinfo - print Board Info structure\n",
- NULL
-);
+/*
+ * (C) Copyright 2003
+ * Wolfgang Denk, DENX Software Engineering, wd at denx.de.
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ */
+
+/*
+ * Boot support
+ */
+#include <common.h>
+#include <command.h>
+#include <bdinfo.h>
+
+void board_bdinfo(cmd_tbl_t *, int, int, char **) __attribute((weak));
+void soc_bdinfo(cmd_tbl_t *, int, int, char **) __attribute((weak));
+
+int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
+{
+
+ /* call arch bdinfo */
+ arch_bdinfo(cmdtp, flag, argc, argv);
+
+ /* call soc bdinfo */
+ if(soc_bdinfo)
+ soc_bdinfo(cmdtp, flag, argc, argv);
+
+ /* call board bdinfo */
+ if(board_bdinfo)
+ board_bdinfo(cmdtp, flag, argc, argv);
+
+ return 0;
+}
+
+/* -------------------------------------------------------------------- */
+
+U_BOOT_CMD(
+ bdinfo, 1, 1, do_bdinfo,
+ "bdinfo - print Board Info structure\n",
+ NULL
+);
diff --git a/include/bdinfo.h b/include/bdinfo.h
new file mode 100644
index 0000000..e660281
--- /dev/null
+++ b/include/bdinfo.h
@@ -0,0 +1,54 @@
+/*
+ * (C) Copyright 2008
+ * Jean-Christophe PLAGNIOL-VILLARD <plagnioj at jcrosoft.com>
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ */
+
+#ifndef _BDINFO_H_
+#define _BDINFO_H_
+
+void arch_bdinfo(cmd_tbl_t *, int, int, char **);
+void board_bdinfo(cmd_tbl_t *, int, int, char **);
+void soc_bdinfo(cmd_tbl_t *, int, int, char **);
+
+static inline void print_num(const char *name, ulong value)
+{
+ printf ("%-12s= 0x%08lX\n", name, value);
+}
+
+static inline void print_lnum(const char *name, u64 value)
+{
+ printf ("%-12s= 0x%.8llX\n", name, value);
+}
+
+static inline void print_str(const char *name, const char *str)
+{
+ printf ("%-12s= %6s MHz\n", name, str);
+}
+
+static inline void print_eth_addr(const unsigned char *enetaddr)
+{
+ int i;
+
+ for (i = 0; i < 6; ++i)
+ printf ("%c%02X", i ? ':' : ' ', enetaddr[i]);
+}
+
+#endif /* _BDINFO_H_ */
diff --git a/lib_arm/Makefile b/lib_arm/Makefile
index c8795b2..1f36f58 100644
--- a/lib_arm/Makefile
+++ b/lib_arm/Makefile
@@ -32,6 +32,7 @@ SOBJS-y += _modsi3.o
SOBJS-y += _udivsi3.o
SOBJS-y += _umodsi3.o
+COBJS-$(CONFIG_CMD_BDI) += bdinfo.o
COBJS-y += board.o
COBJS-y += bootm.o
COBJS-y += cache.o
diff --git a/lib_arm/bdinfo.c b/lib_arm/bdinfo.c
new file mode 100644
index 0000000..339ba77
--- /dev/null
+++ b/lib_arm/bdinfo.c
@@ -0,0 +1,58 @@
+/*
+ * (C) Copyright 2003
+ * Wolfgang Denk, DENX Software Engineering, wd at denx.de.
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ */
+
+/*
+ * Boot support
+ */
+#include <common.h>
+#include <command.h>
+#include <bdinfo.h>
+#include <net.h> /* for print_IPaddr */
+
+DECLARE_GLOBAL_DATA_PTR;
+
+void arch_bdinfo ( cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
+{
+ int i;
+ bd_t *bd = gd->bd;
+
+ print_num ("arch_number", bd->bi_arch_number);
+ print_num ("env_t", (ulong)bd->bi_env);
+ 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)
+ puts ("ethaddr =");
+ print_eth_addr (bd->bi_enetaddr);
+ puts ( "\n"
+ "ip_addr = ");
+ print_IPaddr (bd->bi_ip_addr);
+#endif
+ printf ("\n"
+ "baudrate = %d bps\n", bd->bi_baudrate);
+}
diff --git a/lib_avr32/Makefile b/lib_avr32/Makefile
index 37b8051..856d450 100644
--- a/lib_avr32/Makefile
+++ b/lib_avr32/Makefile
@@ -29,6 +29,7 @@ LIB = $(obj)lib$(ARCH).a
SOBJS-y += memset.o
+COBJS-$(CONFIG_CMD_BDI) += bdinfo.o
COBJS-y += board.o
COBJS-y += bootm.o
COBJS-y += interrupts.o
diff --git a/lib_avr32/bdinfo.c b/lib_avr32/bdinfo.c
new file mode 100644
index 0000000..473a63d
--- /dev/null
+++ b/lib_avr32/bdinfo.c
@@ -0,0 +1,50 @@
+/*
+ * (C) Copyright 2003
+ * Wolfgang Denk, DENX Software Engineering, wd at denx.de.
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ */
+
+/*
+ * Boot support
+ */
+#include <common.h>
+#include <command.h>
+#include <bdinfo.h>
+#include <net.h> /* for print_IPaddr */
+
+DECLARE_GLOBAL_DATA_PTR;
+
+void arch_bdinfo ( cmd_tbl_t *cmdtp, int flag, int argc, char *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);
+
+ puts ("ethaddr =");
+ print_eth_addr (bd->bi_enetaddr);
+ puts ("\nip_addr = ");
+ print_IPaddr (bd->bi_ip_addr);
+ printf ("\nbaudrate = %ld bps\n", bd->bi_baudrate);
+}
diff --git a/lib_blackfin/Makefile b/lib_blackfin/Makefile
index 3f69770..4afc651 100644
--- a/lib_blackfin/Makefile
+++ b/lib_blackfin/Makefile
@@ -36,6 +36,7 @@ SOBJS-y += memcpy.o
SOBJS-y += memmove.o
SOBJS-y += memset.o
+COBJS-$(CONFIG_CMD_BDI) += bdinfo.o
COBJS-y += board.o
COBJS-y += bootm.o
COBJS-y += cache.o
diff --git a/lib_blackfin/bdinfo.c b/lib_blackfin/bdinfo.c
new file mode 100644
index 0000000..aab1da1
--- /dev/null
+++ b/lib_blackfin/bdinfo.c
@@ -0,0 +1,57 @@
+/*
+ * (C) Copyright 2003
+ * Wolfgang Denk, DENX Software Engineering, wd at denx.de.
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ */
+
+/*
+ * Boot support
+ */
+#include <common.h>
+#include <command.h>
+#include <bdinfo.h>
+#include <net.h> /* for print_IPaddr */
+
+DECLARE_GLOBAL_DATA_PTR;
+
+void arch_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char *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);
+ printf("VCO = %lu MHz\n", bd->bi_vco / 1000000);
+ printf("CCLK = %lu MHz\n", bd->bi_cclk / 1000000);
+ printf("SCLK = %lu MHz\n", bd->bi_sclk / 1000000);
+
+ 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);
+
+ puts("ethaddr =");
+ print_eth_addr(bd->bi_enetaddr);
+ puts("\nip_addr = ");
+ print_IPaddr(bd->bi_ip_addr);
+ printf("\nbaudrate = %d bps\n", bd->bi_baudrate);
+}
diff --git a/lib_i386/Makefile b/lib_i386/Makefile
index 4fbcd08..0a7a777 100644
--- a/lib_i386/Makefile
+++ b/lib_i386/Makefile
@@ -29,6 +29,7 @@ SOBJS-y += bios.o
SOBJS-y += bios_pci.o
SOBJS-y += realmode_switch.o
+COBJS-$(CONFIG_CMD_BDI) += bdinfo.o
COBJS-y += bios_setup.o
COBJS-y += board.o
COBJS-y += bootm.o
diff --git a/lib_i386/bdinfo.c b/lib_i386/bdinfo.c
new file mode 100644
index 0000000..473a63d
--- /dev/null
+++ b/lib_i386/bdinfo.c
@@ -0,0 +1,50 @@
+/*
+ * (C) Copyright 2003
+ * Wolfgang Denk, DENX Software Engineering, wd at denx.de.
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ */
+
+/*
+ * Boot support
+ */
+#include <common.h>
+#include <command.h>
+#include <bdinfo.h>
+#include <net.h> /* for print_IPaddr */
+
+DECLARE_GLOBAL_DATA_PTR;
+
+void arch_bdinfo ( cmd_tbl_t *cmdtp, int flag, int argc, char *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);
+
+ puts ("ethaddr =");
+ print_eth_addr (bd->bi_enetaddr);
+ puts ("\nip_addr = ");
+ print_IPaddr (bd->bi_ip_addr);
+ printf ("\nbaudrate = %ld bps\n", bd->bi_baudrate);
+}
diff --git a/lib_m68k/Makefile b/lib_m68k/Makefile
index 6db35ed..f11b601 100644
--- a/lib_m68k/Makefile
+++ b/lib_m68k/Makefile
@@ -27,6 +27,7 @@ LIB = $(obj)lib$(ARCH).a
SOBJS-y +=
+COBJS-$(CONFIG_CMD_BDI) += bdinfo.o
COBJS-y += board.o
COBJS-y += bootm.o
COBJS-y += cache.o
diff --git a/lib_m68k/bdinfo.c b/lib_m68k/bdinfo.c
new file mode 100644
index 0000000..82829cb
--- /dev/null
+++ b/lib_m68k/bdinfo.c
@@ -0,0 +1,83 @@
+/*
+ * (C) Copyright 2003
+ * Wolfgang Denk, DENX Software Engineering, wd at denx.de.
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ */
+
+/*
+ * Boot support
+ */
+#include <common.h>
+#include <command.h>
+#include <bdinfo.h>
+#include <net.h> /* for print_IPaddr */
+
+DECLARE_GLOBAL_DATA_PTR;
+
+void arch_bdinfo ( cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
+{
+ bd_t *bd = gd->bd;
+ char buf[32];
+
+ 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_str ("busfreq", strmhz(buf, bd->bi_busfreq));
+#ifdef CONFIG_PCI
+ print_str ("pcifreq", strmhz(buf, bd->bi_pcifreq));
+#endif
+#ifdef CONFIG_EXTRA_CLOCK
+ print_str ("flbfreq", strmhz(buf, bd->bi_flbfreq));
+ print_str ("inpfreq", strmhz(buf, bd->bi_inpfreq));
+ print_str ("vcofreq", strmhz(buf, bd->bi_vcofreq));
+#endif
+#if defined(CONFIG_CMD_NET)
+ puts ("ethaddr =");
+ print_eth_addr (bd->bi_enetaddr);
+
+#if defined(CONFIG_HAS_ETH1)
+ puts ("\neth1addr =");
+ print_eth_addr (bd->bi_enet1addr);
+#endif
+
+#if defined(CONFIG_HAS_ETH2)
+ puts ("\neth2addr =");
+ print_eth_addr (bd->bi_enet2addr);
+#endif
+
+#if defined(CONFIG_HAS_ETH3)
+ puts ("\neth3addr =");
+ print_eth_addr (bd->bi_enet3addr);
+#endif
+
+ puts ("\nip_addr = ");
+ print_IPaddr (bd->bi_ip_addr);
+#endif
+ printf ("\nbaudrate = %d bps\n", bd->bi_baudrate);
+}
diff --git a/lib_microblaze/Makefile b/lib_microblaze/Makefile
index 9b0f296..b9c5088 100644
--- a/lib_microblaze/Makefile
+++ b/lib_microblaze/Makefile
@@ -27,6 +27,7 @@ LIB = $(obj)lib$(ARCH).a
SOBJS-y +=
+COBJS-$(CONFIG_CMD_BDI) += bdinfo.o
COBJS-y += board.o
COBJS-y += bootm.o
COBJS-y += cache.o
diff --git a/lib_microblaze/bdinfo.c b/lib_microblaze/bdinfo.c
new file mode 100644
index 0000000..8f726eb
--- /dev/null
+++ b/lib_microblaze/bdinfo.c
@@ -0,0 +1,54 @@
+/*
+ * (C) Copyright 2003
+ * Wolfgang Denk, DENX Software Engineering, wd at denx.de.
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ */
+
+/*
+ * Boot support
+ */
+#include <common.h>
+#include <command.h>
+#include <bdinfo.h>
+#include <net.h> /* for print_IPaddr */
+
+DECLARE_GLOBAL_DATA_PTR;
+
+void arch_bdinfo ( cmd_tbl_t *cmdtp, int flag, int argc, char *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_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)
+ puts ("ethaddr =");
+ print_eth_addr (bd->bi_enetaddr);
+ puts ("\nip_addr = ");
+ print_IPaddr (bd->bi_ip_addr);
+#endif
+ printf ("\nbaudrate = %ld bps\n", (ulong)bd->bi_baudrate);
+}
diff --git a/lib_mips/Makefile b/lib_mips/Makefile
index 7967e58..5dc75c0 100644
--- a/lib_mips/Makefile
+++ b/lib_mips/Makefile
@@ -27,6 +27,7 @@ LIB = $(obj)lib$(ARCH).a
SOBJS-y +=
+COBJS-$(CONFIG_CMD_BDI) += bdinfo.o
COBJS-y += board.o
ifeq ($(CONFIG_QEMU_MIPS),y)
COBJS-y += bootm_qemu_mips.o
diff --git a/lib_mips/bdinfo.c b/lib_mips/bdinfo.c
new file mode 100644
index 0000000..e5920ad
--- /dev/null
+++ b/lib_mips/bdinfo.c
@@ -0,0 +1,50 @@
+/*
+ * (C) Copyright 2003
+ * Wolfgang Denk, DENX Software Engineering, wd at denx.de.
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ */
+
+/*
+ * Boot support
+ */
+#include <common.h>
+#include <command.h>
+#include <bdinfo.h>
+#include <net.h> /* for print_IPaddr */
+
+DECLARE_GLOBAL_DATA_PTR;
+
+void arch_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char *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);
+
+ puts ("ethaddr =");
+ print_eth_addr (bd->bi_enetaddr);
+ puts ("\nip_addr = ");
+ print_IPaddr (bd->bi_ip_addr);
+ printf ("\nbaudrate = %ld bps\n", bd->bi_baudrate);
+}
diff --git a/lib_nios/Makefile b/lib_nios/Makefile
index f66e989..b665eb7 100644
--- a/lib_nios/Makefile
+++ b/lib_nios/Makefile
@@ -27,6 +27,7 @@ LIB = $(obj)lib$(ARCH).a
SOBJS-y +=
+COBJS-$(CONFIG_CMD_BDI) += bdinfo.o
COBJS-y += board.o
COBJS-y += bootm.o
COBJS-y += cache.o
diff --git a/lib_nios/bdinfo.c b/lib_nios/bdinfo.c
new file mode 100644
index 0000000..04a9232
--- /dev/null
+++ b/lib_nios/bdinfo.c
@@ -0,0 +1,49 @@
+/*
+ * (C) Copyright 2003
+ * Wolfgang Denk, DENX Software Engineering, wd at denx.de.
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ */
+
+/*
+ * Boot support
+ */
+#include <common.h>
+#include <command.h>
+#include <bdinfo.h>
+#include <net.h> /* for print_IPaddr */
+
+DECLARE_GLOBAL_DATA_PTR;
+
+void arch_bdinfo ( cmd_tbl_t *cmdtp, int flag, int argc, char *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);
+
+ puts ("ethaddr =");
+ print_eth_addr (bd->bi_enetaddr);
+ puts ("\nip_addr = ");
+ print_IPaddr (bd->bi_ip_addr);
+ printf ("\nbaudrate = %ld bps\n", bd->bi_baudrate);
+}
diff --git a/lib_nios2/Makefile b/lib_nios2/Makefile
index b69bc38..fd9a60e 100644
--- a/lib_nios2/Makefile
+++ b/lib_nios2/Makefile
@@ -27,6 +27,7 @@ LIB = $(obj)lib$(ARCH).a
SOBJS-y += cache.o
+COBJS-$(CONFIG_CMD_BDI) += bdinfo.o
COBJS-y += board.o
COBJS-y += bootm.o
COBJS-y += divmod.o
diff --git a/lib_nios2/bdinfo.c b/lib_nios2/bdinfo.c
new file mode 100644
index 0000000..c256dfb
--- /dev/null
+++ b/lib_nios2/bdinfo.c
@@ -0,0 +1,57 @@
+/*
+ * (C) Copyright 2003
+ * Wolfgang Denk, DENX Software Engineering, wd at denx.de.
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ */
+
+/*
+ * Boot support
+ */
+#include <common.h>
+#include <command.h>
+#include <bdinfo.h>
+#include <net.h> /* for print_IPaddr */
+
+DECLARE_GLOBAL_DATA_PTR;
+
+void arch_bdinfo ( cmd_tbl_t *cmdtp, int flag, int argc, char *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_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)
+ puts ("ethaddr =");
+ print_eth_addr (bd->bi_enetaddr);
+ puts ("\nip_addr = ");
+ print_IPaddr (bd->bi_ip_addr);
+#endif
+
+ printf ("\nbaudrate = %ld bps\n", bd->bi_baudrate);
+}
diff --git a/lib_ppc/Makefile b/lib_ppc/Makefile
index 60ea0c9..b53bf29 100644
--- a/lib_ppc/Makefile
+++ b/lib_ppc/Makefile
@@ -30,6 +30,7 @@ SOBJS-y += ppcstring.o
SOBJS-y += ticks.o
COBJS-y += bat_rw.o
+COBJS-$(CONFIG_CMD_BDI) += bdinfo.o
COBJS-y += board.o
COBJS-y += bootm.o
COBJS-y += cache.o
diff --git a/lib_ppc/bdinfo.c b/lib_ppc/bdinfo.c
new file mode 100644
index 0000000..de8b5a2
--- /dev/null
+++ b/lib_ppc/bdinfo.c
@@ -0,0 +1,119 @@
+/*
+ * (C) Copyright 2003
+ * Wolfgang Denk, DENX Software Engineering, wd at denx.de.
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ */
+
+/*
+ * Boot support
+ */
+#include <common.h>
+#include <command.h>
+#include <bdinfo.h>
+#include <net.h> /* for print_IPaddr */
+
+DECLARE_GLOBAL_DATA_PTR;
+
+void arch_bdinfo ( cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
+{
+ bd_t *bd = gd->bd;
+ char buf[32];
+
+#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_8260) || defined(CONFIG_E500)
+ print_num ("immr_base", bd->bi_immr_base );
+#endif
+ print_num ("bootflags", bd->bi_bootflags );
+#if defined(CONFIG_405GP) || defined(CONFIG_405CR) || \
+ defined(CONFIG_405EP) || defined(CONFIG_XILINX_405) || \
+ defined(CONFIG_440EP) || defined(CONFIG_440GR) || \
+ defined(CONFIG_440EPX) || defined(CONFIG_440GRX) || \
+ defined(CONFIG_440SP) || defined(CONFIG_440SPE)
+ print_str ("procfreq", strmhz(buf, bd->bi_procfreq));
+ print_str ("plb_busfreq", strmhz(buf, bd->bi_plb_busfreq));
+#if defined(CONFIG_405GP) || defined(CONFIG_405EP) || defined(CONFIG_XILINX_405) || \
+ defined(CONFIG_440EP) || defined(CONFIG_440GR) || defined(CONFIG_440SPE) || \
+ defined(CONFIG_440EPX) || defined(CONFIG_440GRX)
+ print_str ("pci_busfreq", strmhz(buf, bd->bi_pci_busfreq));
+#endif
+#else /* ! CONFIG_405GP, CONFIG_405CR, CONFIG_405EP, CONFIG_XILINX_405, CONFIG_440EP CONFIG_440GR */
+#if defined(CONFIG_CPM2)
+ print_str ("vco", strmhz(buf, bd->bi_vco));
+ print_str ("sccfreq", strmhz(buf, bd->bi_sccfreq));
+ print_str ("brgfreq", strmhz(buf, bd->bi_brgfreq));
+#endif
+ print_str ("intfreq", strmhz(buf, bd->bi_intfreq));
+#if defined(CONFIG_CPM2)
+ print_str ("cpmfreq", strmhz(buf, bd->bi_cpmfreq));
+#endif
+ print_str ("busfreq", strmhz(buf, bd->bi_busfreq));
+#endif /* CONFIG_405GP, CONFIG_405CR, CONFIG_405EP, CONFIG_XILINX_405, CONFIG_440EP CONFIG_440GR */
+#if defined(CONFIG_MPC8220)
+ print_str ("inpfreq", strmhz(buf, bd->bi_inpfreq));
+ print_str ("flbfreq", strmhz(buf, bd->bi_flbfreq));
+ print_str ("pcifreq", strmhz(buf, bd->bi_pcifreq));
+ print_str ("vcofreq", strmhz(buf, bd->bi_vcofreq));
+ print_str ("pevfreq", strmhz(buf, bd->bi_pevfreq));
+#endif
+
+ puts ("ethaddr =");
+ print_eth_addr (bd->bi_enetaddr);
+
+#if defined(CONFIG_HAS_ETH1)
+ puts ("\neth1addr =");
+ print_eth_addr (bd->bi_enet1addr);
+#endif
+
+#if defined(CONFIG_HAS_ETH2)
+ puts ("\neth2addr =");
+ print_eth_addr (bd->bi_enet2addr);
+#endif
+
+#if defined(CONFIG_HAS_ETH3)
+ puts ("\neth3addr =");
+ print_eth_addr (bd->bi_enet3addr);
+#endif
+
+#if defined(CONFIG_HAS_ETH4)
+ puts ("\neth4addr =");
+ print_eth_addr (bd->bi_enet4addr);
+#endif
+
+#if defined(CONFIG_HAS_ETH5)
+ puts ("\neth5addr =");
+ print_eth_addr (bd->bi_enet5addr);
+#endif
+
+#ifdef CONFIG_HERMES
+ print_str ("ethspeed", strmhz(buf, bd->bi_ethspeed));
+#endif
+ puts ("\nIP addr = "); print_IPaddr (bd->bi_ip_addr);
+ printf ("\nbaudrate = %6ld bps\n", bd->bi_baudrate);
+}
diff --git a/lib_sh/Makefile b/lib_sh/Makefile
index 4034381..a405c8d 100644
--- a/lib_sh/Makefile
+++ b/lib_sh/Makefile
@@ -24,6 +24,7 @@ LIB = $(obj)lib$(ARCH).a
SOBJS-y +=
+COBJS-$(CONFIG_CMD_BDI) += bdinfo.o
COBJS-y += board.o
COBJS-y += bootm.o
# COBJS-y += time.o
diff --git a/lib_sh/bdinfo.c b/lib_sh/bdinfo.c
new file mode 100644
index 0000000..e5920ad
--- /dev/null
+++ b/lib_sh/bdinfo.c
@@ -0,0 +1,50 @@
+/*
+ * (C) Copyright 2003
+ * Wolfgang Denk, DENX Software Engineering, wd at denx.de.
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ */
+
+/*
+ * Boot support
+ */
+#include <common.h>
+#include <command.h>
+#include <bdinfo.h>
+#include <net.h> /* for print_IPaddr */
+
+DECLARE_GLOBAL_DATA_PTR;
+
+void arch_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char *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);
+
+ puts ("ethaddr =");
+ print_eth_addr (bd->bi_enetaddr);
+ puts ("\nip_addr = ");
+ print_IPaddr (bd->bi_ip_addr);
+ printf ("\nbaudrate = %ld bps\n", bd->bi_baudrate);
+}
diff --git a/lib_sparc/Makefile b/lib_sparc/Makefile
index 040ca10..67a68da 100644
--- a/lib_sparc/Makefile
+++ b/lib_sparc/Makefile
@@ -25,12 +25,17 @@ include $(TOPDIR)/config.mk
LIB = $(obj)lib$(ARCH).a
-SOBJS =
+SOBJS-y =
-COBJS = board.o cache.o interrupts.o time.o bootm.o
+COBJS-$(CONFIG_CMD_BDI) += bdinfo.o
+COBJS-y = board.o
+COBJS-y = bootm.o
+COBJS-y = cache.o
+COBJS-y = interrupts.o
+COBJS-y = time.o
-SRCS := $(SOBJS:.o=.S) $(COBJS:.o=.c)
-OBJS := $(addprefix $(obj),$(SOBJS) $(COBJS))
+SRCS := $(SOBJS-y:.o=.S) $(COBJS-y:.o=.c)
+OBJS := $(addprefix $(obj),$(SOBJS-y) $(COBJS-y))
$(LIB): $(obj).depend $(OBJS)
$(AR) $(ARFLAGS) $@ $(OBJS)
diff --git a/lib_sparc/bdinfo.c b/lib_sparc/bdinfo.c
new file mode 100644
index 0000000..72e054f
--- /dev/null
+++ b/lib_sparc/bdinfo.c
@@ -0,0 +1,64 @@
+/*
+ * (C) Copyright 2003
+ * Wolfgang Denk, DENX Software Engineering, wd at denx.de.
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ */
+
+/*
+ * Boot support
+ */
+#include <common.h>
+#include <command.h>
+#include <bdinfo.h>
+#include <net.h> /* for print_IPaddr */
+
+DECLARE_GLOBAL_DATA_PTR;
+
+void arch_bdinfo(cmd_tbl_t * cmdtp, int flag, int argc, char *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%lx (%d)\n", CONFIG_SYS_RELOC_MONITOR_BASE,
+ CONFIG_SYS_MONITOR_LEN);
+ printf("CONFIG_SYS_MALLOC_BASE = 0x%lx (%d)\n", CONFIG_SYS_MALLOC_BASE,
+ CONFIG_SYS_MALLOC_LEN);
+ printf("CONFIG_SYS_INIT_SP_OFFSET = 0x%lx (%d)\n", CONFIG_SYS_INIT_SP_OFFSET,
+ CONFIG_SYS_STACK_SIZE);
+ printf("CONFIG_SYS_PROM_OFFSET = 0x%lx (%d)\n", CONFIG_SYS_PROM_OFFSET,
+ CONFIG_SYS_PROM_SIZE);
+ printf("CONFIG_SYS_GBL_DATA_OFFSET = 0x%lx (%d)\n", CONFIG_SYS_GBL_DATA_OFFSET,
+ CONFIG_SYS_GBL_DATA_SIZE);
+
+#if defined(CONFIG_CMD_NET)
+ puts("ethaddr =");
+ print_eth_addr(bd->bi_enetaddr);
+ puts("\nIP addr = ");
+ print_IPaddr(bd->bi_ip_addr);
+#endif
+ printf("\nbaudrate = %6ld bps\n", bd->bi_baudrate);
+}
--
1.5.6.5
More information about the U-Boot
mailing list