diff mbox

[U-Boot,v7,07/31] Define CONFIG_SYS_LEGACY_BOARD everywhere

Message ID 1362715633-20556-8-git-send-email-sjg@chromium.org
State Superseded, archived
Delegated to: Tom Rini
Headers show

Commit Message

Simon Glass March 8, 2013, 4:06 a.m. UTC
We are introducing a new unified board setup and we want this to
be the default. So we need to opt all architectures out first.

Signed-off-by: Simon Glass <sjg@chromium.org>
---
Changes in v7:
- Add description of CONFIG_SYS_LEGACY_BOARD to README

Changes in v6: None
Changes in v5: None
Changes in v4: None
Changes in v3: None
Changes in v2: None

 README                    | 21 +++++++++++++++++++++
 arch/arm/config.mk        |  3 +++
 arch/avr32/config.mk      |  3 +++
 arch/blackfin/config.mk   |  3 +++
 arch/m68k/config.mk       |  3 +++
 arch/microblaze/config.mk |  3 +++
 arch/mips/config.mk       |  3 +++
 arch/nds32/config.mk      |  3 +++
 arch/nios2/config.mk      |  3 +++
 arch/powerpc/config.mk    |  3 +++
 arch/sandbox/config.mk    |  3 +++
 arch/sh/config.mk         |  3 +++
 arch/sparc/config.mk      |  3 +++
 arch/x86/config.mk        |  3 +++
 config.mk                 |  8 ++++++++
 15 files changed, 68 insertions(+)

Comments

Wolfgang Denk March 8, 2013, 8:31 a.m. UTC | #1
Dear Simon Glass,

In message <1362715633-20556-8-git-send-email-sjg@chromium.org> you wrote:
> We are introducing a new unified board setup and we want this to
> be the default. So we need to opt all architectures out first.
...

> +- CONFIG_SYS_LEGACY_BOARD
> +	This option should not be defined by board config files.
> +	This is an internal CONFIG defined by architectures which do not
> +	support CONFIG_SYS_GENERIC_BOARD. It is used as a check that boards
> +	don't accidentally define CONFIG_SYS_GENERIC_BOARD when their
> +	architecture cannot support it, and U-Boot would then either not
> +	build or not work. When an architecture supports generic board,
> +	then CONFIG_SYS_LEGACY_BOARD can be removed from the architecture's
> +	config.mk file so that generic board becomes available.

Hm... I understand that you selected the ...LEGACY_BOARD name to make
it easy to see the relation to ...GENERIC_BOARD?  But then, the name
is misleading - if my understanding is correct, then ...LEGACY_BOARD
is NOT a _board_ specific config option, but an _architecture_ speci-
fic one.

Actually this is then not a real CONFIG_SYS_ thing at all.

Should we rather use something like __HAVE_ARCH_GENERIC_BOARD ??
This would also make clear this is an internal macro only.

Best regards,

Wolfgang Denk
Simon Glass March 8, 2013, 11:33 p.m. UTC | #2
Hi Wolfgang,

On Fri, Mar 8, 2013 at 12:31 AM, Wolfgang Denk <wd@denx.de> wrote:

> Dear Simon Glass,
>
> In message <1362715633-20556-8-git-send-email-sjg@chromium.org> you wrote:
> > We are introducing a new unified board setup and we want this to
> > be the default. So we need to opt all architectures out first.
> ...
>
> > +- CONFIG_SYS_LEGACY_BOARD
> > +     This option should not be defined by board config files.
> > +     This is an internal CONFIG defined by architectures which do not
> > +     support CONFIG_SYS_GENERIC_BOARD. It is used as a check that boards
> > +     don't accidentally define CONFIG_SYS_GENERIC_BOARD when their
> > +     architecture cannot support it, and U-Boot would then either not
> > +     build or not work. When an architecture supports generic board,
> > +     then CONFIG_SYS_LEGACY_BOARD can be removed from the architecture's
> > +     config.mk file so that generic board becomes available.
>
> Hm... I understand that you selected the ...LEGACY_BOARD name to make
> it easy to see the relation to ...GENERIC_BOARD?  But then, the name
> is misleading - if my understanding is correct, then ...LEGACY_BOARD
> is NOT a _board_ specific config option, but an _architecture_ speci-
> fic one.
>

That's right.


>
> Actually this is then not a real CONFIG_SYS_ thing at all.
>
> Should we rather use something like __HAVE_ARCH_GENERIC_BOARD ??
> This would also make clear this is an internal macro only.
>

Yes, I will do that. It switches the meaning to positive, but there is no
sense in it being the 'default' right now anyway. Since it doesn't start
with CONFIG_ I will have to define it in the Makefile, since it won't
appear in autoconf.mk, but that is fine too, since only Makefiles will
reference it.

Regards,
Simon
diff mbox

Patch

diff --git a/README b/README
index 42544ce..47aa719 100644
--- a/README
+++ b/README
@@ -3211,6 +3211,27 @@  Configuration Settings:
 	If defined, don't allow the -f switch to env set override variable
 	access flags.
 
