[U-Boot] [PATCH] cmd_bdinfo: move implementation to arch instead of common

Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD plagnioj@jcrosoft.com --- apply after my precedent fix for cmd_bdinfo
Best Regards, J. common/Makefile | 1 - common/cmd_bdinfo.c | 447 ----------------------------------------------- include/common.h | 15 ++ lib_arm/Makefile | 1 + lib_arm/bdinfo.c | 69 ++++++++ lib_avr32/Makefile | 1 + lib_avr32/bdinfo.c | 62 +++++++ lib_blackfin/Makefile | 1 + lib_blackfin/bdinfo.c | 68 +++++++ lib_i386/Makefile | 1 + lib_i386/bdinfo.c | 62 +++++++ lib_m68k/Makefile | 1 + lib_m68k/bdinfo.c | 101 +++++++++++ lib_microblaze/Makefile | 1 + lib_microblaze/bdinfo.c | 65 +++++++ lib_mips/Makefile | 1 + lib_mips/bdinfo.c | 62 +++++++ lib_nios/Makefile | 1 + lib_nios/bdinfo.c | 61 +++++++ lib_nios2/Makefile | 1 + lib_nios2/bdinfo.c | 71 ++++++++ lib_ppc/Makefile | 1 + lib_ppc/bdinfo.c | 141 +++++++++++++++ lib_sh/Makefile | 1 + lib_sh/bdinfo.c | 62 +++++++ lib_sparc/Makefile | 13 +- lib_sparc/bdinfo.c | 78 ++++++++ 27 files changed, 937 insertions(+), 452 deletions(-) delete mode 100644 common/cmd_bdinfo.c 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/Makefile b/common/Makefile index 6484b23..7412abb 100644 --- a/common/Makefile +++ b/common/Makefile @@ -63,7 +63,6 @@ COBJS-$(CONFIG_ENV_IS_NOWHERE) += env_nowhere.o COBJS-$(CONFIG_CMD_AMBAPP) += cmd_ambapp.o COBJS-$(CONFIG_AUTOSCRIPT) += cmd_autoscript.o COBJS-$(CONFIG_CMD_AUTOSCRIPT) += cmd_autoscript.o -COBJS-$(CONFIG_CMD_BDI) += cmd_bdinfo.o COBJS-$(CONFIG_CMD_BEDBUG) += bedbug.o cmd_bedbug.o COBJS-$(CONFIG_CMD_BMP) += cmd_bmp.o COBJS-$(CONFIG_CMD_BOOTLDR) += cmd_bootldr.o diff --git a/common/cmd_bdinfo.c b/common/cmd_bdinfo.c deleted file mode 100644 index 087eda7..0000000 --- a/common/cmd_bdinfo.c +++ /dev/null @@ -1,447 +0,0 @@ -/* - * (C) Copyright 2003 - * Wolfgang Denk, DENX Software Engineering, wd@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 -); diff --git a/include/common.h b/include/common.h index df64bf0..655ecbb 100644 --- a/include/common.h +++ b/include/common.h @@ -713,4 +713,19 @@ int cpu_release(int nr, int argc, char *argv[]); #define CONFIG_HAS_POST #endif
+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); +} + #endif /* __COMMON_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..b6ae6bd --- /dev/null +++ b/lib_arm/bdinfo.c @@ -0,0 +1,69 @@ +/* + * (C) Copyright 2003 + * Wolfgang Denk, DENX Software Engineering, wd@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; + +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; +} + +/* -------------------------------------------------------------------- */ + +U_BOOT_CMD( + bdinfo, 1, 1, do_bdinfo, + "bdinfo - print Board Info structure\n", + NULL +); 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..d67a2b6 --- /dev/null +++ b/lib_avr32/bdinfo.c @@ -0,0 +1,62 @@ +/* + * (C) Copyright 2003 + * Wolfgang Denk, DENX Software Engineering, wd@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; + +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; +} + +/* -------------------------------------------------------------------- */ + +U_BOOT_CMD( + bdinfo, 1, 1, do_bdinfo, + "bdinfo - print Board Info structure\n", + NULL +); 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..3012705 --- /dev/null +++ b/lib_blackfin/bdinfo.c @@ -0,0 +1,68 @@ +/* + * (C) Copyright 2003 + * Wolfgang Denk, DENX Software Engineering, wd@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; + +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; +} + +/* -------------------------------------------------------------------- */ + +U_BOOT_CMD( + bdinfo, 1, 1, do_bdinfo, + "bdinfo - print Board Info structure\n", + NULL +); 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..d67a2b6 --- /dev/null +++ b/lib_i386/bdinfo.c @@ -0,0 +1,62 @@ +/* + * (C) Copyright 2003 + * Wolfgang Denk, DENX Software Engineering, wd@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; + +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; +} + +/* -------------------------------------------------------------------- */ + +U_BOOT_CMD( + bdinfo, 1, 1, do_bdinfo, + "bdinfo - print Board Info structure\n", + NULL +); 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..ba49f10 --- /dev/null +++ b/lib_m68k/bdinfo.c @@ -0,0 +1,101 @@ +/* + * (C) Copyright 2003 + * Wolfgang Denk, DENX Software Engineering, wd@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; + +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; +} + +/* -------------------------------------------------------------------- */ + +U_BOOT_CMD( + bdinfo, 1, 1, do_bdinfo, + "bdinfo - print Board Info structure\n", + NULL +); 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..e67f3b1 --- /dev/null +++ b/lib_microblaze/bdinfo.c @@ -0,0 +1,65 @@ +/* + * (C) Copyright 2003 + * Wolfgang Denk, DENX Software Engineering, wd@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; + +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; +} + +/* -------------------------------------------------------------------- */ + +U_BOOT_CMD( + bdinfo, 1, 1, do_bdinfo, + "bdinfo - print Board Info structure\n", + NULL +); 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..d67a2b6 --- /dev/null +++ b/lib_mips/bdinfo.c @@ -0,0 +1,62 @@ +/* + * (C) Copyright 2003 + * Wolfgang Denk, DENX Software Engineering, wd@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; + +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; +} + +/* -------------------------------------------------------------------- */ + +U_BOOT_CMD( + bdinfo, 1, 1, do_bdinfo, + "bdinfo - print Board Info structure\n", + NULL +); 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..67a1fa1 --- /dev/null +++ b/lib_nios/bdinfo.c @@ -0,0 +1,61 @@ +/* + * (C) Copyright 2003 + * Wolfgang Denk, DENX Software Engineering, wd@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; + +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; +} + +/* -------------------------------------------------------------------- */ + +U_BOOT_CMD( + bdinfo, 1, 1, do_bdinfo, + "bdinfo - print Board Info structure\n", + NULL +); 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..a5ac9d9 --- /dev/null +++ b/lib_nios2/bdinfo.c @@ -0,0 +1,71 @@ +/* + * (C) Copyright 2003 + * Wolfgang Denk, DENX Software Engineering, wd@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; + +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; +} + +/* -------------------------------------------------------------------- */ + +U_BOOT_CMD( + bdinfo, 1, 1, do_bdinfo, + "bdinfo - print Board Info structure\n", + NULL +); 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..4849d7c --- /dev/null +++ b/lib_ppc/bdinfo.c @@ -0,0 +1,141 @@ +/* + * (C) Copyright 2003 + * Wolfgang Denk, DENX Software Engineering, wd@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; + +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; +} + +/* -------------------------------------------------------------------- */ + +U_BOOT_CMD( + bdinfo, 1, 1, do_bdinfo, + "bdinfo - print Board Info structure\n", + NULL +); 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..d67a2b6 --- /dev/null +++ b/lib_sh/bdinfo.c @@ -0,0 +1,62 @@ +/* + * (C) Copyright 2003 + * Wolfgang Denk, DENX Software Engineering, wd@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; + +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; +} + +/* -------------------------------------------------------------------- */ + +U_BOOT_CMD( + bdinfo, 1, 1, do_bdinfo, + "bdinfo - print Board Info structure\n", + NULL +); 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..48f0ce6 --- /dev/null +++ b/lib_sparc/bdinfo.c @@ -0,0 +1,78 @@ +/* + * (C) Copyright 2003 + * Wolfgang Denk, DENX Software Engineering, wd@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; + +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; +} + +/* -------------------------------------------------------------------- */ + +U_BOOT_CMD( + bdinfo, 1, 1, do_bdinfo, + "bdinfo - print Board Info structure\n", + NULL +);

