diff mbox

[U-Boot,v4,02/13] tegra20: move tegra20 SoC code to arch/arm/cpu/tegra20-common

Message ID 1340323247-15512-3-git-send-email-amartin@nvidia.com
State Superseded
Headers show

Commit Message

Allen Martin June 22, 2012, midnight UTC
In preparation for splitting out the armv4t code from tegra20, move
the tegra20 SoC code to arch/arm/cpu/tegra20-common.  This code will
be compiled armv4t for the arm7tdmi and armv7 for the cortex A9.

Signed-off-by: Allen Martin <amartin@nvidia.com>
---
 Makefile                                           |    3 ++
 arch/arm/cpu/armv7/tegra20/Makefile                |   15 ++--------
 .../cpu/{armv7/tegra20 => tegra20-common}/Makefile |   31 +++++++++-----------
 .../cpu/{armv7/tegra20 => tegra20-common}/ap20.c   |    0
 .../cpu/{armv7/tegra20 => tegra20-common}/board.c  |    0
 .../cpu/{armv7/tegra20 => tegra20-common}/clock.c  |    0
 .../cpu/{armv7/tegra20 => tegra20-common}/crypto.c |    0
 .../cpu/{armv7/tegra20 => tegra20-common}/crypto.h |    0
 .../cpu/{armv7/tegra20 => tegra20-common}/emc.c    |    0
 .../{armv7/tegra20 => tegra20-common}/funcmux.c    |    0
 .../tegra20 => tegra20-common}/lowlevel_init.S     |    0
 .../cpu/{armv7/tegra20 => tegra20-common}/pinmux.c |    0
 .../cpu/{armv7/tegra20 => tegra20-common}/pmu.c    |    0
 .../{armv7/tegra20 => tegra20-common}/sys_info.c   |    0
 .../cpu/{armv7/tegra20 => tegra20-common}/timer.c  |    0
 .../{armv7/tegra20 => tegra20-common}/warmboot.c   |    0
 .../tegra20 => tegra20-common}/warmboot_avp.c      |    0
 .../tegra20 => tegra20-common}/warmboot_avp.h      |    0
 spl/Makefile                                       |    4 +++
 19 files changed, 23 insertions(+), 30 deletions(-)
 copy arch/arm/cpu/{armv7/tegra20 => tegra20-common}/Makefile (66%)
 rename arch/arm/cpu/{armv7/tegra20 => tegra20-common}/ap20.c (100%)
 rename arch/arm/cpu/{armv7/tegra20 => tegra20-common}/board.c (100%)
 rename arch/arm/cpu/{armv7/tegra20 => tegra20-common}/clock.c (100%)
 rename arch/arm/cpu/{armv7/tegra20 => tegra20-common}/crypto.c (100%)
 rename arch/arm/cpu/{armv7/tegra20 => tegra20-common}/crypto.h (100%)
 rename arch/arm/cpu/{armv7/tegra20 => tegra20-common}/emc.c (100%)
 rename arch/arm/cpu/{armv7/tegra20 => tegra20-common}/funcmux.c (100%)
 rename arch/arm/cpu/{armv7/tegra20 => tegra20-common}/lowlevel_init.S (100%)
 rename arch/arm/cpu/{armv7/tegra20 => tegra20-common}/pinmux.c (100%)
 rename arch/arm/cpu/{armv7/tegra20 => tegra20-common}/pmu.c (100%)
 rename arch/arm/cpu/{armv7/tegra20 => tegra20-common}/sys_info.c (100%)
 rename arch/arm/cpu/{armv7/tegra20 => tegra20-common}/timer.c (100%)
 rename arch/arm/cpu/{armv7/tegra20 => tegra20-common}/warmboot.c (100%)
 rename arch/arm/cpu/{armv7/tegra20 => tegra20-common}/warmboot_avp.c (100%)
 rename arch/arm/cpu/{armv7/tegra20 => tegra20-common}/warmboot_avp.h (100%)

Comments

Stephen Warren June 22, 2012, 6:15 p.m. UTC | #1
On 06/21/2012 06:00 PM, Allen Martin wrote:
> In preparation for splitting out the armv4t code from tegra20, move
> the tegra20 SoC code to arch/arm/cpu/tegra20-common.  This code will
> be compiled armv4t for the arm7tdmi and armv7 for the cortex A9.
> 
> Signed-off-by: Allen Martin <amartin@nvidia.com>

