From 03b7004ddafc70d83904d790abaa50843868130e Mon Sep 17 00:00:00 2001 From: Peter Tyser Date: Mon, 12 Apr 2010 22:28:02 -0500 Subject: Create CPUDIR variable The CPUDIR variable points to the location of a target's CPU directory. Currently, it is set to cpu/$CPU. However, using $CPUDIR will allow for more flexibility in the future. It lays the groundwork for reorganizing U-Boot's directory structure to support a layout such as: arch/$ARCH/cpu/$CPU/* (architecture with multiple CPU types) arch/$ARCH/cpu/* (architecture with one CPU type) Signed-off-by: Peter Tyser diff --git a/Makefile b/Makefile index 5d314c6..8e3eb99 100644 --- a/Makefile +++ b/Makefile @@ -169,16 +169,16 @@ include $(TOPDIR)/config.mk ######################################################################### # U-Boot objects....order is important (i.e. start must be first) -OBJS = cpu/$(CPU)/start.o +OBJS = $(CPUDIR)/start.o ifeq ($(CPU),i386) -OBJS += cpu/$(CPU)/start16.o -OBJS += cpu/$(CPU)/resetvec.o +OBJS += $(CPUDIR)/start16.o +OBJS += $(CPUDIR)/resetvec.o endif ifeq ($(CPU),ppc4xx) -OBJS += cpu/$(CPU)/resetvec.o +OBJS += $(CPUDIR)/resetvec.o endif ifeq ($(CPU),mpc85xx) -OBJS += cpu/$(CPU)/resetvec.o +OBJS += $(CPUDIR)/resetvec.o endif OBJS := $(addprefix $(obj),$(OBJS)) @@ -188,9 +188,9 @@ LIBS += lib_generic/lzma/liblzma.a LIBS += lib_generic/lzo/liblzo.a LIBS += $(shell if [ -f board/$(VENDOR)/common/Makefile ]; then echo \ "board/$(VENDOR)/common/lib$(VENDOR).a"; fi) -LIBS += cpu/$(CPU)/lib$(CPU).a +LIBS += $(CPUDIR)/lib$(CPU).a ifdef SOC -LIBS += cpu/$(CPU)/$(SOC)/lib$(SOC).a +LIBS += $(CPUDIR)/$(SOC)/lib$(SOC).a endif ifeq ($(CPU),ixp) LIBS += cpu/ixp/npe/libnpe.a @@ -354,7 +354,7 @@ ifeq ($(CONFIG_KALLSYMS),y) endif $(OBJS): depend - $(MAKE) -C cpu/$(CPU) $(if $(REMOTE_BUILD),$@,$(notdir $@)) + $(MAKE) -C $(CPUDIR) $(if $(REMOTE_BUILD),$@,$(notdir $@)) $(LIBS): depend $(SUBDIRS) $(MAKE) -C $(dir $(subst $(obj),,$@)) @@ -404,7 +404,7 @@ env: # Explicitly make _depend in subdirs containing multiple targets to prevent # parallel sub-makes creating .depend files simultaneously. depend dep: $(TIMESTAMP_FILE) $(VERSION_FILE) $(obj)include/autoconf.mk - for dir in $(SUBDIRS) cpu/$(CPU) $(dir $(LDSCRIPT)) ; do \ + for dir in $(SUBDIRS) $(CPUDIR) $(dir $(LDSCRIPT)) ; do \ $(MAKE) -C $$dir _depend ; done TAG_SUBDIRS = $(SUBDIRS) diff --git a/board/freescale/mpc8536ds/config.mk b/board/freescale/mpc8536ds/config.mk index e38af73..3f5447a 100644 --- a/board/freescale/mpc8536ds/config.mk +++ b/board/freescale/mpc8536ds/config.mk @@ -26,7 +26,7 @@ ifndef NAND_SPL ifeq ($(CONFIG_MK_NAND), y) TEXT_BASE = $(CONFIG_RAMBOOT_TEXT_BASE) -LDSCRIPT := $(TOPDIR)/cpu/$(CPU)/u-boot-nand.lds +LDSCRIPT := $(TOPDIR)/$(CPUDIR)/u-boot-nand.lds endif endif diff --git a/board/freescale/mpc8569mds/config.mk b/board/freescale/mpc8569mds/config.mk index 7de0f7c..86f138c 100644 --- a/board/freescale/mpc8569mds/config.mk +++ b/board/freescale/mpc8569mds/config.mk @@ -26,7 +26,7 @@ ifndef NAND_SPL ifeq ($(CONFIG_MK_NAND), y) TEXT_BASE = $(CONFIG_RAMBOOT_TEXT_BASE) -LDSCRIPT := $(TOPDIR)/cpu/$(CPU)/u-boot-nand.lds +LDSCRIPT := $(TOPDIR)/$(CPUDIR)/u-boot-nand.lds endif endif diff --git a/board/freescale/mx51evk/config.mk b/board/freescale/mx51evk/config.mk index c8279ec..af70ec2 100644 --- a/board/freescale/mx51evk/config.mk +++ b/board/freescale/mx51evk/config.mk @@ -20,6 +20,6 @@ # MA 02111-1307 USA # -LDSCRIPT = cpu/$(CPU)/$(SOC)/u-boot.lds +LDSCRIPT = $(CPUDIR)/$(SOC)/u-boot.lds TEXT_BASE = 0x97800000 IMX_CONFIG = $(SRCTREE)/board/$(BOARDDIR)/imximage.cfg diff --git a/board/freescale/p1_p2_rdb/config.mk b/board/freescale/p1_p2_rdb/config.mk index 0f7a048..1f9f7b6 100644 --- a/board/freescale/p1_p2_rdb/config.mk +++ b/board/freescale/p1_p2_rdb/config.mk @@ -27,7 +27,7 @@ ifndef NAND_SPL ifeq ($(CONFIG_MK_NAND), y) TEXT_BASE = $(CONFIG_RAMBOOT_TEXT_BASE) -LDSCRIPT := $(TOPDIR)/cpu/$(CPU)/u-boot-nand.lds +LDSCRIPT := $(TOPDIR)/$(CPUDIR)/u-boot-nand.lds endif endif diff --git a/config.mk b/config.mk index cb1c4af..c82cb63 100644 --- a/config.mk +++ b/config.mk @@ -110,14 +110,15 @@ RANLIB = $(CROSS_COMPILE)RANLIB # Load generated board configuration sinclude $(OBJTREE)/include/autoconf.mk -ifdef ARCH +# Some architecture config.mk files need to know what CPUDIR is set to, +# so calculate CPUDIR before including ARCH/SOC/CPU config.mk files. +CPUDIR=cpu/$(CPU) + sinclude $(TOPDIR)/lib_$(ARCH)/config.mk # include architecture dependend rules -endif -ifdef CPU -sinclude $(TOPDIR)/cpu/$(CPU)/config.mk # include CPU specific rules -endif +sinclude $(TOPDIR)/$(CPUDIR)/config.mk # include CPU specific rules + ifdef SOC -sinclude $(TOPDIR)/cpu/$(CPU)/$(SOC)/config.mk # include SoC specific rules +sinclude $(TOPDIR)/$(CPUDIR)/$(SOC)/config.mk # include SoC specific rules endif ifdef VENDOR BOARDDIR = $(VENDOR)/$(BOARD) diff --git a/doc/README.ARM-SoC b/doc/README.ARM-SoC index 0f2677f..15f065d 100644 --- a/doc/README.ARM-SoC +++ b/doc/README.ARM-SoC @@ -7,14 +7,14 @@ I introduced the concept of Soc (system on a chip) into the ./cpu directory. That means that code that is cpu (i.e. core) specific resides in - cpu/$(CPU)/ + $(CPUDIR)/ and code that is specific to some SoC (i.e. vendor specific peripherals around the core) is moved into - cpu/$(CPU)/$(SOC)/ + $(CPUDIR)/$(SOC)/ -Thus a library/archive "cpu/$(CPU)/$(SOC)/lib$(SOC).a" will be build +Thus a library/archive "$(CPUDIR)/$(SOC)/lib$(SOC).a" will be build and linked. Examples will be cpu/arm920t/imx/ diff --git a/lib_arm/config.mk b/lib_arm/config.mk index 3c078df..8dd4dcc 100644 --- a/lib_arm/config.mk +++ b/lib_arm/config.mk @@ -63,4 +63,4 @@ ifeq (,$(findstring lib_arm/eabi_compat.o,$(PLATFORM_LIBS))) PLATFORM_LIBS += $(OBJTREE)/lib_arm/eabi_compat.o endif endif -LDSCRIPT := $(SRCTREE)/cpu/$(CPU)/u-boot.lds +LDSCRIPT := $(SRCTREE)/$(CPUDIR)/u-boot.lds diff --git a/lib_blackfin/config.mk b/lib_blackfin/config.mk index 1b5cbba..3ecade9 100644 --- a/lib_blackfin/config.mk +++ b/lib_blackfin/config.mk @@ -56,7 +56,7 @@ LDR_FLAGS-$(CONFIG_BFIN_BOOTROM_USES_EVT1) += -J LDR_FLAGS += --bmode $(subst BFIN_BOOT_,,$(CONFIG_BFIN_BOOT_MODE)) LDR_FLAGS += --use-vmas -LDR_FLAGS += --initcode $(obj)cpu/$(CPU)/initcode.o +LDR_FLAGS += --initcode $(obj)$(CPUDIR)/initcode.o ifneq ($(CONFIG_BFIN_BOOT_MODE),BFIN_BOOT_UART) LDR_FLAGS-$(CONFIG_ENV_IS_EMBEDDED_IN_LDR) += \ --punchit $$(($(CONFIG_ENV_OFFSET))):$$(($(CONFIG_ENV_SIZE))):$(obj)env-ldr.o diff --git a/lib_sh/config.mk b/lib_sh/config.mk index fa5369f..797bf4c 100644 --- a/lib_sh/config.mk +++ b/lib_sh/config.mk @@ -31,4 +31,4 @@ endif PLATFORM_CPPFLAGS += -DCONFIG_SH -D__SH__ PLATFORM_LDFLAGS += -e $(TEXT_BASE) --defsym reloc_dst=$(TEXT_BASE) -LDSCRIPT := $(SRCTREE)/cpu/$(CPU)/u-boot.lds +LDSCRIPT := $(SRCTREE)/$(CPUDIR)/u-boot.lds diff --git a/nand_spl/board/freescale/mpc8536ds/Makefile b/nand_spl/board/freescale/mpc8536ds/Makefile index 7ed9d61..be0caaa 100644 --- a/nand_spl/board/freescale/mpc8536ds/Makefile +++ b/nand_spl/board/freescale/mpc8536ds/Makefile @@ -29,7 +29,7 @@ PAD_TO := 0xfff01000 include $(TOPDIR)/config.mk -LDSCRIPT= $(TOPDIR)/cpu/$(CPU)/u-boot-nand_spl.lds +LDSCRIPT= $(TOPDIR)/$(CPUDIR)/u-boot-nand_spl.lds LDFLAGS = -Bstatic -T $(LDSCRIPT) -Ttext $(TEXT_BASE) $(PLATFORM_LDFLAGS) AFLAGS += -DCONFIG_NAND_SPL CFLAGS += -DCONFIG_NAND_SPL @@ -93,7 +93,7 @@ $(obj)ns16550.c: $(obj)resetvec.S: @rm -f $(obj)resetvec.S - ln -s $(SRCTREE)/cpu/$(CPU)/resetvec.S $(obj)resetvec.S + ln -s $(SRCTREE)/$(CPUDIR)/resetvec.S $(obj)resetvec.S $(obj)fixed_ivor.S: @rm -f $(obj)fixed_ivor.S diff --git a/nand_spl/board/freescale/mpc8569mds/Makefile b/nand_spl/board/freescale/mpc8569mds/Makefile index 7ed9d61..be0caaa 100644 --- a/nand_spl/board/freescale/mpc8569mds/Makefile +++ b/nand_spl/board/freescale/mpc8569mds/Makefile @@ -29,7 +29,7 @@ PAD_TO := 0xfff01000 include $(TOPDIR)/config.mk -LDSCRIPT= $(TOPDIR)/cpu/$(CPU)/u-boot-nand_spl.lds +LDSCRIPT= $(TOPDIR)/$(CPUDIR)/u-boot-nand_spl.lds LDFLAGS = -Bstatic -T $(LDSCRIPT) -Ttext $(TEXT_BASE) $(PLATFORM_LDFLAGS) AFLAGS += -DCONFIG_NAND_SPL CFLAGS += -DCONFIG_NAND_SPL @@ -93,7 +93,7 @@ $(obj)ns16550.c: $(obj)resetvec.S: @rm -f $(obj)resetvec.S - ln -s $(SRCTREE)/cpu/$(CPU)/resetvec.S $(obj)resetvec.S + ln -s $(SRCTREE)/$(CPUDIR)/resetvec.S $(obj)resetvec.S $(obj)fixed_ivor.S: @rm -f $(obj)fixed_ivor.S diff --git a/nand_spl/board/freescale/p1_p2_rdb/Makefile b/nand_spl/board/freescale/p1_p2_rdb/Makefile index 7ed9d61..be0caaa 100644 --- a/nand_spl/board/freescale/p1_p2_rdb/Makefile +++ b/nand_spl/board/freescale/p1_p2_rdb/Makefile @@ -29,7 +29,7 @@ PAD_TO := 0xfff01000 include $(TOPDIR)/config.mk -LDSCRIPT= $(TOPDIR)/cpu/$(CPU)/u-boot-nand_spl.lds +LDSCRIPT= $(TOPDIR)/$(CPUDIR)/u-boot-nand_spl.lds LDFLAGS = -Bstatic -T $(LDSCRIPT) -Ttext $(TEXT_BASE) $(PLATFORM_LDFLAGS) AFLAGS += -DCONFIG_NAND_SPL CFLAGS += -DCONFIG_NAND_SPL @@ -93,7 +93,7 @@ $(obj)ns16550.c: $(obj)resetvec.S: @rm -f $(obj)resetvec.S - ln -s $(SRCTREE)/cpu/$(CPU)/resetvec.S $(obj)resetvec.S + ln -s $(SRCTREE)/$(CPUDIR)/resetvec.S $(obj)resetvec.S $(obj)fixed_ivor.S: @rm -f $(obj)fixed_ivor.S diff --git a/onenand_ipl/board/apollon/Makefile b/onenand_ipl/board/apollon/Makefile index 193efff..6f1df01 100644 --- a/onenand_ipl/board/apollon/Makefile +++ b/onenand_ipl/board/apollon/Makefile @@ -46,7 +46,7 @@ $(onenandobj)u-boot.lds: $(LDSCRIPT) # from cpu directory $(obj)start.S: @rm -f $@ - ln -s $(SRCTREE)/cpu/$(CPU)/start.S $@ + ln -s $(SRCTREE)/$(CPUDIR)/start.S $@ # from onenand_ipl directory $(obj)onenand_ipl.h: -- cgit v0.10.2