Skip to contentSkip to conversation

cmd_bdinfo: move implementation to arch instead of common

PATCH New Jean-Christophe PLAGNIOL-VILLARD 5 participants 17 messages Nov 11, 2008 – Dec 4, 2008

lore
Share & tools
lore
#0 lore raw

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
index 6484b23..7412abb 100644
@@ -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
index df64bf0..655ecbb 100644
@@ -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
index c8795b2..1f36f58 100644
@@ -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
index 37b8051..856d450 100644
@@ -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
index 3f69770..4afc651 100644
@@ -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
index 4fbcd08..0a7a777 100644
@@ -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
index 6db35ed..f11b601 100644
@@ -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
index 9b0f296..b9c5088 100644
@@ -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
index 7967e58..5dc75c0 100644
@@ -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
index f66e989..b665eb7 100644
@@ -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
index b69bc38..fd9a60e 100644
@@ -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
index 60ea0c9..b53bf29 100644
@@ -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
index 4034381..a405c8d 100644
@@ -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
index 040ca10..67a68da 100644
@@ -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
#1 lore raw

PATCH 1/1 cmd_bdinfo: move implementation to arch instead of common

Quoted 25 lines · Jean-Christophe PLAGNIOL-VILLARD

---
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 +++++++
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

#2 lore raw

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

---
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 +++++++
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.

#3 lore raw

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
dissimilarity index 90%
index 087eda7..63cb6dc 100644
@@ -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
index c8795b2..1f36f58 100644
@@ -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
index 37b8051..856d450 100644
@@ -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
index 3f69770..4afc651 100644
@@ -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
index 4fbcd08..0a7a777 100644
@@ -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
index 6db35ed..f11b601 100644
@@ -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
index 9b0f296..b9c5088 100644
@@ -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
index 7967e58..5dc75c0 100644
@@ -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
index f66e989..b665eb7 100644
@@ -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
index b69bc38..fd9a60e 100644
@@ -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
index 60ea0c9..b53bf29 100644
@@ -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
index 4034381..a405c8d 100644
@@ -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
index 040ca10..67a68da 100644
@@ -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
#4 lore raw

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_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().

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

#5 lore raw

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_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

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.

#6 lore raw

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_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

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

#7 lore raw

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_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

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.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.

#8 lore raw

PATCH v3 1/1 cmd_bdinfo: move implementation to arch instead of common

In reply to Jean-Christophe PLAGNIOL-VILLARD

introduce 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
dissimilarity index 90%
index 087eda7..01dcff8 100644
@@ -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
index c8795b2..1f36f58 100644
@@ -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
index 37b8051..856d450 100644
@@ -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
index 3f69770..4afc651 100644
@@ -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
index 4fbcd08..0a7a777 100644
@@ -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
index 6db35ed..f11b601 100644
@@ -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
index 9b0f296..b9c5088 100644
@@ -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
index 7967e58..5dc75c0 100644
@@ -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
index f66e989..b665eb7 100644
@@ -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
index b69bc38..fd9a60e 100644
@@ -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
index 60ea0c9..b53bf29 100644
@@ -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
index f7c6479..54df402 100644
@@ -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
index 040ca10..67a68da 100644
@@ -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
#9 lore raw

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
dissimilarity index 90%
index 087eda7..46085da 100644
@@ -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
index c8795b2..1f36f58 100644
@@ -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
index 37b8051..856d450 100644
@@ -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
index 3f69770..4afc651 100644
@@ -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
index 4fbcd08..0a7a777 100644
@@ -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
index 6db35ed..f11b601 100644
@@ -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
index 9b0f296..b9c5088 100644
@@ -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
index 7967e58..5dc75c0 100644
@@ -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
index f66e989..b665eb7 100644
@@ -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
index b69bc38..fd9a60e 100644
@@ -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
index 60ea0c9..b53bf29 100644
@@ -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
index f7c6479..54df402 100644
@@ -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
index 040ca10..67a68da 100644
@@ -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
#10 lore raw

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_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.

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);
}
#11 lore raw

PATCH 1/1 cmd_bdinfo: move implementation to arch instead of common

In reply to Jean-Christophe PLAGNIOL-VILLARD
Quoted 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

#12 lore raw

PATCH 1/1 cmd_bdinfo: move implementation to arch instead of common

In reply to Jerry Van Baren
Quoted 45 lines · Jerry Van Baren
Quoted 25 lines · Jean-Christophe PLAGNIOL-VILLARD

---
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 +++++++
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

#13 lore raw

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.

#14 lore raw

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

#15 lore raw

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 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.

#16 lore raw

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 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.

Quoted 1 line

to allow board AND soc to print more info

which is exactly what i said
-mike