+- CONFIG_SYS_GENERIC_BOARD
+	This selects the architecture-generic board system instead of the
+	architecture-specific board files. It is intended to move boards
+	to this new framework over time. Defining this will disable the
+	arch/foo/lib/board.c file and use common/board_f.c and
+	common/board_r.c instead. To use this option your architecture
+	must support it (i.e. must NOT define CONFIG_SYS_LEGACY_BOARD in
+	its config.mk file). If you find problems enabling this option on
+	your board please report the problem and send patches!
+
+- CONFIG_SYS_LEGACY_BOARD
+	This option should not be defined by board config files.
+	This is an internal CONFIG defined by architectures which do not
+	support CONFIG_SYS_GENERIC_BOARD. It is used as a check that boards
+	don't accidentally define CONFIG_SYS_GENERIC_BOARD when their
+	architecture cannot support it, and U-Boot would then either not
+	build or not work. When an architecture supports generic board,
+	then CONFIG_SYS_LEGACY_BOARD can be removed from the architecture's
+	config.mk file so that generic board becomes available.
+
+
 The following definitions that deal with the placement and management
 of environment data (variable area); in general, we support the
 following configurations:
diff --git a/arch/arm/config.mk b/arch/arm/config.mk
index 24b9d7c..c159675 100644
--- a/arch/arm/config.mk
+++ b/arch/arm/config.mk
@@ -49,6 +49,9 @@  ifneq ($(CONFIG_SPL_BUILD),y)
 ALL-$(CONFIG_SYS_THUMB_BUILD)	+= checkthumb
 endif
 
+# Move to unified board system later
+CONFIG_SYS_LEGACY_BOARD := y
+
 # Try if EABI is supported, else fall back to old API,
 # i. e. for example:
 # - with ELDK 4.2 (EABI supported), use:
diff --git a/arch/avr32/config.mk b/arch/avr32/config.mk
index a751a3d..bd5703e 100644
--- a/arch/avr32/config.mk
+++ b/arch/avr32/config.mk
@@ -29,3 +29,6 @@  PLATFORM_RELFLAGS	+= -ffixed-r5 -fPIC -mno-init-got -mrelax
 PLATFORM_RELFLAGS	+= -ffunction-sections -fdata-sections
 
 LDFLAGS_u-boot		= --gc-sections --relax