The only thing I wonder here is whether tegra20-common or tegra-common
is a better location, given that we'll eventually add Tegra30 support,
and some of the code might be shared.

Still, we can address that issue when we add Tegra30 support I think, so.

Acked-by: Stephen Warren <swarren@wwwdotorg.org>
Allen Martin June 22, 2012, 6:43 p.m. UTC | #2
On Fri, Jun 22, 2012 at 11:15:55AM -0700, Stephen Warren wrote:
> On 06/21/2012 06:00 PM, Allen Martin wrote:
> > In preparation for splitting out the armv4t code from tegra20, move
> > the tegra20 SoC code to arch/arm/cpu/tegra20-common.  This code will
> > be compiled armv4t for the arm7tdmi and armv7 for the cortex A9.
> > 
> > Signed-off-by: Allen Martin <amartin@nvidia.com>
> 
> The only thing I wonder here is whether tegra20-common or tegra-common
> is a better location, given that we'll eventually add Tegra30 support,
> and some of the code might be shared.
> 
> Still, we can address that issue when we add Tegra30 support I think, so.
> 
> Acked-by: Stephen Warren <swarren@wwwdotorg.org>

I think Simon had the same feedback in a earlier version.  My response
was that pulling out the tegra20/tegra30 commonalities will require
much more refactoring and is better left to a separate patch series.

-Allen
diff mbox

Patch

diff --git a/Makefile b/Makefile
index 351a8f0..b2275ed 100644
--- a/Makefile
+++ b/Makefile
@@ -319,6 +319,9 @@  endif
 ifeq ($(SOC),exynos)
 LIBS += $(CPUDIR)/s5p-common/libs5p-common.o
 endif
+ifeq ($(SOC),tegra20)
+LIBS += $(OBJTREE)/arch/$(ARCH)/cpu/$(SOC)-common/lib$(SOC)-common.o
+endif
 
 LIBS := $(addprefix $(obj),$(sort $(LIBS)))
 .PHONY : $(LIBS)
diff --git a/arch/arm/cpu/armv7/tegra20/Makefile b/arch/arm/cpu/armv7/tegra20/Makefile
index da62646..5f4035d 100644
--- a/arch/arm/cpu/armv7/tegra20/Makefile
+++ b/arch/arm/cpu/armv7/tegra20/Makefile
@@ -23,27 +23,16 @@ 
 # MA 02111-1307 USA
 #
 
-# The AVP is ARMv4T architecture so we must use special compiler
-# flags for any startup files it might use.
-CFLAGS_arch/arm/cpu/armv7/tegra20/ap20.o += -march=armv4t
-CFLAGS_arch/arm/cpu/armv7/tegra20/clock.o += -march=armv4t
-CFLAGS_arch/arm/cpu/armv7/tegra20/warmboot_avp.o += -march=armv4t
-
 include $(TOPDIR)/config.mk
 
 LIB	=  $(obj)lib$(SOC).o
 
-SOBJS	:= lowlevel_init.o
-COBJS-y	:= ap20.o board.o clock.o funcmux.o pinmux.o sys_info.o timer.o
-COBJS-$(CONFIG_TEGRA_CLOCK_SCALING) += emc.o
-COBJS-$(CONFIG_TEGRA_PMU) += pmu.o
 COBJS-$(CONFIG_USB_EHCI_TEGRA) += usb.o
-COBJS-$(CONFIG_TEGRA20_LP0) += crypto.o warmboot.o warmboot_avp.o
 COBJS-$(CONFIG_CMD_ENTERRCM) += cmd_enterrcm.o
 
 COBJS	:= $(COBJS-y)
-SRCS	:= $(SOBJS:.o=.S) $(COBJS:.o=.c)
-OBJS	:= $(addprefix $(obj),$(COBJS) $(SOBJS))
+SRCS	:= $(COBJS:.o=.c)
+OBJS	:= $(addprefix $(obj),$(COBJS))
 
 all:	 $(obj).depend $(LIB)
 