Jean-Christophe PLAGNIOL-VILLARD wrote:
Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD plagnioj@jcrosoft.com
apply after my precedent fix for cmd_bdinfo
Best Regards, J. common/Makefile | 1 - common/cmd_bdinfo.c | 447 ----------------------------------------------- include/common.h | 15 ++ lib_arm/Makefile | 1 + lib_arm/bdinfo.c | 69 ++++++++ lib_avr32/Makefile | 1 + lib_avr32/bdinfo.c | 62 +++++++ lib_blackfin/Makefile | 1 + lib_blackfin/bdinfo.c | 68 +++++++ lib_i386/Makefile | 1 + lib_i386/bdinfo.c | 62 +++++++ lib_m68k/Makefile | 1 + lib_m68k/bdinfo.c | 101 +++++++++++ lib_microblaze/Makefile | 1 + lib_microblaze/bdinfo.c | 65 +++++++ lib_mips/Makefile | 1 + lib_mips/bdinfo.c | 62 +++++++ lib_nios/Makefile | 1 + lib_nios/bdinfo.c | 61 +++++++ lib_nios2/Makefile | 1 + lib_nios2/bdinfo.c | 71 ++++++++ lib_ppc/Makefile | 1 + lib_ppc/bdinfo.c | 141 +++++++++++++++ lib_sh/Makefile | 1 + lib_sh/bdinfo.c | 62 +++++++ lib_sparc/Makefile | 13 +- lib_sparc/bdinfo.c | 78 ++++++++
Hi Jean-Christophe,
Is this a good idea? It takes one centralized mess (that is deprecated, but we don't have a good track record of death after deprecation) and spreads it out over a bunch of files. Reminds me of cancer. :-(
The centralized mess had no duplication of code, but a lot of #ifdef ugly. This patch trades off the removal of most of the #ifdef ugly for a lot of duplication. Which is the lesser of two evils?
If you continue down the fragmentation path, would it work to keep the primary bdinfo command (cmd_bdinfo.c) and add two weak function calls to it that processor families and boards can hook to add in their extra processor- and board-specific stuff? This may result in some rearrangement of the print output (which I don't view as a problem, but manual writers might not like it). It also results in some additional obscurity since a processor/board porter needs to understand that there is an additional hook to grab for customization.
Thanks, gvb

Hi Jerry,
On 09:02 Wed 12 Nov , Jerry Van Baren wrote:
Jean-Christophe PLAGNIOL-VILLARD wrote:
Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD plagnioj@jcrosoft.com
apply after my precedent fix for cmd_bdinfo
Best Regards, J. common/Makefile | 1 - common/cmd_bdinfo.c | 447 ----------------------------------------------- include/common.h | 15 ++ lib_arm/Makefile | 1 + lib_arm/bdinfo.c | 69 ++++++++ lib_avr32/Makefile | 1 + lib_avr32/bdinfo.c | 62 +++++++ lib_blackfin/Makefile | 1 + lib_blackfin/bdinfo.c | 68 +++++++ lib_i386/Makefile | 1 + lib_i386/bdinfo.c | 62 +++++++ lib_m68k/Makefile | 1 + lib_m68k/bdinfo.c | 101 +++++++++++ lib_microblaze/Makefile | 1 + lib_microblaze/bdinfo.c | 65 +++++++ lib_mips/Makefile | 1 + lib_mips/bdinfo.c | 62 +++++++ lib_nios/Makefile | 1 + lib_nios/bdinfo.c | 61 +++++++ lib_nios2/Makefile | 1 + lib_nios2/bdinfo.c | 71 ++++++++ lib_ppc/Makefile | 1 + lib_ppc/bdinfo.c | 141 +++++++++++++++ lib_sh/Makefile | 1 + lib_sh/bdinfo.c | 62 +++++++ lib_sparc/Makefile | 13 +- lib_sparc/bdinfo.c | 78 ++++++++
Hi Jean-Christophe,
Is this a good idea? It takes one centralized mess (that is deprecated, but we don't have a good track record of death after deprecation) and spreads it out over a bunch of files. Reminds me of cancer. :-(
As you said it's a mess of ifdef this files and it's hard to understand and to be sure which part we modify. By splitting it, it will simplify arch implementation and maintaining. BTW the header are already split for each in 'include/asm-arch/global_data.h'
The centralized mess had no duplication of code, but a lot of #ifdef ugly.
in the c implmentation maybe but we already have in the header
This patch trades off the removal of most of the #ifdef ugly for a lot of duplication. Which is the lesser of two evils?
Only 4 archs share actually the same code avr32, i386, mips and sh which actually I've plan to modify for sh soon
If you continue down the fragmentation path, would it work to keep the primary bdinfo command (cmd_bdinfo.c) and add two weak function calls to it that processor families and boards can hook to add in their extra processor- and board-specific stuff?
why not in this case we will avoid a lots of ifdef
This may result in some rearrangement of the print output (which I don't view as a problem, but manual writers might not like it).
I prefer to have customizable code and update a manual than have hard maintaining code.
It also results in some additional obscurity since a processor/board porter needs to understand that there is an additional hook to grab for customization.
We may need to write a guideline
Best Regards, J.

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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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); +}

On Wed, Nov 12, 2008 at 2:13 PM, Jean-Christophe PLAGNIOL-VILLARD wrote:
introduce two new weak functions board_bdinfo and soc_bdinfo to allow board and soc to print more information
there seems to be things that all arches print ... like memory and flash information. perhaps that should be left in the common bdinfo().
+void board_bdinfo(cmd_tbl_t *, int, int, char **) __attribute((weak)); +void soc_bdinfo(cmd_tbl_t *, int, int, char **) __attribute((weak));
__attribute__
+void arch_bdinfo ( cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
if(soc_bdinfo)
if(board_bdinfo)
you've got random whitespace damage all over this patch ...
thanks -mike

On 14:36 Wed 12 Nov , Mike Frysinger wrote:
On Wed, Nov 12, 2008 at 2:13 PM, Jean-Christophe PLAGNIOL-VILLARD wrote:
introduce two new weak functions board_bdinfo and soc_bdinfo to allow board and soc to print more information
there seems to be things that all arches print ... like memory and flash information. perhaps that should be left in the common bdinfo().
I've prefered to let arch print this how they wish
+void arch_bdinfo ( cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
if(soc_bdinfo)
if(board_bdinfo)
you've got random whitespace damage all over this patch ...
I known, but I not suposed to fix PPC whitespace in the patch I've an other one when everyone will agree on this one
Best Regards, J.

On Wed, Nov 12, 2008 at 2:45 PM, Jean-Christophe PLAGNIOL-VILLARD wrote:
On 14:36 Wed 12 Nov , Mike Frysinger wrote:
On Wed, Nov 12, 2008 at 2:13 PM, Jean-Christophe PLAGNIOL-VILLARD wrote:
introduce two new weak functions board_bdinfo and soc_bdinfo to allow board and soc to print more information
there seems to be things that all arches print ... like memory and flash information. perhaps that should be left in the common bdinfo().
I've prefered to let arch print this how they wish
+void arch_bdinfo ( cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
if(soc_bdinfo)
if(board_bdinfo)
you've got random whitespace damage all over this patch ...
I known, but I not suposed to fix PPC whitespace in the patch I've an other one when everyone will agree on this one
i wasnt talking about PPC whitespace. i was talking about code you added. the code in the common bdinfo.c did not exist until you added it. the function decls in the arch bdinfo.c's did not exist until you added them. -mike

On 14:55 Wed 12 Nov , Mike Frysinger wrote:
On Wed, Nov 12, 2008 at 2:45 PM, Jean-Christophe PLAGNIOL-VILLARD wrote:
On 14:36 Wed 12 Nov , Mike Frysinger wrote:
On Wed, Nov 12, 2008 at 2:13 PM, Jean-Christophe PLAGNIOL-VILLARD wrote:
introduce two new weak functions board_bdinfo and soc_bdinfo to allow board and soc to print more information
there seems to be things that all arches print ... like memory and flash information. perhaps that should be left in the common bdinfo().
I've prefered to let arch print this how they wish
+void arch_bdinfo ( cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
if(soc_bdinfo)
if(board_bdinfo)
you've got random whitespace damage all over this patch ...
I known, but I not suposed to fix PPC whitespace in the patch I've an other one when everyone will agree on this one
i wasnt talking about PPC whitespace. i was talking about code you added. the code in the common bdinfo.c did not exist until you added it. the function decls in the arch bdinfo.c's did not exist until you added them.
sorry do see what you talk about
please show in the patch
Best Regards, J.

introduce 3 new weak functions board_bdinfo, cpu_bdinfo and soc_bdinfo to allow board, cpu and soc to print more information
Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD plagnioj@jcrosoft.com --- apply after my precedent fix for cmd_bdinfo
Best Regards, J. common/cmd_bdinfo.c | 515 ++++++---------------------------------------- include/bdinfo.h | 55 +++++ 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, 884 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..01dcff8 100644 --- a/common/cmd_bdinfo.c +++ b/common/cmd_bdinfo.c @@ -1,447 +1,68 @@ -/* - * (C) Copyright 2003 - * Wolfgang Denk, DENX Software Engineering, wd@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@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 cpu_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 cpu bdinfo */ + if(cpu_bdinfo) { + printf("CPU Info\n"); + cpu_bdinfo(cmdtp, flag, argc, argv); + } + + /* call soc bdinfo */ + if(soc_bdinfo) { + printf("SOC Info\n"); + cpu_bdinfo(cmdtp, flag, argc, argv); + } + + /* call board bdinfo */ + if(board_bdinfo) { + printf("Board Info\n"); + 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..f18c8d3 --- /dev/null +++ b/include/bdinfo.h @@ -0,0 +1,55 @@ +/* + * (C) Copyright 2008 + * Jean-Christophe PLAGNIOL-VILLARD plagnioj@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 cpu_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..876cf0b --- /dev/null +++ b/lib_arm/bdinfo.c @@ -0,0 +1,58 @@ +/* + * (C) Copyright 2003 + * Wolfgang Denk, DENX Software Engineering, wd@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@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..91e3e80 --- /dev/null +++ b/lib_blackfin/bdinfo.c @@ -0,0 +1,57 @@ +/* + * (C) Copyright 2003 + * Wolfgang Denk, DENX Software Engineering, wd@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@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@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@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@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@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@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..fe95592 --- /dev/null +++ b/lib_ppc/bdinfo.c @@ -0,0 +1,119 @@ +/* + * (C) Copyright 2003 + * Wolfgang Denk, DENX Software Engineering, wd@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 f7c6479..54df402 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 ifeq ($(CONFIG_SH2),y) 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@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@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); +}

introduce 3 new weak functions board_bdinfo, cpu_bdinfo and soc_bdinfo to allow board, cpu and soc to print more information
Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD plagnioj@jcrosoft.com --- diff with V3 rename cpu_bdinfo to soc_bdinfo for soc
Best Regards, J. common/cmd_bdinfo.c | 515 ++++++---------------------------------------- include/bdinfo.h | 55 +++++ 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, 884 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..46085da 100644 --- a/common/cmd_bdinfo.c +++ b/common/cmd_bdinfo.c @@ -1,447 +1,68 @@ -/* - * (C) Copyright 2003 - * Wolfgang Denk, DENX Software Engineering, wd@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@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 cpu_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 cpu bdinfo */ + if(cpu_bdinfo) { + printf("CPU Info\n"); + cpu_bdinfo(cmdtp, flag, argc, argv); + } + + /* call soc bdinfo */ + if(soc_bdinfo) { + printf("SOC Info\n"); + soc_bdinfo(cmdtp, flag, argc, argv); + } + + /* call board bdinfo */ + if(board_bdinfo) { + printf("Board Info\n"); + 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..f18c8d3 --- /dev/null +++ b/include/bdinfo.h @@ -0,0 +1,55 @@ +/* + * (C) Copyright 2008 + * Jean-Christophe PLAGNIOL-VILLARD plagnioj@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 cpu_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..876cf0b --- /dev/null +++ b/lib_arm/bdinfo.c @@ -0,0 +1,58 @@ +/* + * (C) Copyright 2003 + * Wolfgang Denk, DENX Software Engineering, wd@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@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..91e3e80 --- /dev/null +++ b/lib_blackfin/bdinfo.c @@ -0,0 +1,57 @@ +/* + * (C) Copyright 2003 + * Wolfgang Denk, DENX Software Engineering, wd@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@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@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@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@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@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@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..fe95592 --- /dev/null +++ b/lib_ppc/bdinfo.c @@ -0,0 +1,119 @@ +/* + * (C) Copyright 2003 + * Wolfgang Denk, DENX Software Engineering, wd@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 f7c6479..54df402 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 ifeq ($(CONFIG_SH2),y) 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@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@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); +}

On Thu, 2008-12-04 at 13:35 +0100, Jean-Christophe PLAGNIOL-VILLARD wrote:
introduce 3 new weak functions board_bdinfo, cpu_bdinfo and soc_bdinfo to allow board, cpu and soc to print more information
Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD plagnioj@jcrosoft.com
diff with V3 rename cpu_bdinfo to soc_bdinfo for soc
Best Regards, J.
Since you are starting to use weak function I think you really need to fix the relocation procedure not to relocate NULL values too. Othervise you risk running into hard to debug problems, possibly one should do the same for __eabi_uconvert(). The function below could be written a bit cleaner though:
void __eabi_convert(unsigned long *low, unsigned long *high, unsigned long addend) { unsigned long len = high - low, val;
for(--low; len; --len) { val = *++low; if (!val) continue; *low = val + addend; } }
void __eabi_uconvert(unsigned long *low, unsigned long *high, unsigned long addend) { unsigned long len = high - low, val, *v2p;
for(--low; len; --len) { val = *++low; val += addend; v2p = (unsigned long *)val; *low = val; *v2p += added; } }
Pasting part of an earlier mail:
And you need to fix the relocation not to relocate NULL values, see http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config/rs6000/eabi.asm?rev=1.1... look for __eabi_uconvert.
For fun I once tried to rewrite these functions i C, not tested though:
void __eabi_convert(unsigned long *low, unsigned long *high, unsigned long addend) { unsigned long len = high - low, val; if (!len) return; low--; do { val = *++low; if (!val) continue; *low = val + addend; } while(--len); }
void __eabi_uconvert(unsigned long *low, unsigned long *high, unsigned long addend) { unsigned long len = high - low, val, val2, *v2p; if (!len) return; low--; do { val = *++low; val += addend; v2p = (unsigned long *)val; *low = val; val2 = *v2p; val2 += addend; *v2p = val2; } while(--len); }
void __eabi_uconvert_org(unsigned long *low, unsigned long *high, unsigned long addend) { unsigned long len = high - low, val, val2, *v2p; if (!len) return; low--; do { val = *++low; val += addend; v2p = (unsigned long *)val; val2 = *v2p; *low = val; val2 += addend; *v2p = val2; } while(--len); }

Jean-Christophe PLAGNIOL-VILLARD plagnioj@jcrosoft.com wrote:
This patch trades off the removal of most of the #ifdef ugly for a lot of duplication. Which is the lesser of two evils?
Only 4 archs share actually the same code avr32, i386, mips and sh which actually I've plan to modify for sh soon
And the avr32 code is mostly wrong. So it looks like the current situation is #ifdef mess _and_ duplication. This patch definitely improves things.
The reason why the avr32 part is wrong is that I simply didn't notice that I had to do anything in there until quite recently. So IMO making this thing arch-specific will make it easier to get it right for new architectures (since you'll get a nice and friendly link error reminding you that you missed it.)
Haavard

On Wed, Nov 12, 2008 at 9:02 AM, Jerry Van Baren wrote:
Jean-Christophe PLAGNIOL-VILLARD wrote:
Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD plagnioj@jcrosoft.com
apply after my precedent fix for cmd_bdinfo
Best Regards, J. common/Makefile | 1 - common/cmd_bdinfo.c | 447 ----------------------------------------------- include/common.h | 15 ++ lib_arm/Makefile | 1 + lib_arm/bdinfo.c | 69 ++++++++ lib_avr32/Makefile | 1 + lib_avr32/bdinfo.c | 62 +++++++ lib_blackfin/Makefile | 1 + lib_blackfin/bdinfo.c | 68 +++++++ lib_i386/Makefile | 1 + lib_i386/bdinfo.c | 62 +++++++ lib_m68k/Makefile | 1 + lib_m68k/bdinfo.c | 101 +++++++++++ lib_microblaze/Makefile | 1 + lib_microblaze/bdinfo.c | 65 +++++++ lib_mips/Makefile | 1 + lib_mips/bdinfo.c | 62 +++++++ lib_nios/Makefile | 1 + lib_nios/bdinfo.c | 61 +++++++ lib_nios2/Makefile | 1 + lib_nios2/bdinfo.c | 71 ++++++++ lib_ppc/Makefile | 1 + lib_ppc/bdinfo.c | 141 +++++++++++++++ lib_sh/Makefile | 1 + lib_sh/bdinfo.c | 62 +++++++ lib_sparc/Makefile | 13 +- lib_sparc/bdinfo.c | 78 ++++++++
Hi Jean-Christophe,
Is this a good idea? It takes one centralized mess (that is deprecated, but we don't have a good track record of death after deprecation) and spreads it out over a bunch of files. Reminds me of cancer. :-(
The centralized mess had no duplication of code, but a lot of #ifdef ugly. This patch trades off the removal of most of the #ifdef ugly for a lot of duplication. Which is the lesser of two evils?
If you continue down the fragmentation path, would it work to keep the primary bdinfo command (cmd_bdinfo.c) and add two weak function calls to it that processor families and boards can hook to add in their extra processor- and board-specific stuff? This may result in some rearrangement of the print output (which I don't view as a problem, but manual writers might not like it). It also results in some additional obscurity since a processor/board porter needs to understand that there is an additional hook to grab for customization.
i think the split version proposed is a lot nicer than the current one, but going the route of having an arch hook would be best. i dont think we even need a weak function ... force every arch to implement *something*. -mike

Hi Jean-Christophe,
Is this a good idea? It takes one centralized mess (that is deprecated, but we don't have a good track record of death after deprecation) and spreads it out over a bunch of files. Reminds me of cancer. :-(
The centralized mess had no duplication of code, but a lot of #ifdef ugly. This patch trades off the removal of most of the #ifdef ugly for a lot of duplication. Which is the lesser of two evils?
If you continue down the fragmentation path, would it work to keep the primary bdinfo command (cmd_bdinfo.c) and add two weak function calls to it that processor families and boards can hook to add in their extra processor- and board-specific stuff? This may result in some rearrangement of the print output (which I don't view as a problem, but manual writers might not like it). It also results in some additional obscurity since a processor/board porter needs to understand that there is an additional hook to grab for customization.
i think the split version proposed is a lot nicer than the current one, but going the route of having an arch hook would be best. i dont think we even need a weak function ... force every arch to implement *something*.
It's the case The idea is to allow soc and board to allow them to print more info
Best Regards, J.

On Wed, Nov 12, 2008 at 11:31 AM, Jean-Christophe PLAGNIOL-VILLARD wrote:
Is this a good idea? It takes one centralized mess (that is deprecated, but we don't have a good track record of death after deprecation) and spreads it out over a bunch of files. Reminds me of cancer. :-(
The centralized mess had no duplication of code, but a lot of #ifdef ugly. This patch trades off the removal of most of the #ifdef ugly for a lot of duplication. Which is the lesser of two evils?
If you continue down the fragmentation path, would it work to keep the primary bdinfo command (cmd_bdinfo.c) and add two weak function calls to it that processor families and boards can hook to add in their extra processor- and board-specific stuff? This may result in some rearrangement of the print output (which I don't view as a problem, but manual writers might not like it). It also results in some additional obscurity since a processor/board porter needs to understand that there is an additional hook to grab for customization.
i think the split version proposed is a lot nicer than the current one, but going the route of having an arch hook would be best. i dont think we even need a weak function ... force every arch to implement *something*.
It's the case The idea is to allow soc and board to allow them to print more info
so you have one hard arch hook and one weak board hook. every lib_<arch>/ needs to implement a bdinfo hook. -mike

On 12:55 Wed 12 Nov , Mike Frysinger wrote:
On Wed, Nov 12, 2008 at 11:31 AM, Jean-Christophe PLAGNIOL-VILLARD wrote:
Is this a good idea? It takes one centralized mess (that is deprecated, but we don't have a good track record of death after deprecation) and spreads it out over a bunch of files. Reminds me of cancer. :-(
The centralized mess had no duplication of code, but a lot of #ifdef ugly. This patch trades off the removal of most of the #ifdef ugly for a lot of duplication. Which is the lesser of two evils?
If you continue down the fragmentation path, would it work to keep the primary bdinfo command (cmd_bdinfo.c) and add two weak function calls to it that processor families and boards can hook to add in their extra processor- and board-specific stuff? This may result in some rearrangement of the print output (which I don't view as a problem, but manual writers might not like it). It also results in some additional obscurity since a processor/board porter needs to understand that there is an additional hook to grab for customization.
i think the split version proposed is a lot nicer than the current one, but going the route of having an arch hook would be best. i dont think we even need a weak function ... force every arch to implement *something*.
It's the case The idea is to allow soc and board to allow them to print more info
so you have one hard arch hook and one weak board hook. every
two weak hook to allow board AND soc to print more info
Best Regards, J.

On Wed, Nov 12, 2008 at 1:08 PM, Jean-Christophe PLAGNIOL-VILLARD wrote:
On 12:55 Wed 12 Nov , Mike Frysinger wrote:
On Wed, Nov 12, 2008 at 11:31 AM, Jean-Christophe PLAGNIOL-VILLARD wrote:
Is this a good idea? It takes one centralized mess (that is deprecated, but we don't have a good track record of death after deprecation) and spreads it out over a bunch of files. Reminds me of cancer. :-(
The centralized mess had no duplication of code, but a lot of #ifdef ugly. This patch trades off the removal of most of the #ifdef ugly for a lot of duplication. Which is the lesser of two evils?
If you continue down the fragmentation path, would it work to keep the primary bdinfo command (cmd_bdinfo.c) and add two weak function calls to it that processor families and boards can hook to add in their extra processor- and board-specific stuff? This may result in some rearrangement of the print output (which I don't view as a problem, but manual writers might not like it). It also results in some additional obscurity since a processor/board porter needs to understand that there is an additional hook to grab for customization.
i think the split version proposed is a lot nicer than the current one, but going the route of having an arch hook would be best. i dont think we even need a weak function ... force every arch to implement *something*.
It's the case The idea is to allow soc and board to allow them to print more info
so you have one hard arch hook and one weak board hook. every
two weak hook
there's no point in making the arch one weak if every arch implements it. you simply add useless overhead.
to allow board AND soc to print more info
which is exactly what i said -mike
participants (5)
-
Haavard Skinnemoen
-
Jean-Christophe PLAGNIOL-VILLARD
-
Jerry Van Baren
-
Joakim Tjernlund
-
Mike Frysinger