+
+# Move to unified board system later
+CONFIG_SYS_LEGACY_BOARD := y
diff --git a/arch/blackfin/config.mk b/arch/blackfin/config.mk
index 3595aa2..972afb1 100644
--- a/arch/blackfin/config.mk
+++ b/arch/blackfin/config.mk
@@ -37,6 +37,9 @@  CONFIG_BFIN_BOOT_MODE := $(strip $(subst ",,$(CONFIG_BFIN_BOOT_MODE)))
 PLATFORM_RELFLAGS += -ffixed-P3 -fomit-frame-pointer -mno-fdpic
 PLATFORM_CPPFLAGS += -DCONFIG_BLACKFIN
 
+# Move to unified board system later
+CONFIG_SYS_LEGACY_BOARD := y
+
 LDFLAGS_FINAL += --gc-sections
 LDFLAGS += -m elf32bfin
 PLATFORM_RELFLAGS += -ffunction-sections -fdata-sections
diff --git a/arch/m68k/config.mk b/arch/m68k/config.mk
index 11ba334..11ad9a5 100644
--- a/arch/m68k/config.mk
+++ b/arch/m68k/config.mk
@@ -29,3 +29,6 @@  PLATFORM_CPPFLAGS += -DCONFIG_M68K -D__M68K__
 PLATFORM_LDFLAGS  += -n
 PLATFORM_RELFLAGS              += -ffunction-sections -fdata-sections
 LDFLAGS_FINAL                  += --gc-sections
+
+# Move to unified board system later
+CONFIG_SYS_LEGACY_BOARD := y
diff --git a/arch/microblaze/config.mk b/arch/microblaze/config.mk
index b4935f0..300e3c5 100644
--- a/arch/microblaze/config.mk
+++ b/arch/microblaze/config.mk
@@ -33,3 +33,6 @@  PLATFORM_CPPFLAGS += -ffixed-r31 -D__microblaze__
 LDSCRIPT ?= $(SRCTREE)/$(CPUDIR)/u-boot.lds
 
 CONFIG_ARCH_DEVICE_TREE := microblaze
+
+# Move to unified board system later
+CONFIG_SYS_LEGACY_BOARD := y
diff --git a/arch/mips/config.mk b/arch/mips/config.mk
index aaa94e8..7a0275a 100644
--- a/arch/mips/config.mk
+++ b/arch/mips/config.mk
@@ -41,6 +41,9 @@  ENDIANNESS ?= -EB
 
 PLATFORM_CPPFLAGS += -DCONFIG_MIPS -D__MIPS__
 
+# Move to unified board system later
+CONFIG_SYS_LEGACY_BOARD := y
+
 #
 # From Linux arch/mips/Makefile
 #
diff --git a/arch/nds32/config.mk b/arch/nds32/config.mk
index c589829..f989053 100644
--- a/arch/nds32/config.mk
+++ b/arch/nds32/config.mk
@@ -33,3 +33,6 @@  PLATFORM_RELFLAGS	+= -gdwarf-2
 PLATFORM_CPPFLAGS	+= -DCONFIG_NDS32 -D__nds32__ -G0 -ffixed-10 -fpie
 
 LDFLAGS_u-boot		= --gc-sections --relax
+
+# Move to unified board system later
+CONFIG_SYS_LEGACY_BOARD := y
diff --git a/arch/nios2/config.mk b/arch/nios2/config.mk
index 7b03ed8..0172f70 100644
--- a/arch/nios2/config.mk
+++ b/arch/nios2/config.mk
@@ -31,3 +31,6 @@  PLATFORM_CPPFLAGS += -G0
 
 LDFLAGS_FINAL += --gc-sections
 PLATFORM_RELFLAGS += -ffunction-sections -fdata-sections
+
+# Move to unified board system later
+CONFIG_SYS_LEGACY_BOARD := y
diff --git a/arch/powerpc/config.mk b/arch/powerpc/config.mk
index b706281..bf77090 100644
--- a/arch/powerpc/config.mk
+++ b/arch/powerpc/config.mk
@@ -29,6 +29,9 @@  PLATFORM_RELFLAGS += -fpic -mrelocatable -ffunction-sections -fdata-sections
 PLATFORM_CPPFLAGS += -DCONFIG_PPC -D__powerpc__
 PLATFORM_LDFLAGS  += -n
 
+# Move to unified board system later
+CONFIG_SYS_LEGACY_BOARD := y
+
 #
 # When cross-compiling on NetBSD, we have to define __PPC__ or else we
 # will pick up a va_list declaration that is incompatible with the
diff --git a/arch/sandbox/config.mk b/arch/sandbox/config.mk
index 4fd0d4e..049d5f7 100644
--- a/arch/sandbox/config.mk
+++ b/arch/sandbox/config.mk
@@ -20,3 +20,6 @@ 
 PLATFORM_CPPFLAGS += -DCONFIG_SANDBOX -D__SANDBOX__ -U_FORTIFY_SOURCE
 PLATFORM_CPPFLAGS += -DCONFIG_ARCH_MAP_SYSMEM
 PLATFORM_LIBS += -lrt
+
+# Move to unified board system later
+CONFIG_SYS_LEGACY_BOARD := y
diff --git a/arch/sh/config.mk b/arch/sh/config.mk
index 07ff8b9..0c21ef5 100644
--- a/arch/sh/config.mk
+++ b/arch/sh/config.mk
@@ -31,3 +31,6 @@  endif
 PLATFORM_CPPFLAGS += -DCONFIG_SH -D__SH__
 PLATFORM_LDFLAGS += -e $(CONFIG_SYS_TEXT_BASE) --defsym reloc_dst=$(CONFIG_SYS_TEXT_BASE)
 LDFLAGS_FINAL = --gc-sections
+
+# Move to unified board system later
+CONFIG_SYS_LEGACY_BOARD := y
diff --git a/arch/sparc/config.mk b/arch/sparc/config.mk
index cae7478..b98a173 100644
--- a/arch/sparc/config.mk
+++ b/arch/sparc/config.mk
@@ -26,3 +26,6 @@  CROSS_COMPILE ?= sparc-elf-
 CONFIG_STANDALONE_LOAD_ADDR ?= 0x00000000 -L $(gcclibdir) -T sparc.lds
 
 PLATFORM_CPPFLAGS += -DCONFIG_SPARC -D__sparc__
+
+# Move to unified board system later
+CONFIG_SYS_LEGACY_BOARD := y
diff --git a/arch/x86/config.mk b/arch/x86/config.mk
index 23cacff..7be3036 100644
--- a/arch/x86/config.mk
+++ b/arch/x86/config.mk
@@ -48,3 +48,6 @@  NORMAL_LIBGCC = $(shell $(CC) $(CFLAGS) -print-libgcc-file-name)
 PREFIXED_LIBGCC = $(OBJTREE)/arch/$(ARCH)/lib/$(shell basename $(NORMAL_LIBGCC))
 
 export USE_PRIVATE_LIBGCC=$(shell dirname $(PREFIXED_LIBGCC))
+
+# Move to unified board system later
+CONFIG_SYS_LEGACY_BOARD := y
diff --git a/config.mk b/config.mk
index b7cd481..9d3b185 100644
--- a/config.mk
+++ b/config.mk
@@ -221,6 +221,14 @@  ifeq ($(CONFIG_SPL_BUILD),y)
 CPPFLAGS += -DCONFIG_SPL_BUILD
 endif
 
+# Does this architecture support generic board init?
+ifneq ($(CONFIG_SYS_LEGACY_BOARD),)
+ifneq ($(CONFIG_SYS_GENERIC_BOARD),)
+$(error Your architecture does not support generic board. Please undefined \
+CONFIG_SYS_GENERIC_BOARD in your board config file)
+endif
+endif
+
 ifneq ($(RESET_VECTOR_ADDRESS),)
 CPPFLAGS += -DRESET_VECTOR_ADDRESS=$(RESET_VECTOR_ADDRESS)
 endif