diff --git a/arch/arm/cpu/armv7/tegra20/Makefile b/arch/arm/cpu/tegra20-common/Makefile
similarity index 66%
copy from arch/arm/cpu/armv7/tegra20/Makefile
copy to arch/arm/cpu/tegra20-common/Makefile
index da62646..60be2a6 100644
--- a/arch/arm/cpu/armv7/tegra20/Makefile
+++ b/arch/arm/cpu/tegra20-common/Makefile
@@ -1,7 +1,7 @@ 
 #
 # (C) Copyright 2010,2011 Nvidia Corporation.
 #
-# (C) Copyright 2000-2003
+# (C) Copyright 2000-2008
 # Wolfgang Denk, DENX Software Engineering, wd@denx.de.
 #
 # See file CREDITS for list of people who contributed to this
@@ -14,7 +14,7 @@ 
 #
 # 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
+# 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
@@ -23,29 +23,26 @@ 
 # MA 02111-1307 USA
 #
 
+include $(TOPDIR)/config.mk
+
 # The AVP is ARMv4T architecture so we must use special compiler
 # flags for any startup files it might use.
-CFLAGS_arch/arm/cpu/armv7/tegra20/ap20.o += -march=armv4t
-CFLAGS_arch/arm/cpu/armv7/tegra20/clock.o += -march=armv4t
-CFLAGS_arch/arm/cpu/armv7/tegra20/warmboot_avp.o += -march=armv4t
-
-include $(TOPDIR)/config.mk
+CFLAGS_arch/arm/cpu/tegra20-common/ap20.o += -march=armv4t
+CFLAGS_arch/arm/cpu/tegra20-common/clock.o += -march=armv4t
+CFLAGS_arch/arm/cpu/tegra20-common/warmboot_avp.o += -march=armv4t
 
-LIB	=  $(obj)lib$(SOC).o
+LIB	= $(obj)lib$(SOC)-common.o
 
-SOBJS	:= lowlevel_init.o
-COBJS-y	:= ap20.o board.o clock.o funcmux.o pinmux.o sys_info.o timer.o
+SOBJS += lowlevel_init.o
+COBJS-y	+= ap20.o board.o clock.o funcmux.o pinmux.o sys_info.o timer.o
+COBJS-$(CONFIG_TEGRA20_LP0) += warmboot.o crypto.o warmboot_avp.o
 COBJS-$(CONFIG_TEGRA_CLOCK_SCALING) += emc.o
 COBJS-$(CONFIG_TEGRA_PMU) += pmu.o
-COBJS-$(CONFIG_USB_EHCI_TEGRA) += usb.o
-COBJS-$(CONFIG_TEGRA20_LP0) += crypto.o warmboot.o warmboot_avp.o
-COBJS-$(CONFIG_CMD_ENTERRCM) += cmd_enterrcm.o
 
-COBJS	:= $(COBJS-y)
-SRCS	:= $(SOBJS:.o=.S) $(COBJS:.o=.c)
-OBJS	:= $(addprefix $(obj),$(COBJS) $(SOBJS))
+SRCS	:= $(SOBJS:.o=.S) $(COBJS-y:.o=.c)
+OBJS	:= $(addprefix $(obj),$(SOBJS) $(COBJS-y))
 
-all:	 $(obj).depend $(LIB)
+all:	$(obj).depend $(LIB)
 
 $(LIB):	$(OBJS)
 	$(call cmd_link_o_target, $(OBJS))
