cmd_bdinfo: move implementation to arch instead of common
PATCH 1/1 cmd_bdinfo: move implementation to arch instead of common
---
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
common/Makefile +0 -1
@@ -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
common/cmd_bdinfo.c deleted +0 -447
447 lines not on this page · raw message
include/common.h +15 -0
@@ -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_ */
lib_arm/Makefile +1 -0
@@ -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
lib_arm/bdinfo.c new file +69 -0
69 lines not on this page · raw message
lib_avr32/Makefile +1 -0
@@ -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
lib_avr32/bdinfo.c new file +62 -0
62 lines not on this page · raw message
lib_blackfin/Makefile +1 -0
@@ -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
lib_blackfin/bdinfo.c new file +68 -0
68 lines not on this page · raw message
lib_i386/Makefile +1 -0
@@ -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
lib_i386/bdinfo.c new file +62 -0
62 lines not on this page · raw message
lib_m68k/Makefile +1 -0
@@ -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
lib_m68k/bdinfo.c new file +101 -0
101 lines not on this page · raw message
lib_microblaze/Makefile +1 -0
@@ -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
lib_microblaze/bdinfo.c new file +65 -0
65 lines not on this page · raw message
lib_mips/Makefile +1 -0
@@ -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
lib_mips/bdinfo.c new file +62 -0
62 lines not on this page · raw message
lib_nios/Makefile +1 -0
@@ -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
lib_nios/bdinfo.c new file +61 -0
61 lines not on this page · raw message
lib_nios2/Makefile +1 -0
@@ -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
lib_nios2/bdinfo.c new file +71 -0
71 lines not on this page · raw message
lib_ppc/Makefile +1 -0
@@ -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
lib_ppc/bdinfo.c new file +141 -0
141 lines not on this page · raw message
lib_sh/Makefile +1 -0
@@ -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
lib_sh/bdinfo.c new file +62 -0
62 lines not on this page · raw message
lib_sparc/Makefile +9 -4
@@ -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)
lib_sparc/bdinfo.c new file +78 -0
78 lines not on this page · raw message
Signature · 1 line
1.5.6.5
PATCH 1/1 cmd_bdinfo: move implementation to arch instead of common
Quoted 25 lines · Jean-Christophe PLAGNIOL-VILLARD
Signed-off-by Jean-Christophe PLAGNIOL-VILLARD <[email protected]>---
apply after my precedent fix forcmd_bdinfoBest 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 +++++++
Quoted 8 lines
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
PATCH 1/1 cmd_bdinfo: move implementation to arch instead of common
Hi Jerry,
Quoted 35 lines · Jerry Van Baren
Quoted 25 lines · Jean-Christophe PLAGNIOL-VILLARD
Signed-off-by Jean-Christophe PLAGNIOL-VILLARD <[email protected]>---
apply after my precedent fix forcmd_bdinfoBest 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 +++++++Quoted 8 lines
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 ++++++++
Quoted 5 lines
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'
Quoted 3 lines
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
Quoted 2 lines
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
Quoted 5 lines
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
Quoted 3 lines
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.
Quoted 3 lines
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.
PATCH v2 1/1 cmd_bdinfo: move implementation to arch instead of common
introduce two new weak functions board_bdinfo and soc_bdinfo to allow board and soc to print more information
--- 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
common/cmd_bdinfo.c +57 -447
@@ -1,447 +1,57 @@ -/* -* (C) Copyright 2003 -* Wolfgang Denk, DENX Software Engineering, wd at denx.de. -* -* See file CREDITS for list of people who contributed to this -* project. -* -* This program is free software; you can redistribute it and/or -* modify it under the terms of the GNU General Public License as -* published by the Free Software Foundation; either version 2 of -* the License, or (at your option) any later version. -* -* This program is distributed in the hope that it will be useful, -* but WITHOUT ANY WARRANTY; without even the implied warranty of -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -* GNU General Public License for more details. -* -* You should have received a copy of the GNU General Public License -* along with this program; if not, write to the Free Software -* Foundation, Inc., 59 Temple Place, Suite 330, Boston, -* MA 02111-1307 USA -*/ - -/* -* Boot support -*/ -#include <common.h> -#include <command.h> -#include <net.h> /* for print_IPaddr */ - -DECLARE_GLOBAL_DATA_PTR ; - -static void print_num (const char *,ulong ); - -#ifndef CONFIG_ARM /* PowerPC and other */ -static void print_lnum (const char *,u64 ); - -#ifdef CONFIG_PPC -static void print_str (const char *,const char *); - -int do_bdinfo (cmd_tbl_t *cmdtp,int flag,int argc,char *argv[]) -{ -int i; -bd_t *bd = gd->bd; -char buf[32 ]; - -#ifdef DEBUG -print_num ("bd address" , (ulong )bd ); -#endif -print_num ("memstart" , bd->bi_memstart ); -print_lnum ("memsize" , bd->bi_memsize ); -print_num ("flashstart" , bd->bi_flashstart ); -print_num ("flashsize" , bd->bi_flashsize ); -print_num ("flashoffset" , bd->bi_flashoffset ); -print_num ("sramstart" , bd->bi_sramstart ); -print_num ("sramsize" , bd->bi_sramsize ); -#if defined(CONFIG_5xx) || defined(CONFIG_8xx) || \ - defined(CONFIG_8260 ) || defined(CONFIG_E500 ) -print_num ("immr_base" , bd->bi_immr_base ); -#endif -print_num ("bootflags" , bd->bi_bootflags ); -#if defined(CONFIG_405GP ) || defined(CONFIG_405CR ) || \ - defined(CONFIG_405EP ) || defined(CONFIG_XILINX_405 ) || \ - defined(CONFIG_440EP ) || defined(CONFIG_440GR ) || \ - defined(CONFIG_440EPX ) || defined(CONFIG_440GRX ) || \ - defined(CONFIG_440SP ) || defined(CONFIG_440SPE ) -print_str ("procfreq" ,strmhz (buf, bd->bi_procfreq)); -print_str ("plb_busfreq" ,strmhz (buf, bd->bi_plb_busfreq)); -#if defined(CONFIG_405GP ) || defined(CONFIG_405EP ) || defined(CONFIG_XILINX_405 ) || \ - defined(CONFIG_440EP ) || defined(CONFIG_440GR ) || defined(CONFIG_440SPE ) || \ - defined(CONFIG_440EPX ) || defined(CONFIG_440GRX ) -print_str ("pci_busfreq" ,strmhz (buf, bd->bi_pci_busfreq)); -#endif -#else /* ! CONFIG_405GP, CONFIG_405CR, CONFIG_405EP, CONFIG_XILINX_405, CONFIG_440EP CONFIG_440GR */ -#if defined(CONFIG_CPM2 ) -print_str ("vco" ,strmhz (buf, bd->bi_vco)); -print_str ("sccfreq" ,strmhz (buf, bd->bi_sccfreq)); -print_str ("brgfreq" ,strmhz (buf, bd->bi_brgfreq)); -#endif -print_str ("intfreq" ,strmhz (buf, bd->bi_intfreq)); -#if defined(CONFIG_CPM2 ) -print_str ("cpmfreq" ,strmhz (buf, bd->bi_cpmfreq)); -#endif -print_str ("busfreq" ,strmhz (buf, bd->bi_busfreq)); -#endif /* CONFIG_405GP, CONFIG_405CR, CONFIG_405EP, CONFIG_XILINX_405, CONFIG_440EP CONFIG_440GR */ -#if defined(CONFIG_MPC8220 ) -print_str ("inpfreq" ,strmhz (buf, bd->bi_inpfreq)); -print_str ("flbfreq" ,strmhz (buf, bd->bi_flbfreq)); -print_str ("pcifreq" ,strmhz (buf, bd->bi_pcifreq)); -print_str ("vcofreq" ,strmhz (buf, bd->bi_vcofreq)); -print_str ("pevfreq" ,strmhz (buf, bd->bi_pevfreq)); -#endif - -puts ("ethaddr =" ); -for (i=0 ; i<6 ; ++i) { -printf ("%c%02X" , i ?':' :' ' , bd->bi_enetaddr[i]); - } - -#if defined(CONFIG_HAS_ETH1 ) -puts ("\neth1addr =" ); -for (i=0 ; i<6 ; ++i) { -printf ("%c%02X" , i ?':' :' ' , bd->bi_enet1addr[i]); - } -#endif - -#if defined(CONFIG_HAS_ETH2 ) -puts ("\neth2addr =" ); -for (i=0 ; i<6 ; ++i) { -printf ("%c%02X" , i ?':' :' ' , bd->bi_enet2addr[i]); - } -#endif - -#if defined(CONFIG_HAS_ETH3 ) -puts ("\neth3addr =" ); -for (i=0 ; i<6 ; ++i) { -printf ("%c%02X" , i ?':' :' ' , bd->bi_enet3addr[i]); - } -#endif - -#if defined(CONFIG_HAS_ETH4 ) -puts ("\neth4addr =" ); -for (i=0 ; i<6 ; ++i) { -printf ("%c%02X" , i ?':' :' ' , bd->bi_enet4addr[i]); - } -#endif - -#if defined(CONFIG_HAS_ETH5 ) -puts ("\neth5addr =" ); -for (i=0 ; i<6 ; ++i) { -printf ("%c%02X" , i ?':' :' ' , bd->bi_enet5addr[i]); - } -#endif - -#ifdef CONFIG_HERMES -print_str ("ethspeed" ,strmhz (buf, bd->bi_ethspeed)); -#endif -puts ("\nIP addr = " );print_IPaddr (bd->bi_ip_addr); -printf ("\nbaudrate = %6ld bps\n" , bd->bi_baudrate ); -return 0 ; -} - -#elif defined(CONFIG_NIOS )/* NIOS*/ - -int do_bdinfo (cmd_tbl_t *cmdtp,int flag,int argc,char *argv[]) -{ -int i; -bd_t *bd = gd->bd; - -print_num ("memstart" , (ulong )bd->bi_memstart); -print_lnum ("memsize" , (u64 )bd->bi_memsize); -print_num ("flashstart" , (ulong )bd->bi_flashstart); -print_num ("flashsize" , (ulong )bd->bi_flashsize); -print_num ("flashoffset" , (ulong )bd->bi_flashoffset); - -puts ("ethaddr =" ); -for (i=0 ; i<6 ; ++i) { -printf ("%c%02X" , i ?':' :' ' , bd->bi_enetaddr[i]); - } -puts ("\nip_addr = " ); -print_IPaddr (bd->bi_ip_addr); -printf ("\nbaudrate = %ld bps\n" , bd->bi_baudrate); - -return 0 ; -} - -#elif defined(CONFIG_NIOS2 )/* Nios-II */ - -int do_bdinfo (cmd_tbl_t *cmdtp,int flag,int argc,char *argv[]) -{ -#if defined(CONFIG_CMD_NET ) -int i; -#endif -bd_t *bd = gd->bd; - -print_num ("mem start" , (ulong )bd->bi_memstart); -print_lnum ("mem size" , (u64 )bd->bi_memsize); -print_num ("flash start" , (ulong )bd->bi_flashstart); -print_num ("flash size" , (ulong )bd->bi_flashsize); -print_num ("flash offset" , (ulong )bd->bi_flashoffset); - -#if defined(CONFIG_SYS_SRAM_BASE ) -print_num ("sram start" , (ulong )bd->bi_sramstart); -print_num ("sram size" , (ulong )bd->bi_sramsize); -#endif - -#if defined(CONFIG_CMD_NET ) -puts ("ethaddr =" ); -for (i=0 ; i<6 ; ++i) { -printf ("%c%02X" , i ?':' :' ' , bd->bi_enetaddr[i]); - } -puts ("\nip_addr = " ); -print_IPaddr (bd->bi_ip_addr); -#endif - -printf ("\nbaudrate = %ld bps\n" , bd->bi_baudrate); - -return 0 ; -} -#elif defined(CONFIG_MICROBLAZE )/* ! PPC, which leaves Microblaze */ - -int do_bdinfo (cmd_tbl_t *cmdtp,int flag,int argc,char *argv[]) -{ -int i; -bd_t *bd = gd->bd; -print_num ("mem start " , (ulong )bd->bi_memstart); -print_lnum ("mem size " , (u64 )bd->bi_memsize); -print_num ("flash start " , (ulong )bd->bi_flashstart); -print_num ("flash size " , (ulong )bd->bi_flashsize); -print_num ("flash offset " , (ulong )bd->bi_flashoffset); -#if defined(CONFIG_SYS_SRAM_BASE ) -print_num ("sram start " , (ulong )bd->bi_sramstart); -print_num ("sram size " , (ulong )bd->bi_sramsize); -#endif -#if defined(CONFIG_CMD_NET ) -puts ("ethaddr =" ); -for (i=0 ; i<6 ; ++i) { -printf ("%c%02X" , i ?':' :' ' , bd->bi_enetaddr[i]); - } -puts ("\nip_addr = " ); -print_IPaddr (bd->bi_ip_addr); -#endif -printf ("\nbaudrate = %ld bps\n" , (ulong )bd->bi_baudrate); -return 0 ; -} - -#elif defined(CONFIG_SPARC )/* SPARC */ -int do_bdinfo (cmd_tbl_t * cmdtp,int flag,int argc,char *argv[]) -{ -bd_t *bd = gd->bd; -#if defined(CONFIG_CMD_NET ) -int i; -#endif - -#ifdef DEBUG -print_num ("bd address " , (ulong ) bd); -#endif -print_num ("memstart " , bd->bi_memstart); -print_lnum ("memsize " , bd->bi_memsize); -print_num ("flashstart " , bd->bi_flashstart); -print_num ("CONFIG_SYS_MONITOR_BASE " ,CONFIG_SYS_MONITOR_BASE ); -print_num ("CONFIG_ENV_ADDR " ,CONFIG_ENV_ADDR ); -printf ("CONFIG_SYS_RELOC_MONITOR_BASE = 0x%lx (%d)\n" ,CONFIG_SYS_RELOC_MONITOR_BASE , -CONFIG_SYS_MONITOR_LEN ); -printf ("CONFIG_SYS_MALLOC_BASE = 0x%lx (%d)\n" ,CONFIG_SYS_MALLOC_BASE , -CONFIG_SYS_MALLOC_LEN ); -printf ("CONFIG_SYS_INIT_SP_OFFSET = 0x%lx (%d)\n" ,CONFIG_SYS_INIT_SP_OFFSET , -CONFIG_SYS_STACK_SIZE ); -printf ("CONFIG_SYS_PROM_OFFSET = 0x%lx (%d)\n" ,CONFIG_SYS_PROM_OFFSET , -CONFIG_SYS_PROM_SIZE ); -printf ("CONFIG_SYS_GBL_DATA_OFFSET = 0x%lx (%d)\n" ,CONFIG_SYS_GBL_DATA_OFFSET , -CONFIG_SYS_GBL_DATA_SIZE ); - -#if defined(CONFIG_CMD_NET ) -puts ("ethaddr =" ); -for (i =0 ; i <6 ; ++i) { -printf ("%c%02X" , i ?':' :' ' , bd->bi_enetaddr[i]); - } -puts ("\nIP addr = " ); -print_IPaddr (bd->bi_ip_addr); -#endif -printf ("\nbaudrate = %6ld bps\n" , bd->bi_baudrate); -return 0 ; -} - -#elif defined(CONFIG_M68K )/* M68K */ -static void print_str (const char *,const char *); - -int do_bdinfo (cmd_tbl_t *cmdtp,int flag,int argc,char *argv[]) -{ -int i; -bd_t *bd = gd->bd; -char buf[32 ]; - -print_num ("memstart" , (ulong )bd->bi_memstart); -print_lnum ("memsize" , (u64 )bd->bi_memsize); -print_num ("flashstart" , (ulong )bd->bi_flashstart); -print_num ("flashsize" , (ulong )bd->bi_flashsize); -print_num ("flashoffset" , (ulong )bd->bi_flashoffset); -#if defined(CONFIG_SYS_INIT_RAM_ADDR ) -print_num ("sramstart" , (ulong )bd->bi_sramstart); -print_num ("sramsize" , (ulong )bd->bi_sramsize); -#endif -#if defined(CONFIG_SYS_MBAR ) -print_num ("mbar" , bd->bi_mbar_base); -#endif -print_str ("busfreq" ,strmhz (buf, bd->bi_busfreq)); -#ifdef CONFIG_PCI -print_str ("pcifreq" ,strmhz (buf, bd->bi_pcifreq)); -#endif -#ifdef CONFIG_EXTRA_CLOCK -print_str ("flbfreq" ,strmhz (buf, bd->bi_flbfreq)); -print_str ("inpfreq" ,strmhz (buf, bd->bi_inpfreq)); -print_str ("vcofreq" ,strmhz (buf, bd->bi_vcofreq)); -#endif -#if defined(CONFIG_CMD_NET ) -puts ("ethaddr =" ); -for (i=0 ; i<6 ; ++i) { -printf ("%c%02X" , i ?':' :' ' , bd->bi_enetaddr[i]); - } - -#if defined(CONFIG_HAS_ETH1 ) -puts ("\neth1addr =" ); -for (i=0 ; i<6 ; ++i) { -printf ("%c%02X" , i ?':' :' ' , bd->bi_enet1addr[i]); - } -#endif - -#if defined(CONFIG_HAS_ETH2 ) -puts ("\neth2addr =" ); -for (i=0 ; i<6 ; ++i) { -printf ("%c%02X" , i ?':' :' ' , bd->bi_enet2addr[i]); - } -#endif - -#if defined(CONFIG_HAS_ETH3 ) -puts ("\neth3addr =" ); -for (i=0 ; i<6 ; ++i) { -printf ("%c%02X" , i ?':' :' ' , bd->bi_enet3addr[i]); - } -#endif - -puts ("\nip_addr = " ); -print_IPaddr (bd->bi_ip_addr); -#endif -printf ("\nbaudrate = %d bps\n" , bd->bi_baudrate); - -return 0 ; -} - -#elif defined(CONFIG_BLACKFIN ) - -int do_bdinfo (cmd_tbl_t *cmdtp,int flag,int argc,char *argv[]) -{ -int i; -bd_t *bd = gd->bd; - -printf ("U-Boot = %s\n" , bd->bi_r_version); -printf ("CPU = %s\n" , bd->bi_cpu); -printf ("Board = %s\n" , bd->bi_board_name); -printf ("VCO = %lu MHz\n" , bd->bi_vco /1000000 ); -printf ("CCLK = %lu MHz\n" , bd->bi_cclk /1000000 ); -printf ("SCLK = %lu MHz\n" , bd->bi_sclk /1000000 ); - -print_num ("boot_params" , (ulong )bd->bi_boot_params); -print_num ("memstart" , (ulong )bd->bi_memstart); -print_lnum ("memsize" , (u64 )bd->bi_memsize); -print_num ("flashstart" , (ulong )bd->bi_flashstart); -print_num ("flashsize" , (ulong )bd->bi_flashsize); -print_num ("flashoffset" , (ulong )bd->bi_flashoffset); - -puts ("ethaddr =" ); -for (i =0 ; i <6 ; ++i) -printf ("%c%02X" , i ?':' :' ' , bd->bi_enetaddr[i]); -puts ("\nip_addr = " ); -print_IPaddr (bd->bi_ip_addr); -printf ("\nbaudrate = %d bps\n" , bd->bi_baudrate); - -return 0 ; -} - -#else /* ! PPC, which leaves MIPS */ - -int do_bdinfo (cmd_tbl_t *cmdtp,int flag,int argc,char *argv[]) -{ -int i; -bd_t *bd = gd->bd; - -print_num ("boot_params" , (ulong )bd->bi_boot_params); -print_num ("memstart" , (ulong )bd->bi_memstart); -print_lnum ("memsize" , (u64 )bd->bi_memsize); -print_num ("flashstart" , (ulong )bd->bi_flashstart); -print_num ("flashsize" , (ulong )bd->bi_flashsize); -print_num ("flashoffset" , (ulong )bd->bi_flashoffset); - -puts ("ethaddr =" ); -for (i=0 ; i<6 ; ++i) { -printf ("%c%02X" , i ?':' :' ' , bd->bi_enetaddr[i]); - } -puts ("\nip_addr = " ); -print_IPaddr (bd->bi_ip_addr); -printf ("\nbaudrate = %ld bps\n" , bd->bi_baudrate); - -return 0 ; -} -#endif /* MIPS */ - -#else /* ARM */ - -int do_bdinfo (cmd_tbl_t *cmdtp,int flag,int argc,char *argv[]) -{ -int i; -bd_t *bd = gd->bd; - -print_num ("arch_number" , bd->bi_arch_number); -print_num ("env_t" , (ulong )bd->bi_env); -print_num ("boot_params" , (ulong )bd->bi_boot_params); - -for (i=0 ; i<CONFIG_NR_DRAM_BANKS ; ++i) { -print_num ("DRAM bank" , i); -print_num ("-> start" , bd->bi_dram[i].start); -print_num ("-> size" , bd->bi_dram[i].size); - } - -#if defined(CONFIG_CMD_NET ) -puts ("ethaddr =" ); -for (i=0 ; i<6 ; ++i) { -printf ("%c%02X" , i ?':' :' ' , bd->bi_enetaddr[i]); - } -puts ("\n" -"ip_addr = " ); -print_IPaddr (bd->bi_ip_addr); -#endif -printf ("\n" -"baudrate = %d bps\n" , bd->bi_baudrate); - -return 0 ; -} - -#endif /* CONFIG_ARM XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX */ - -static void print_num (const char *name,ulong value) -{ -printf ("%-12s= 0x%08lX\n" , name, value); -} - -#ifndef CONFIG_ARM -static void print_lnum (const char *name,u64 value) -{ -printf ("%-12s= 0x%.8llX\n" , name, value); -} -#endif - -#if defined(CONFIG_PPC ) || defined(CONFIG_M68K ) -static void print_str (const char *name,const char *str) -{ -printf ("%-12s= %6s MHz\n" , name, str); -} -#endif /* CONFIG_PPC */ - - -/* -------------------------------------------------------------------- */ - -U_BOOT_CMD ( - bdinfo,1 ,1 , do_bdinfo, -"bdinfo - print Board Info structure\n" , -NULL -); +/* +* (C) Copyright 2003 +* Wolfgang Denk, DENX Software Engineering, wd at denx.de. +* +* See file CREDITS for list of people who contributed to this +* project. +* +* This program is free software; you can redistribute it and/or +* modify it under the terms of the GNU General Public License as +* published by the Free Software Foundation; either version 2 of +* the License, or (at your option) any later version. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with this program; if not, write to the Free Software +* Foundation, Inc., 59 Temple Place, Suite 330, Boston, +* MA 02111-1307 USA +*/ + +/* +* Boot support +*/ +#include <common.h> +#include <command.h> +#include <bdinfo.h> + +void board_bdinfo (cmd_tbl_t *,int ,int ,char **) __attribute((weak)); +void soc_bdinfo (cmd_tbl_t *,int ,int ,char **) __attribute((weak)); + +int do_bdinfo (cmd_tbl_t *cmdtp,int flag,int argc,char *argv[]) +{ + +/* call arch bdinfo */ +arch_bdinfo (cmdtp, flag, argc, argv); + +/* call soc bdinfo */ +if (soc_bdinfo) +soc_bdinfo (cmdtp, flag, argc, argv); + +/* call board bdinfo */ +if (board_bdinfo) +board_bdinfo (cmdtp, flag, argc, argv); + +return 0 ; +} + +/* -------------------------------------------------------------------- */ + +U_BOOT_CMD ( + bdinfo,1 ,1 , do_bdinfo, +"bdinfo - print Board Info structure\n" , +NULL +);
include/bdinfo.h new file +54 -0
54 lines not on this page · raw message
lib_arm/Makefile +1 -0
@@ -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
lib_arm/bdinfo.c new file +58 -0
58 lines not on this page · raw message
lib_avr32/Makefile +1 -0
@@ -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
lib_avr32/bdinfo.c new file +50 -0
50 lines not on this page · raw message
lib_blackfin/Makefile +1 -0
@@ -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
lib_blackfin/bdinfo.c new file +57 -0
57 lines not on this page · raw message
lib_i386/Makefile +1 -0
@@ -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
lib_i386/bdinfo.c new file +50 -0
50 lines not on this page · raw message
lib_m68k/Makefile +1 -0
@@ -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
lib_m68k/bdinfo.c new file +83 -0
83 lines not on this page · raw message
lib_microblaze/Makefile +1 -0
@@ -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
lib_microblaze/bdinfo.c new file +54 -0
54 lines not on this page · raw message
lib_mips/Makefile +1 -0
@@ -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
lib_mips/bdinfo.c new file +50 -0
50 lines not on this page · raw message
lib_nios/Makefile +1 -0
@@ -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
lib_nios/bdinfo.c new file +49 -0
49 lines not on this page · raw message
lib_nios2/Makefile +1 -0
@@ -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
lib_nios2/bdinfo.c new file +57 -0
57 lines not on this page · raw message
lib_ppc/Makefile +1 -0
@@ -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
lib_ppc/bdinfo.c new file +119 -0
119 lines not on this page · raw message
lib_sh/Makefile +1 -0
@@ -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
lib_sh/bdinfo.c new file +50 -0
50 lines not on this page · raw message
lib_sparc/Makefile +9 -4
@@ -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)
lib_sparc/bdinfo.c new file +64 -0
64 lines not on this page · raw message
Signature · 1 line
1.5.6.5
PATCH v2 1/1 cmd_bdinfo: move implementation to arch instead of common
Quoted 2 lines · Jean-Christophe PLAGNIOL-VILLARD
introduce two new weak functions
board_bdinfoandsoc_bdinfoto 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().
common/cmd_bdinfo.c line 32
Quoted 2 lines
common/cmd_bdinfo.c +2
-0+void board_bdinfo (cmd_tbl_t *,int ,int ,char **) __attribute((weak)); +void soc_bdinfo (cmd_tbl_t *,int ,int ,char **) __attribute((weak));
__attribute__
common/cmd_bdinfo.c line 45
Quoted 3 lines
common/cmd_bdinfo.c +3
-0+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
PATCH v2 1/1 cmd_bdinfo: move implementation to arch instead of common
Quoted 7 lines · Mike Frysinger
Quoted 2 lines · Jean-Christophe PLAGNIOL-VILLARD
introduce two new weak functions
board_bdinfoandsoc_bdinfoto allow board and soc to print more informationthere 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
Quoted 5 lines
common/cmd_bdinfo.c line 45
Quoted 3 lines
common/cmd_bdinfo.c +3
-0+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.
PATCH v2 1/1 cmd_bdinfo: move implementation to arch instead of common
Quoted 11 lines · Jean-Christophe PLAGNIOL-VILLARD
Quoted 7 lines · Mike Frysinger
Quoted 2 lines · Jean-Christophe PLAGNIOL-VILLARD
introduce two new weak functions
board_bdinfoandsoc_bdinfoto allow board and soc to print more informationthere 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
Quoted 8 lines
Quoted 5 lines
common/cmd_bdinfo.c line 45
Quoted 3 lines
common/cmd_bdinfo.c +3
-0+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
PATCH v2 1/1 cmd_bdinfo: move implementation to arch instead of common
Quoted 18 lines · Mike Frysinger
Quoted 17 lines · Jean-Christophe PLAGNIOL-VILLARD
Quoted 7 lines · Mike Frysinger
Quoted 2 lines · Jean-Christophe PLAGNIOL-VILLARD
introduce two new weak functions
board_bdinfoandsoc_bdinfoto allow board and soc to print more informationthere 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
Quoted 5 lines
common/cmd_bdinfo.c line 45
Quoted 3 lines
common/cmd_bdinfo.c +3
-0+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 ...
Quoted 7 lines
Quoted 2 lines
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.cdid 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.
PATCH v3 1/1 cmd_bdinfo: move implementation to arch instead of common
In reply to Jean-Christophe PLAGNIOL-VILLARDintroduce 3 new weak functions board_bdinfo, cpu_bdinfo and soc_bdinfo to allow board, cpu and soc to print more information
---
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
common/cmd_bdinfo.c +68 -447
@@ -1,447 +1,68 @@ -/* -* (C) Copyright 2003 -* Wolfgang Denk, DENX Software Engineering, wd at denx.de. -* -* See file CREDITS for list of people who contributed to this -* project. -* -* This program is free software; you can redistribute it and/or -* modify it under the terms of the GNU General Public License as -* published by the Free Software Foundation; either version 2 of -* the License, or (at your option) any later version. -* -* This program is distributed in the hope that it will be useful, -* but WITHOUT ANY WARRANTY; without even the implied warranty of -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -* GNU General Public License for more details. -* -* You should have received a copy of the GNU General Public License -* along with this program; if not, write to the Free Software -* Foundation, Inc., 59 Temple Place, Suite 330, Boston, -* MA 02111-1307 USA -*/ - -/* -* Boot support -*/ -#include <common.h> -#include <command.h> -#include <net.h> /* for print_IPaddr */ - -DECLARE_GLOBAL_DATA_PTR ; - -static void print_num (const char *,ulong ); - -#ifndef CONFIG_ARM /* PowerPC and other */ -static void print_lnum (const char *,u64 ); - -#ifdef CONFIG_PPC -static void print_str (const char *,const char *); - -int do_bdinfo (cmd_tbl_t *cmdtp,int flag,int argc,char *argv[]) -{ -int i; -bd_t *bd = gd->bd; -char buf[32 ]; - -#ifdef DEBUG -print_num ("bd address" , (ulong )bd ); -#endif -print_num ("memstart" , bd->bi_memstart ); -print_lnum ("memsize" , bd->bi_memsize ); -print_num ("flashstart" , bd->bi_flashstart ); -print_num ("flashsize" , bd->bi_flashsize ); -print_num ("flashoffset" , bd->bi_flashoffset ); -print_num ("sramstart" , bd->bi_sramstart ); -print_num ("sramsize" , bd->bi_sramsize ); -#if defined(CONFIG_5xx) || defined(CONFIG_8xx) || \ - defined(CONFIG_8260 ) || defined(CONFIG_E500 ) -print_num ("immr_base" , bd->bi_immr_base ); -#endif -print_num ("bootflags" , bd->bi_bootflags ); -#if defined(CONFIG_405GP ) || defined(CONFIG_405CR ) || \ - defined(CONFIG_405EP ) || defined(CONFIG_XILINX_405 ) || \ - defined(CONFIG_440EP ) || defined(CONFIG_440GR ) || \ - defined(CONFIG_440EPX ) || defined(CONFIG_440GRX ) || \ - defined(CONFIG_440SP ) || defined(CONFIG_440SPE ) -print_str ("procfreq" ,strmhz (buf, bd->bi_procfreq)); -print_str ("plb_busfreq" ,strmhz (buf, bd->bi_plb_busfreq)); -#if defined(CONFIG_405GP ) || defined(CONFIG_405EP ) || defined(CONFIG_XILINX_405 ) || \ - defined(CONFIG_440EP ) || defined(CONFIG_440GR ) || defined(CONFIG_440SPE ) || \ - defined(CONFIG_440EPX ) || defined(CONFIG_440GRX ) -print_str ("pci_busfreq" ,strmhz (buf, bd->bi_pci_busfreq)); -#endif -#else /* ! CONFIG_405GP, CONFIG_405CR, CONFIG_405EP, CONFIG_XILINX_405, CONFIG_440EP CONFIG_440GR */ -#if defined(CONFIG_CPM2 ) -print_str ("vco" ,strmhz (buf, bd->bi_vco)); -print_str ("sccfreq" ,strmhz (buf, bd->bi_sccfreq)); -print_str ("brgfreq" ,strmhz (buf, bd->bi_brgfreq)); -#endif -print_str ("intfreq" ,strmhz (buf, bd->bi_intfreq)); -#if defined(CONFIG_CPM2 ) -print_str ("cpmfreq" ,strmhz (buf, bd->bi_cpmfreq)); -#endif -print_str ("busfreq" ,strmhz (buf, bd->bi_busfreq)); -#endif /* CONFIG_405GP, CONFIG_405CR, CONFIG_405EP, CONFIG_XILINX_405, CONFIG_440EP CONFIG_440GR */ -#if defined(CONFIG_MPC8220 ) -print_str ("inpfreq" ,strmhz (buf, bd->bi_inpfreq)); -print_str ("flbfreq" ,strmhz (buf, bd->bi_flbfreq)); -print_str ("pcifreq" ,strmhz (buf, bd->bi_pcifreq)); -print_str ("vcofreq" ,strmhz (buf, bd->bi_vcofreq)); -print_str ("pevfreq" ,strmhz (buf, bd->bi_pevfreq)); -#endif - -puts ("ethaddr =" ); -for (i=0 ; i<6 ; ++i) { -printf ("%c%02X" , i ?':' :' ' , bd->bi_enetaddr[i]); - } - -#if defined(CONFIG_HAS_ETH1 ) -puts ("\neth1addr =" ); -for (i=0 ; i<6 ; ++i) { -printf ("%c%02X" , i ?':' :' ' , bd->bi_enet1addr[i]); - } -#endif - -#if defined(CONFIG_HAS_ETH2 ) -puts ("\neth2addr =" ); -for (i=0 ; i<6 ; ++i) { -printf ("%c%02X" , i ?':' :' ' , bd->bi_enet2addr[i]); - } -#endif - -#if defined(CONFIG_HAS_ETH3 ) -puts ("\neth3addr =" ); -for (i=0 ; i<6 ; ++i) { -printf ("%c%02X" , i ?':' :' ' , bd->bi_enet3addr[i]); - } -#endif - -#if defined(CONFIG_HAS_ETH4 ) -puts ("\neth4addr =" ); -for (i=0 ; i<6 ; ++i) { -printf ("%c%02X" , i ?':' :' ' , bd->bi_enet4addr[i]); - } -#endif - -#if defined(CONFIG_HAS_ETH5 ) -puts ("\neth5addr =" ); -for (i=0 ; i<6 ; ++i) { -printf ("%c%02X" , i ?':' :' ' , bd->bi_enet5addr[i]); - } -#endif - -#ifdef CONFIG_HERMES -print_str ("ethspeed" ,strmhz (buf, bd->bi_ethspeed)); -#endif -puts ("\nIP addr = " );print_IPaddr (bd->bi_ip_addr); -printf ("\nbaudrate = %6ld bps\n" , bd->bi_baudrate ); -return 0 ; -} - -#elif defined(CONFIG_NIOS )/* NIOS*/ - -int do_bdinfo (cmd_tbl_t *cmdtp,int flag,int argc,char *argv[]) -{ -int i; -bd_t *bd = gd->bd; - -print_num ("memstart" , (ulong )bd->bi_memstart); -print_lnum ("memsize" , (u64 )bd->bi_memsize); -print_num ("flashstart" , (ulong )bd->bi_flashstart); -print_num ("flashsize" , (ulong )bd->bi_flashsize); -print_num ("flashoffset" , (ulong )bd->bi_flashoffset); - -puts ("ethaddr =" ); -for (i=0 ; i<6 ; ++i) { -printf ("%c%02X" , i ?':' :' ' , bd->bi_enetaddr[i]); - } -puts ("\nip_addr = " ); -print_IPaddr (bd->bi_ip_addr); -printf ("\nbaudrate = %ld bps\n" , bd->bi_baudrate); - -return 0 ; -} - -#elif defined(CONFIG_NIOS2 )/* Nios-II */ - -int do_bdinfo (cmd_tbl_t *cmdtp,int flag,int argc,char *argv[]) -{ -#if defined(CONFIG_CMD_NET ) -int i; -#endif -bd_t *bd = gd->bd; - -print_num ("mem start" , (ulong )bd->bi_memstart); -print_lnum ("mem size" , (u64 )bd->bi_memsize); -print_num ("flash start" , (ulong )bd->bi_flashstart); -print_num ("flash size" , (ulong )bd->bi_flashsize); -print_num ("flash offset" , (ulong )bd->bi_flashoffset); - -#if defined(CONFIG_SYS_SRAM_BASE ) -print_num ("sram start" , (ulong )bd->bi_sramstart); -print_num ("sram size" , (ulong )bd->bi_sramsize); -#endif - -#if defined(CONFIG_CMD_NET ) -puts ("ethaddr =" ); -for (i=0 ; i<6 ; ++i) { -printf ("%c%02X" , i ?':' :' ' , bd->bi_enetaddr[i]); - } -puts ("\nip_addr = " ); -print_IPaddr (bd->bi_ip_addr); -#endif - -printf ("\nbaudrate = %ld bps\n" , bd->bi_baudrate); - -return 0 ; -} -#elif defined(CONFIG_MICROBLAZE )/* ! PPC, which leaves Microblaze */ - -int do_bdinfo (cmd_tbl_t *cmdtp,int flag,int argc,char *argv[]) -{ -int i; -bd_t *bd = gd->bd; -print_num ("mem start " , (ulong )bd->bi_memstart); -print_lnum ("mem size " , (u64 )bd->bi_memsize); -print_num ("flash start " , (ulong )bd->bi_flashstart); -print_num ("flash size " , (ulong )bd->bi_flashsize); -print_num ("flash offset " , (ulong )bd->bi_flashoffset); -#if defined(CONFIG_SYS_SRAM_BASE ) -print_num ("sram start " , (ulong )bd->bi_sramstart); -print_num ("sram size " , (ulong )bd->bi_sramsize); -#endif -#if defined(CONFIG_CMD_NET ) -puts ("ethaddr =" ); -for (i=0 ; i<6 ; ++i) { -printf ("%c%02X" , i ?':' :' ' , bd->bi_enetaddr[i]); - } -puts ("\nip_addr = " ); -print_IPaddr (bd->bi_ip_addr); -#endif -printf ("\nbaudrate = %ld bps\n" , (ulong )bd->bi_baudrate); -return 0 ; -} - -#elif defined(CONFIG_SPARC )/* SPARC */ -int do_bdinfo (cmd_tbl_t * cmdtp,int flag,int argc,char *argv[]) -{ -bd_t *bd = gd->bd; -#if defined(CONFIG_CMD_NET ) -int i; -#endif - -#ifdef DEBUG -print_num ("bd address " , (ulong ) bd); -#endif -print_num ("memstart " , bd->bi_memstart); -print_lnum ("memsize " , bd->bi_memsize); -print_num ("flashstart " , bd->bi_flashstart); -print_num ("CONFIG_SYS_MONITOR_BASE " ,CONFIG_SYS_MONITOR_BASE ); -print_num ("CONFIG_ENV_ADDR " ,CONFIG_ENV_ADDR ); -printf ("CONFIG_SYS_RELOC_MONITOR_BASE = 0x%lx (%d)\n" ,CONFIG_SYS_RELOC_MONITOR_BASE , -CONFIG_SYS_MONITOR_LEN ); -printf ("CONFIG_SYS_MALLOC_BASE = 0x%lx (%d)\n" ,CONFIG_SYS_MALLOC_BASE , -CONFIG_SYS_MALLOC_LEN ); -printf ("CONFIG_SYS_INIT_SP_OFFSET = 0x%lx (%d)\n" ,CONFIG_SYS_INIT_SP_OFFSET , -CONFIG_SYS_STACK_SIZE ); -printf ("CONFIG_SYS_PROM_OFFSET = 0x%lx (%d)\n" ,CONFIG_SYS_PROM_OFFSET , -CONFIG_SYS_PROM_SIZE ); -printf ("CONFIG_SYS_GBL_DATA_OFFSET = 0x%lx (%d)\n" ,CONFIG_SYS_GBL_DATA_OFFSET , -CONFIG_SYS_GBL_DATA_SIZE ); - -#if defined(CONFIG_CMD_NET ) -puts ("ethaddr =" ); -for (i =0 ; i <6 ; ++i) { -printf ("%c%02X" , i ?':' :' ' , bd->bi_enetaddr[i]); - } -puts ("\nIP addr = " ); -print_IPaddr (bd->bi_ip_addr); -#endif -printf ("\nbaudrate = %6ld bps\n" , bd->bi_baudrate); -return 0 ; -} - -#elif defined(CONFIG_M68K )/* M68K */ -static void print_str (const char *,const char *); - -int do_bdinfo (cmd_tbl_t *cmdtp,int flag,int argc,char *argv[]) -{ -int i; -bd_t *bd = gd->bd; -char buf[32 ]; - -print_num ("memstart" , (ulong )bd->bi_memstart); -print_lnum ("memsize" , (u64 )bd->bi_memsize); -print_num ("flashstart" , (ulong )bd->bi_flashstart); -print_num ("flashsize" , (ulong )bd->bi_flashsize); -print_num ("flashoffset" , (ulong )bd->bi_flashoffset); -#if defined(CONFIG_SYS_INIT_RAM_ADDR ) -print_num ("sramstart" , (ulong )bd->bi_sramstart); -print_num ("sramsize" , (ulong )bd->bi_sramsize); -#endif -#if defined(CONFIG_SYS_MBAR ) -print_num ("mbar" , bd->bi_mbar_base); -#endif -print_str ("busfreq" ,strmhz (buf, bd->bi_busfreq)); -#ifdef CONFIG_PCI -print_str ("pcifreq" ,strmhz (buf, bd->bi_pcifreq)); -#endif -#ifdef CONFIG_EXTRA_CLOCK -print_str ("flbfreq" ,strmhz (buf, bd->bi_flbfreq)); -print_str ("inpfreq" ,strmhz (buf, bd->bi_inpfreq)); -print_str ("vcofreq" ,strmhz (buf, bd->bi_vcofreq)); -#endif -#if defined(CONFIG_CMD_NET ) -puts ("ethaddr =" ); -for (i=0 ; i<6 ; ++i) { -printf ("%c%02X" , i ?':' :' ' , bd->bi_enetaddr[i]); - } - -#if defined(CONFIG_HAS_ETH1 ) -puts ("\neth1addr =" ); -for (i=0 ; i<6 ; ++i) { -printf ("%c%02X" , i ?':' :' ' , bd->bi_enet1addr[i]); - } -#endif - -#if defined(CONFIG_HAS_ETH2 ) -puts ("\neth2addr =" ); -for (i=0 ; i<6 ; ++i) { -printf ("%c%02X" , i ?':' :' ' , bd->bi_enet2addr[i]); - } -#endif - -#if defined(CONFIG_HAS_ETH3 ) -puts ("\neth3addr =" ); -for (i=0 ; i<6 ; ++i) { -printf ("%c%02X" , i ?':' :' ' , bd->bi_enet3addr[i]); - } -#endif - -puts ("\nip_addr = " ); -print_IPaddr (bd->bi_ip_addr); -#endif -printf ("\nbaudrate = %d bps\n" , bd->bi_baudrate); - -return 0 ; -} - -#elif defined(CONFIG_BLACKFIN ) - -int do_bdinfo (cmd_tbl_t *cmdtp,int flag,int argc,char *argv[]) -{ -int i; -bd_t *bd = gd->bd; - -printf ("U-Boot = %s\n" , bd->bi_r_version); -printf ("CPU = %s\n" , bd->bi_cpu); -printf ("Board = %s\n" , bd->bi_board_name); -printf ("VCO = %lu MHz\n" , bd->bi_vco /1000000 ); -printf ("CCLK = %lu MHz\n" , bd->bi_cclk /1000000 ); -printf ("SCLK = %lu MHz\n" , bd->bi_sclk /1000000 ); - -print_num ("boot_params" , (ulong )bd->bi_boot_params); -print_num ("memstart" , (ulong )bd->bi_memstart); -print_lnum ("memsize" , (u64 )bd->bi_memsize); -print_num ("flashstart" , (ulong )bd->bi_flashstart); -print_num ("flashsize" , (ulong )bd->bi_flashsize); -print_num ("flashoffset" , (ulong )bd->bi_flashoffset); - -puts ("ethaddr =" ); -for (i =0 ; i <6 ; ++i) -printf ("%c%02X" , i ?':' :' ' , bd->bi_enetaddr[i]); -puts ("\nip_addr = " ); -print_IPaddr (bd->bi_ip_addr); -printf ("\nbaudrate = %d bps\n" , bd->bi_baudrate); - -return 0 ; -} - -#else /* ! PPC, which leaves MIPS */ - -int do_bdinfo (cmd_tbl_t *cmdtp,int flag,int argc,char *argv[]) -{ -int i; -bd_t *bd = gd->bd; - -print_num ("boot_params" , (ulong )bd->bi_boot_params); -print_num ("memstart" , (ulong )bd->bi_memstart); -print_lnum ("memsize" , (u64 )bd->bi_memsize); -print_num ("flashstart" , (ulong )bd->bi_flashstart); -print_num ("flashsize" , (ulong )bd->bi_flashsize); -print_num ("flashoffset" , (ulong )bd->bi_flashoffset); - -puts ("ethaddr =" ); -for (i=0 ; i<6 ; ++i) { -printf ("%c%02X" , i ?':' :' ' , bd->bi_enetaddr[i]); - } -puts ("\nip_addr = " ); -print_IPaddr (bd->bi_ip_addr); -printf ("\nbaudrate = %ld bps\n" , bd->bi_baudrate); - -return 0 ; -} -#endif /* MIPS */ - -#else /* ARM */ - -int do_bdinfo (cmd_tbl_t *cmdtp,int flag,int argc,char *argv[]) -{ -int i; -bd_t *bd = gd->bd; - -print_num ("arch_number" , bd->bi_arch_number); -print_num ("env_t" , (ulong )bd->bi_env); -print_num ("boot_params" , (ulong )bd->bi_boot_params); - -for (i=0 ; i<CONFIG_NR_DRAM_BANKS ; ++i) { -print_num ("DRAM bank" , i); -print_num ("-> start" , bd->bi_dram[i].start); -print_num ("-> size" , bd->bi_dram[i].size); - } - -#if defined(CONFIG_CMD_NET ) -puts ("ethaddr =" ); -for (i=0 ; i<6 ; ++i) { -printf ("%c%02X" , i ?':' :' ' , bd->bi_enetaddr[i]); - } -puts ("\n" -"ip_addr = " ); -print_IPaddr (bd->bi_ip_addr); -#endif -printf ("\n" -"baudrate = %d bps\n" , bd->bi_baudrate); - -return 0 ; -} - -#endif /* CONFIG_ARM XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX */ - -static void print_num (const char *name,ulong value) -{ -printf ("%-12s= 0x%08lX\n" , name, value); -} - -#ifndef CONFIG_ARM -static void print_lnum (const char *name,u64 value) -{ -printf ("%-12s= 0x%.8llX\n" , name, value); -} -#endif - -#if defined(CONFIG_PPC ) || defined(CONFIG_M68K ) -static void print_str (const char *name,const char *str) -{ -printf ("%-12s= %6s MHz\n" , name, str); -} -#endif /* CONFIG_PPC */ - - -/* -------------------------------------------------------------------- */ - -U_BOOT_CMD ( - bdinfo,1 ,1 , do_bdinfo, -"bdinfo - print Board Info structure\n" , -NULL -); +/* +* (C) Copyright 2003 +* Wolfgang Denk, DENX Software Engineering, wd at denx.de. +* +* See file CREDITS for list of people who contributed to this +* project. +* +* This program is free software; you can redistribute it and/or +* modify it under the terms of the GNU General Public License as +* published by the Free Software Foundation; either version 2 of +* the License, or (at your option) any later version. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with this program; if not, write to the Free Software +* Foundation, Inc., 59 Temple Place, Suite 330, Boston, +* MA 02111-1307 USA +*/ + +/* +* Boot support +*/ +#include <common.h> +#include <command.h> +#include <bdinfo.h> + +void board_bdinfo (cmd_tbl_t *,int ,int ,char **) __attribute__((weak)); +void 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 +);
include/bdinfo.h new file +55 -0
55 lines not on this page · raw message
lib_arm/Makefile +1 -0
@@ -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
lib_arm/bdinfo.c new file +58 -0
58 lines not on this page · raw message
lib_avr32/Makefile +1 -0
@@ -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
lib_avr32/bdinfo.c new file +50 -0
50 lines not on this page · raw message
lib_blackfin/Makefile +1 -0
@@ -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
lib_blackfin/bdinfo.c new file +57 -0
57 lines not on this page · raw message
lib_i386/Makefile +1 -0
@@ -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
lib_i386/bdinfo.c new file +50 -0
50 lines not on this page · raw message
lib_m68k/Makefile +1 -0
@@ -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
lib_m68k/bdinfo.c new file +83 -0
83 lines not on this page · raw message
lib_microblaze/Makefile +1 -0
@@ -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
lib_microblaze/bdinfo.c new file +54 -0
54 lines not on this page · raw message
lib_mips/Makefile +1 -0
@@ -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
lib_mips/bdinfo.c new file +50 -0
50 lines not on this page · raw message
lib_nios/Makefile +1 -0
@@ -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
lib_nios/bdinfo.c new file +49 -0
49 lines not on this page · raw message
lib_nios2/Makefile +1 -0
@@ -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
lib_nios2/bdinfo.c new file +57 -0
57 lines not on this page · raw message
lib_ppc/Makefile +1 -0
@@ -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
lib_ppc/bdinfo.c new file +119 -0
119 lines not on this page · raw message
lib_sh/Makefile +1 -0
@@ -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)
lib_sh/bdinfo.c new file +50 -0
50 lines not on this page · raw message
lib_sparc/Makefile +9 -4
@@ -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)
lib_sparc/bdinfo.c new file +64 -0
64 lines not on this page · raw message
Signature · 1 line
1.5.6.5
PATCH v4 1/1 cmd_bdinfo: move implementation to arch instead of common
introduce 3 new weak functions board_bdinfo, cpu_bdinfo and soc_bdinfo to allow board, cpu and soc to print more information
---
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
common/cmd_bdinfo.c +68 -447
@@ -1,447 +1,68 @@ -/* -* (C) Copyright 2003 -* Wolfgang Denk, DENX Software Engineering, wd at denx.de. -* -* See file CREDITS for list of people who contributed to this -* project. -* -* This program is free software; you can redistribute it and/or -* modify it under the terms of the GNU General Public License as -* published by the Free Software Foundation; either version 2 of -* the License, or (at your option) any later version. -* -* This program is distributed in the hope that it will be useful, -* but WITHOUT ANY WARRANTY; without even the implied warranty of -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -* GNU General Public License for more details. -* -* You should have received a copy of the GNU General Public License -* along with this program; if not, write to the Free Software -* Foundation, Inc., 59 Temple Place, Suite 330, Boston, -* MA 02111-1307 USA -*/ - -/* -* Boot support -*/ -#include <common.h> -#include <command.h> -#include <net.h> /* for print_IPaddr */ - -DECLARE_GLOBAL_DATA_PTR ; - -static void print_num (const char *,ulong ); - -#ifndef CONFIG_ARM /* PowerPC and other */ -static void print_lnum (const char *,u64 ); - -#ifdef CONFIG_PPC -static void print_str (const char *,const char *); - -int do_bdinfo (cmd_tbl_t *cmdtp,int flag,int argc,char *argv[]) -{ -int i; -bd_t *bd = gd->bd; -char buf[32 ]; - -#ifdef DEBUG -print_num ("bd address" , (ulong )bd ); -#endif -print_num ("memstart" , bd->bi_memstart ); -print_lnum ("memsize" , bd->bi_memsize ); -print_num ("flashstart" , bd->bi_flashstart ); -print_num ("flashsize" , bd->bi_flashsize ); -print_num ("flashoffset" , bd->bi_flashoffset ); -print_num ("sramstart" , bd->bi_sramstart ); -print_num ("sramsize" , bd->bi_sramsize ); -#if defined(CONFIG_5xx) || defined(CONFIG_8xx) || \ - defined(CONFIG_8260 ) || defined(CONFIG_E500 ) -print_num ("immr_base" , bd->bi_immr_base ); -#endif -print_num ("bootflags" , bd->bi_bootflags ); -#if defined(CONFIG_405GP ) || defined(CONFIG_405CR ) || \ - defined(CONFIG_405EP ) || defined(CONFIG_XILINX_405 ) || \ - defined(CONFIG_440EP ) || defined(CONFIG_440GR ) || \ - defined(CONFIG_440EPX ) || defined(CONFIG_440GRX ) || \ - defined(CONFIG_440SP ) || defined(CONFIG_440SPE ) -print_str ("procfreq" ,strmhz (buf, bd->bi_procfreq)); -print_str ("plb_busfreq" ,strmhz (buf, bd->bi_plb_busfreq)); -#if defined(CONFIG_405GP ) || defined(CONFIG_405EP ) || defined(CONFIG_XILINX_405 ) || \ - defined(CONFIG_440EP ) || defined(CONFIG_440GR ) || defined(CONFIG_440SPE ) || \ - defined(CONFIG_440EPX ) || defined(CONFIG_440GRX ) -print_str ("pci_busfreq" ,strmhz (buf, bd->bi_pci_busfreq)); -#endif -#else /* ! CONFIG_405GP, CONFIG_405CR, CONFIG_405EP, CONFIG_XILINX_405, CONFIG_440EP CONFIG_440GR */ -#if defined(CONFIG_CPM2 ) -print_str ("vco" ,strmhz (buf, bd->bi_vco)); -print_str ("sccfreq" ,strmhz (buf, bd->bi_sccfreq)); -print_str ("brgfreq" ,strmhz (buf, bd->bi_brgfreq)); -#endif -print_str ("intfreq" ,strmhz (buf, bd->bi_intfreq)); -#if defined(CONFIG_CPM2 ) -print_str ("cpmfreq" ,strmhz (buf, bd->bi_cpmfreq)); -#endif -print_str ("busfreq" ,strmhz (buf, bd->bi_busfreq)); -#endif /* CONFIG_405GP, CONFIG_405CR, CONFIG_405EP, CONFIG_XILINX_405, CONFIG_440EP CONFIG_440GR */ -#if defined(CONFIG_MPC8220 ) -print_str ("inpfreq" ,strmhz (buf, bd->bi_inpfreq)); -print_str ("flbfreq" ,strmhz (buf, bd->bi_flbfreq)); -print_str ("pcifreq" ,strmhz (buf, bd->bi_pcifreq)); -print_str ("vcofreq" ,strmhz (buf, bd->bi_vcofreq)); -print_str ("pevfreq" ,strmhz (buf, bd->bi_pevfreq)); -#endif - -puts ("ethaddr =" ); -for (i=0 ; i<6 ; ++i) { -printf ("%c%02X" , i ?':' :' ' , bd->bi_enetaddr[i]); - } - -#if defined(CONFIG_HAS_ETH1 ) -puts ("\neth1addr =" ); -for (i=0 ; i<6 ; ++i) { -printf ("%c%02X" , i ?':' :' ' , bd->bi_enet1addr[i]); - } -#endif - -#if defined(CONFIG_HAS_ETH2 ) -puts ("\neth2addr =" ); -for (i=0 ; i<6 ; ++i) { -printf ("%c%02X" , i ?':' :' ' , bd->bi_enet2addr[i]); - } -#endif - -#if defined(CONFIG_HAS_ETH3 ) -puts ("\neth3addr =" ); -for (i=0 ; i<6 ; ++i) { -printf ("%c%02X" , i ?':' :' ' , bd->bi_enet3addr[i]); - } -#endif - -#if defined(CONFIG_HAS_ETH4 ) -puts ("\neth4addr =" ); -for (i=0 ; i<6 ; ++i) { -printf ("%c%02X" , i ?':' :' ' , bd->bi_enet4addr[i]); - } -#endif - -#if defined(CONFIG_HAS_ETH5 ) -puts ("\neth5addr =" ); -for (i=0 ; i<6 ; ++i) { -printf ("%c%02X" , i ?':' :' ' , bd->bi_enet5addr[i]); - } -#endif - -#ifdef CONFIG_HERMES -print_str ("ethspeed" ,strmhz (buf, bd->bi_ethspeed)); -#endif -puts ("\nIP addr = " );print_IPaddr (bd->bi_ip_addr); -printf ("\nbaudrate = %6ld bps\n" , bd->bi_baudrate ); -return 0 ; -} - -#elif defined(CONFIG_NIOS )/* NIOS*/ - -int do_bdinfo (cmd_tbl_t *cmdtp,int flag,int argc,char *argv[]) -{ -int i; -bd_t *bd = gd->bd; - -print_num ("memstart" , (ulong )bd->bi_memstart); -print_lnum ("memsize" , (u64 )bd->bi_memsize); -print_num ("flashstart" , (ulong )bd->bi_flashstart); -print_num ("flashsize" , (ulong )bd->bi_flashsize); -print_num ("flashoffset" , (ulong )bd->bi_flashoffset); - -puts ("ethaddr =" ); -for (i=0 ; i<6 ; ++i) { -printf ("%c%02X" , i ?':' :' ' , bd->bi_enetaddr[i]); - } -puts ("\nip_addr = " ); -print_IPaddr (bd->bi_ip_addr); -printf ("\nbaudrate = %ld bps\n" , bd->bi_baudrate); - -return 0 ; -} - -#elif defined(CONFIG_NIOS2 )/* Nios-II */ - -int do_bdinfo (cmd_tbl_t *cmdtp,int flag,int argc,char *argv[]) -{ -#if defined(CONFIG_CMD_NET ) -int i; -#endif -bd_t *bd = gd->bd; - -print_num ("mem start" , (ulong )bd->bi_memstart); -print_lnum ("mem size" , (u64 )bd->bi_memsize); -print_num ("flash start" , (ulong )bd->bi_flashstart); -print_num ("flash size" , (ulong )bd->bi_flashsize); -print_num ("flash offset" , (ulong )bd->bi_flashoffset); - -#if defined(CONFIG_SYS_SRAM_BASE ) -print_num ("sram start" , (ulong )bd->bi_sramstart); -print_num ("sram size" , (ulong )bd->bi_sramsize); -#endif - -#if defined(CONFIG_CMD_NET ) -puts ("ethaddr =" ); -for (i=0 ; i<6 ; ++i) { -printf ("%c%02X" , i ?':' :' ' , bd->bi_enetaddr[i]); - } -puts ("\nip_addr = " ); -print_IPaddr (bd->bi_ip_addr); -#endif - -printf ("\nbaudrate = %ld bps\n" , bd->bi_baudrate); - -return 0 ; -} -#elif defined(CONFIG_MICROBLAZE )/* ! PPC, which leaves Microblaze */ - -int do_bdinfo (cmd_tbl_t *cmdtp,int flag,int argc,char *argv[]) -{ -int i; -bd_t *bd = gd->bd; -print_num ("mem start " , (ulong )bd->bi_memstart); -print_lnum ("mem size " , (u64 )bd->bi_memsize); -print_num ("flash start " , (ulong )bd->bi_flashstart); -print_num ("flash size " , (ulong )bd->bi_flashsize); -print_num ("flash offset " , (ulong )bd->bi_flashoffset); -#if defined(CONFIG_SYS_SRAM_BASE ) -print_num ("sram start " , (ulong )bd->bi_sramstart); -print_num ("sram size " , (ulong )bd->bi_sramsize); -#endif -#if defined(CONFIG_CMD_NET ) -puts ("ethaddr =" ); -for (i=0 ; i<6 ; ++i) { -printf ("%c%02X" , i ?':' :' ' , bd->bi_enetaddr[i]); - } -puts ("\nip_addr = " ); -print_IPaddr (bd->bi_ip_addr); -#endif -printf ("\nbaudrate = %ld bps\n" , (ulong )bd->bi_baudrate); -return 0 ; -} - -#elif defined(CONFIG_SPARC )/* SPARC */ -int do_bdinfo (cmd_tbl_t * cmdtp,int flag,int argc,char *argv[]) -{ -bd_t *bd = gd->bd; -#if defined(CONFIG_CMD_NET ) -int i; -#endif - -#ifdef DEBUG -print_num ("bd address " , (ulong ) bd); -#endif -print_num ("memstart " , bd->bi_memstart); -print_lnum ("memsize " , bd->bi_memsize); -print_num ("flashstart " , bd->bi_flashstart); -print_num ("CONFIG_SYS_MONITOR_BASE " ,CONFIG_SYS_MONITOR_BASE ); -print_num ("CONFIG_ENV_ADDR " ,CONFIG_ENV_ADDR ); -printf ("CONFIG_SYS_RELOC_MONITOR_BASE = 0x%lx (%d)\n" ,CONFIG_SYS_RELOC_MONITOR_BASE , -CONFIG_SYS_MONITOR_LEN ); -printf ("CONFIG_SYS_MALLOC_BASE = 0x%lx (%d)\n" ,CONFIG_SYS_MALLOC_BASE , -CONFIG_SYS_MALLOC_LEN ); -printf ("CONFIG_SYS_INIT_SP_OFFSET = 0x%lx (%d)\n" ,CONFIG_SYS_INIT_SP_OFFSET , -CONFIG_SYS_STACK_SIZE ); -printf ("CONFIG_SYS_PROM_OFFSET = 0x%lx (%d)\n" ,CONFIG_SYS_PROM_OFFSET , -CONFIG_SYS_PROM_SIZE ); -printf ("CONFIG_SYS_GBL_DATA_OFFSET = 0x%lx (%d)\n" ,CONFIG_SYS_GBL_DATA_OFFSET , -CONFIG_SYS_GBL_DATA_SIZE ); - -#if defined(CONFIG_CMD_NET ) -puts ("ethaddr =" ); -for (i =0 ; i <6 ; ++i) { -printf ("%c%02X" , i ?':' :' ' , bd->bi_enetaddr[i]); - } -puts ("\nIP addr = " ); -print_IPaddr (bd->bi_ip_addr); -#endif -printf ("\nbaudrate = %6ld bps\n" , bd->bi_baudrate); -return 0 ; -} - -#elif defined(CONFIG_M68K )/* M68K */ -static void print_str (const char *,const char *); - -int do_bdinfo (cmd_tbl_t *cmdtp,int flag,int argc,char *argv[]) -{ -int i; -bd_t *bd = gd->bd; -char buf[32 ]; - -print_num ("memstart" , (ulong )bd->bi_memstart); -print_lnum ("memsize" , (u64 )bd->bi_memsize); -print_num ("flashstart" , (ulong )bd->bi_flashstart); -print_num ("flashsize" , (ulong )bd->bi_flashsize); -print_num ("flashoffset" , (ulong )bd->bi_flashoffset); -#if defined(CONFIG_SYS_INIT_RAM_ADDR ) -print_num ("sramstart" , (ulong )bd->bi_sramstart); -print_num ("sramsize" , (ulong )bd->bi_sramsize); -#endif -#if defined(CONFIG_SYS_MBAR ) -print_num ("mbar" , bd->bi_mbar_base); -#endif -print_str ("busfreq" ,strmhz (buf, bd->bi_busfreq)); -#ifdef CONFIG_PCI -print_str ("pcifreq" ,strmhz (buf, bd->bi_pcifreq)); -#endif -#ifdef CONFIG_EXTRA_CLOCK -print_str ("flbfreq" ,strmhz (buf, bd->bi_flbfreq)); -print_str ("inpfreq" ,strmhz (buf, bd->bi_inpfreq)); -print_str ("vcofreq" ,strmhz (buf, bd->bi_vcofreq)); -#endif -#if defined(CONFIG_CMD_NET ) -puts ("ethaddr =" ); -for (i=0 ; i<6 ; ++i) { -printf ("%c%02X" , i ?':' :' ' , bd->bi_enetaddr[i]); - } - -#if defined(CONFIG_HAS_ETH1 ) -puts ("\neth1addr =" ); -for (i=0 ; i<6 ; ++i) { -printf ("%c%02X" , i ?':' :' ' , bd->bi_enet1addr[i]); - } -#endif - -#if defined(CONFIG_HAS_ETH2 ) -puts ("\neth2addr =" ); -for (i=0 ; i<6 ; ++i) { -printf ("%c%02X" , i ?':' :' ' , bd->bi_enet2addr[i]); - } -#endif - -#if defined(CONFIG_HAS_ETH3 ) -puts ("\neth3addr =" ); -for (i=0 ; i<6 ; ++i) { -printf ("%c%02X" , i ?':' :' ' , bd->bi_enet3addr[i]); - } -#endif - -puts ("\nip_addr = " ); -print_IPaddr (bd->bi_ip_addr); -#endif -printf ("\nbaudrate = %d bps\n" , bd->bi_baudrate); - -return 0 ; -} - -#elif defined(CONFIG_BLACKFIN ) - -int do_bdinfo (cmd_tbl_t *cmdtp,int flag,int argc,char *argv[]) -{ -int i; -bd_t *bd = gd->bd; - -printf ("U-Boot = %s\n" , bd->bi_r_version); -printf ("CPU = %s\n" , bd->bi_cpu); -printf ("Board = %s\n" , bd->bi_board_name); -printf ("VCO = %lu MHz\n" , bd->bi_vco /1000000 ); -printf ("CCLK = %lu MHz\n" , bd->bi_cclk /1000000 ); -printf ("SCLK = %lu MHz\n" , bd->bi_sclk /1000000 ); - -print_num ("boot_params" , (ulong )bd->bi_boot_params); -print_num ("memstart" , (ulong )bd->bi_memstart); -print_lnum ("memsize" , (u64 )bd->bi_memsize); -print_num ("flashstart" , (ulong )bd->bi_flashstart); -print_num ("flashsize" , (ulong )bd->bi_flashsize); -print_num ("flashoffset" , (ulong )bd->bi_flashoffset); - -puts ("ethaddr =" ); -for (i =0 ; i <6 ; ++i) -printf ("%c%02X" , i ?':' :' ' , bd->bi_enetaddr[i]); -puts ("\nip_addr = " ); -print_IPaddr (bd->bi_ip_addr); -printf ("\nbaudrate = %d bps\n" , bd->bi_baudrate); - -return 0 ; -} - -#else /* ! PPC, which leaves MIPS */ - -int do_bdinfo (cmd_tbl_t *cmdtp,int flag,int argc,char *argv[]) -{ -int i; -bd_t *bd = gd->bd; - -print_num ("boot_params" , (ulong )bd->bi_boot_params); -print_num ("memstart" , (ulong )bd->bi_memstart); -print_lnum ("memsize" , (u64 )bd->bi_memsize); -print_num ("flashstart" , (ulong )bd->bi_flashstart); -print_num ("flashsize" , (ulong )bd->bi_flashsize); -print_num ("flashoffset" , (ulong )bd->bi_flashoffset); - -puts ("ethaddr =" ); -for (i=0 ; i<6 ; ++i) { -printf ("%c%02X" , i ?':' :' ' , bd->bi_enetaddr[i]); - } -puts ("\nip_addr = " ); -print_IPaddr (bd->bi_ip_addr); -printf ("\nbaudrate = %ld bps\n" , bd->bi_baudrate); - -return 0 ; -} -#endif /* MIPS */ - -#else /* ARM */ - -int do_bdinfo (cmd_tbl_t *cmdtp,int flag,int argc,char *argv[]) -{ -int i; -bd_t *bd = gd->bd; - -print_num ("arch_number" , bd->bi_arch_number); -print_num ("env_t" , (ulong )bd->bi_env); -print_num ("boot_params" , (ulong )bd->bi_boot_params); - -for (i=0 ; i<CONFIG_NR_DRAM_BANKS ; ++i) { -print_num ("DRAM bank" , i); -print_num ("-> start" , bd->bi_dram[i].start); -print_num ("-> size" , bd->bi_dram[i].size); - } - -#if defined(CONFIG_CMD_NET ) -puts ("ethaddr =" ); -for (i=0 ; i<6 ; ++i) { -printf ("%c%02X" , i ?':' :' ' , bd->bi_enetaddr[i]); - } -puts ("\n" -"ip_addr = " ); -print_IPaddr (bd->bi_ip_addr); -#endif -printf ("\n" -"baudrate = %d bps\n" , bd->bi_baudrate); - -return 0 ; -} - -#endif /* CONFIG_ARM XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX */ - -static void print_num (const char *name,ulong value) -{ -printf ("%-12s= 0x%08lX\n" , name, value); -} - -#ifndef CONFIG_ARM -static void print_lnum (const char *name,u64 value) -{ -printf ("%-12s= 0x%.8llX\n" , name, value); -} -#endif - -#if defined(CONFIG_PPC ) || defined(CONFIG_M68K ) -static void print_str (const char *name,const char *str) -{ -printf ("%-12s= %6s MHz\n" , name, str); -} -#endif /* CONFIG_PPC */ - - -/* -------------------------------------------------------------------- */ - -U_BOOT_CMD ( - bdinfo,1 ,1 , do_bdinfo, -"bdinfo - print Board Info structure\n" , -NULL -); +/* +* (C) Copyright 2003 +* Wolfgang Denk, DENX Software Engineering, wd at denx.de. +* +* See file CREDITS for list of people who contributed to this +* project. +* +* This program is free software; you can redistribute it and/or +* modify it under the terms of the GNU General Public License as +* published by the Free Software Foundation; either version 2 of +* the License, or (at your option) any later version. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with this program; if not, write to the Free Software +* Foundation, Inc., 59 Temple Place, Suite 330, Boston, +* MA 02111-1307 USA +*/ + +/* +* Boot support +*/ +#include <common.h> +#include <command.h> +#include <bdinfo.h> + +void board_bdinfo (cmd_tbl_t *,int ,int ,char **) __attribute__((weak)); +void 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 +);
include/bdinfo.h new file +55 -0
55 lines not on this page · raw message
lib_arm/Makefile +1 -0
@@ -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
lib_arm/bdinfo.c new file +58 -0
58 lines not on this page · raw message
lib_avr32/Makefile +1 -0
@@ -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
lib_avr32/bdinfo.c new file +50 -0
50 lines not on this page · raw message
lib_blackfin/Makefile +1 -0
@@ -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
lib_blackfin/bdinfo.c new file +57 -0
57 lines not on this page · raw message
lib_i386/Makefile +1 -0
@@ -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
lib_i386/bdinfo.c new file +50 -0
50 lines not on this page · raw message
lib_m68k/Makefile +1 -0
@@ -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
lib_m68k/bdinfo.c new file +83 -0
83 lines not on this page · raw message
lib_microblaze/Makefile +1 -0
@@ -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
lib_microblaze/bdinfo.c new file +54 -0
54 lines not on this page · raw message
lib_mips/Makefile +1 -0
@@ -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
lib_mips/bdinfo.c new file +50 -0
50 lines not on this page · raw message
lib_nios/Makefile +1 -0
@@ -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
lib_nios/bdinfo.c new file +49 -0
49 lines not on this page · raw message
lib_nios2/Makefile +1 -0
@@ -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
lib_nios2/bdinfo.c new file +57 -0
57 lines not on this page · raw message
lib_ppc/Makefile +1 -0
@@ -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
lib_ppc/bdinfo.c new file +119 -0
119 lines not on this page · raw message
lib_sh/Makefile +1 -0
@@ -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)
lib_sh/bdinfo.c new file +50 -0
50 lines not on this page · raw message
lib_sparc/Makefile +9 -4
@@ -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)
lib_sparc/bdinfo.c new file +64 -0
64 lines not on this page · raw message
Signature · 1 line
1.5.6.5
PATCH v4 1/1 cmd_bdinfo: move implementation to arch instead of common
Quoted 10 lines · Jean-Christophe PLAGNIOL-VILLARD
introduce 3 new weak functions
board_bdinfo,cpu_bdinfoandsoc_bdinfoto allow board, cpu and soc to print more informationSigned-off-by Jean-Christophe PLAGNIOL-VILLARD <[email protected]>---
diff with V3
renamecpu_bdinfotosoc_bdinfofor socBest 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.13&content-type=text/x-cvsweb-markup
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);
}PATCH 1/1 cmd_bdinfo: move implementation to arch instead of common
In reply to Jean-Christophe PLAGNIOL-VILLARDQuoted 4 lines · Jean-Christophe PLAGNIOL-VILLARD
Quoted 2 lines
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
PATCH 1/1 cmd_bdinfo: move implementation to arch instead of common
In reply to Jerry Van BarenQuoted 45 lines · Jerry Van Baren
Quoted 25 lines · Jean-Christophe PLAGNIOL-VILLARD
Signed-off-by Jean-Christophe PLAGNIOL-VILLARD <[email protected]>---
apply after my precedent fix forcmd_bdinfoBest 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 +++++++Quoted 8 lines
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?
Quoted 8 lines
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
PATCH 1/1 cmd_bdinfo: move implementation to arch instead of common
Quoted 20 lines
Quoted 11 lines
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?
Quoted 8 lines
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.
Quoted 4 lines
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.
PATCH 1/1 cmd_bdinfo: move implementation to arch instead of common
Quoted 17 lines · Jean-Christophe PLAGNIOL-VILLARD
Quoted 17 lines
Quoted 16 lines
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.
Quoted 7 lines
Quoted 4 lines
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
PATCH 1/1 cmd_bdinfo: move implementation to arch instead of common
Quoted 23 lines · Mike Frysinger
Quoted 22 lines · Jean-Christophe PLAGNIOL-VILLARD
Quoted 21 lines
Quoted 8 lines
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?
Quoted 8 lines
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*.
Quoted 4 lines
Quoted 2 lines
It's the case
The idea is to allow soc and board to allow them to print more infoso 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.
PATCH 1/1 cmd_bdinfo: move implementation to arch instead of common
Quoted 24 lines · Jean-Christophe PLAGNIOL-VILLARD
Quoted 23 lines · Mike Frysinger
Quoted 22 lines · Jean-Christophe PLAGNIOL-VILLARD
Quoted 21 lines
Quoted 8 lines
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?
Quoted 8 lines
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*.
Quoted 6 lines
Quoted 4 lines
Quoted 2 lines
It's the case
The idea is to allow soc and board to allow them to print more infoso 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.
Quoted 1 line
to allow board AND soc to print more info
which is exactly what i said
-mike