diff --git a/arch/arm/cpu/armv7/tegra20/ap20.c b/arch/arm/cpu/tegra20-common/ap20.c
similarity index 100%
rename from arch/arm/cpu/armv7/tegra20/ap20.c
rename to arch/arm/cpu/tegra20-common/ap20.c
diff --git a/arch/arm/cpu/armv7/tegra20/board.c b/arch/arm/cpu/tegra20-common/board.c
similarity index 100%
rename from arch/arm/cpu/armv7/tegra20/board.c
rename to arch/arm/cpu/tegra20-common/board.c
diff --git a/arch/arm/cpu/armv7/tegra20/clock.c b/arch/arm/cpu/tegra20-common/clock.c
similarity index 100%
rename from arch/arm/cpu/armv7/tegra20/clock.c
rename to arch/arm/cpu/tegra20-common/clock.c
diff --git a/arch/arm/cpu/armv7/tegra20/crypto.c b/arch/arm/cpu/tegra20-common/crypto.c
similarity index 100%
rename from arch/arm/cpu/armv7/tegra20/crypto.c
rename to arch/arm/cpu/tegra20-common/crypto.c
diff --git a/arch/arm/cpu/armv7/tegra20/crypto.h b/arch/arm/cpu/tegra20-common/crypto.h
similarity index 100%
rename from arch/arm/cpu/armv7/tegra20/crypto.h
rename to arch/arm/cpu/tegra20-common/crypto.h
diff --git a/arch/arm/cpu/armv7/tegra20/emc.c b/arch/arm/cpu/tegra20-common/emc.c
similarity index 100%
rename from arch/arm/cpu/armv7/tegra20/emc.c
rename to arch/arm/cpu/tegra20-common/emc.c
diff --git a/arch/arm/cpu/armv7/tegra20/funcmux.c b/arch/arm/cpu/tegra20-common/funcmux.c
similarity index 100%
rename from arch/arm/cpu/armv7/tegra20/funcmux.c
rename to arch/arm/cpu/tegra20-common/funcmux.c
diff --git a/arch/arm/cpu/armv7/tegra20/lowlevel_init.S b/arch/arm/cpu/tegra20-common/lowlevel_init.S
similarity index 100%
rename from arch/arm/cpu/armv7/tegra20/lowlevel_init.S
rename to arch/arm/cpu/tegra20-common/lowlevel_init.S
diff --git a/arch/arm/cpu/armv7/tegra20/pinmux.c b/arch/arm/cpu/tegra20-common/pinmux.c
similarity index 100%
rename from arch/arm/cpu/armv7/tegra20/pinmux.c
rename to arch/arm/cpu/tegra20-common/pinmux.c
diff --git a/arch/arm/cpu/armv7/tegra20/pmu.c b/arch/arm/cpu/tegra20-common/pmu.c
similarity index 100%
rename from arch/arm/cpu/armv7/tegra20/pmu.c
rename to arch/arm/cpu/tegra20-common/pmu.c
diff --git a/arch/arm/cpu/armv7/tegra20/sys_info.c b/arch/arm/cpu/tegra20-common/sys_info.c
similarity index 100%
rename from arch/arm/cpu/armv7/tegra20/sys_info.c
rename to arch/arm/cpu/tegra20-common/sys_info.c
diff --git a/arch/arm/cpu/armv7/tegra20/timer.c b/arch/arm/cpu/tegra20-common/timer.c
similarity index 100%
rename from arch/arm/cpu/armv7/tegra20/timer.c
rename to arch/arm/cpu/tegra20-common/timer.c
diff --git a/arch/arm/cpu/armv7/tegra20/warmboot.c b/arch/arm/cpu/tegra20-common/warmboot.c
similarity index 100%
rename from arch/arm/cpu/armv7/tegra20/warmboot.c
rename to arch/arm/cpu/tegra20-common/warmboot.c
diff --git a/arch/arm/cpu/armv7/tegra20/warmboot_avp.c b/arch/arm/cpu/tegra20-common/warmboot_avp.c
similarity index 100%
rename from arch/arm/cpu/armv7/tegra20/warmboot_avp.c
rename to arch/arm/cpu/tegra20-common/warmboot_avp.c
diff --git a/arch/arm/cpu/armv7/tegra20/warmboot_avp.h b/arch/arm/cpu/tegra20-common/warmboot_avp.h
similarity index 100%
rename from arch/arm/cpu/armv7/tegra20/warmboot_avp.h
rename to arch/arm/cpu/tegra20-common/warmboot_avp.h
diff --git a/spl/Makefile b/spl/Makefile
index ea7d475..d04d2f2 100644
--- a/spl/Makefile
+++ b/spl/Makefile
@@ -62,6 +62,10 @@  ifneq ($(CONFIG_AM33XX)$(CONFIG_OMAP34XX)$(CONFIG_OMAP44XX)$(CONFIG_OMAP54XX),)
 LIBS-y += $(CPUDIR)/omap-common/libomap-common.o
 endif
 
+ifeq ($(SOC),tegra20)
+LIBS-y += arch/$(ARCH)/cpu/$(SOC)-common/lib$(SOC)-common.o
+endif
+
 START := $(addprefix $(SPLTREE)/,$(START))
 LIBS := $(addprefix $(SPLTREE)/,$(sort $(LIBS-y)))