Patchwork [6/6] arm/imx: merge i.MX3 and i.MX6

login
register
mail settings
Submitter Shawn Guo
Date Sept. 28, 2011, 9:16 a.m.
Message ID <1317201368-6403-7-git-send-email-shawn.guo@linaro.org>
Download mbox | patch
Permalink /patch/116738/
State New
Headers show

Comments

Shawn Guo - Sept. 28, 2011, 9:16 a.m.
From: Sascha Hauer <s.hauer@pengutronix.de>

The patch merges the build of imx3 and imx6.  The Kconfig symbol
ARCH_IMX_V6_V7 is introduced to replace ARCH_MX3 and ARCH_MX6.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
---
 arch/arm/Makefile               |    3 +--
 arch/arm/mach-imx/Kconfig       |    7 +++----
 arch/arm/mach-imx/Makefile.boot |   10 +++++++---
 arch/arm/mm/Kconfig             |    4 ++--
 arch/arm/plat-mxc/Kconfig       |   18 +++++++-----------
 5 files changed, 20 insertions(+), 22 deletions(-)
Sascha Hauer - Sept. 28, 2011, 12:18 p.m.
On Wed, Sep 28, 2011 at 05:16:08PM +0800, Shawn Guo wrote:
> 
>  
> -config ARCH_MX3
> -	bool "MX3-based"
> +config ARCH_IMX_V6_V7
> +	bool "i.MX3, i.MX6"
> +	select AUTO_ZRELADDR
> +	select ARM_PATCH_PHYS_VIRT

Russell pointed out that it's not a good idea to select this.

Sascha

>  	help
> -	  This enables support for systems based on the Freescale i.MX3 family
> +	  This enables support for systems based on the Freescale i.MX3 and i.MX6
> +	  family.
>  
>  config ARCH_MX5
>  	bool "i.MX50, i.MX51, i.MX53"
> @@ -29,13 +32,6 @@ config ARCH_MX5
>  	  This enables support for machines using Freescale's i.MX50 and i.MX51
>  	  processors.
>  
> -config ARCH_MX6
> -	bool "i.MX6"
> -	select AUTO_ZRELADDR
> -	select ARM_PATCH_PHYS_VIRT
> -	help
> -	  This enables support for systems based on the Freescale i.MX6 family
> -
>  endchoice
>  
>  source "arch/arm/mach-imx/Kconfig"
> -- 
> 1.7.4.1
> 
>
Shawn Guo - Sept. 29, 2011, 5:17 a.m.
On Wed, Sep 28, 2011 at 02:18:08PM +0200, Sascha Hauer wrote:
> On Wed, Sep 28, 2011 at 05:16:08PM +0800, Shawn Guo wrote:
> > 
> >  
> > -config ARCH_MX3
> > -	bool "MX3-based"
> > +config ARCH_IMX_V6_V7
> > +	bool "i.MX3, i.MX6"
> > +	select AUTO_ZRELADDR
> > +	select ARM_PATCH_PHYS_VIRT
> 
> Russell pointed out that it's not a good idea to select this.
> 
Yeah, I saw that.  So you would support ZBOOT_ROM over single zImage
between these two?  I'm not sure how many imx users are actually using
ZBOOT_ROM.  If there are only very few, we still want to keep the
default configuration compatible with ZBOOT_ROM?  I think we can move
the default build to single zImage, and let those limited users sort
out their own configuration to get ZBOOT_ROM back.  After all, the
support is still there, and it's just about build configuration
adjustment.

Anyway, it's only my opinion, and the decision is on you plate.
Sascha Hauer - Sept. 29, 2011, 8:35 a.m.
On Thu, Sep 29, 2011 at 01:17:28PM +0800, Shawn Guo wrote:
> On Wed, Sep 28, 2011 at 02:18:08PM +0200, Sascha Hauer wrote:
> > On Wed, Sep 28, 2011 at 05:16:08PM +0800, Shawn Guo wrote:
> > > 
> > >  
> > > -config ARCH_MX3
> > > -	bool "MX3-based"
> > > +config ARCH_IMX_V6_V7
> > > +	bool "i.MX3, i.MX6"
> > > +	select AUTO_ZRELADDR
> > > +	select ARM_PATCH_PHYS_VIRT
> > 
> > Russell pointed out that it's not a good idea to select this.
> > 
> Yeah, I saw that.  So you would support ZBOOT_ROM over single zImage
> between these two?  I'm not sure how many imx users are actually using
> ZBOOT_ROM.  If there are only very few, we still want to keep the
> default configuration compatible with ZBOOT_ROM?  I think we can move
> the default build to single zImage, and let those limited users sort
> out their own configuration to get ZBOOT_ROM back.  After all, the
> support is still there, and it's just about build configuration
> adjustment.

I'm not sure there are i.MX ZBOOT_ROM users at all. Anyway,

	select AUTO_ZRELADDR if !ZBOOT_ROM

seems to work.

Sascha

Patch

diff --git a/arch/arm/Makefile b/arch/arm/Makefile
index fc36c1b..28e4619 100644
--- a/arch/arm/Makefile
+++ b/arch/arm/Makefile
@@ -158,9 +158,8 @@  machine-$(CONFIG_ARCH_MMP)		:= mmp
 machine-$(CONFIG_ARCH_MSM)		:= msm
 machine-$(CONFIG_ARCH_MV78XX0)		:= mv78xx0
 machine-$(CONFIG_ARCH_IMX_V4_V5)	:= imx
-machine-$(CONFIG_ARCH_MX3)		:= imx
+machine-$(CONFIG_ARCH_IMX_V6_V7)	:= imx
 machine-$(CONFIG_ARCH_MX5)		:= mx5
-machine-$(CONFIG_ARCH_MX6)		:= imx
 machine-$(CONFIG_ARCH_MXS)		:= mxs
 machine-$(CONFIG_ARCH_NETX)		:= netx
 machine-$(CONFIG_ARCH_NOMADIK)		:= nomadik
diff --git a/arch/arm/mach-imx/Kconfig b/arch/arm/mach-imx/Kconfig
index d52fe3d..fe5cd06 100644
--- a/arch/arm/mach-imx/Kconfig
+++ b/arch/arm/mach-imx/Kconfig
@@ -74,6 +74,7 @@  config SOC_IMX31
 	select ARCH_MXC_AUDMUX_V2
 	select ARCH_MX31
 	select MXC_AVIC
+	select SMP_ON_UP if SMP
 
 config SOC_IMX35
 	bool
@@ -83,6 +84,7 @@  config SOC_IMX35
 	select HAVE_EPIT
 	select ARCH_MX35
 	select MXC_AVIC
+	select SMP_ON_UP if SMP
 
 
 if ARCH_IMX_V4_V5
@@ -351,7 +353,7 @@  config MACH_IMX27IPCAM
 
 endif
 
-if ARCH_MX3
+if ARCH_IMX_V6_V7
 
 comment "MX31 platforms:"
 
@@ -601,9 +603,6 @@  config MACH_VPR200
 	  Include support for VPR200 platform. This includes specific
 	  configurations for the board and its peripherals.
 
-endif
-
-if ARCH_MX6
 comment "i.MX6 family:"
 
 config SOC_IMX6Q
diff --git a/arch/arm/mach-imx/Makefile.boot b/arch/arm/mach-imx/Makefile.boot
index 22d8588..c349a96 100644
--- a/arch/arm/mach-imx/Makefile.boot
+++ b/arch/arm/mach-imx/Makefile.boot
@@ -14,9 +14,13 @@  zreladdr-$(CONFIG_MACH_MX27)	+= 0xA0008000
 params_phys-$(CONFIG_MACH_MX27)	:= 0xA0000100
 initrd_phys-$(CONFIG_MACH_MX27)	:= 0xA0800000
 
-zreladdr-$(CONFIG_ARCH_MX3)	+= 0x80008000
-params_phys-$(CONFIG_ARCH_MX3)	:= 0x80000100
-initrd_phys-$(CONFIG_ARCH_MX3)	:= 0x80800000
+zreladdr-$(CONFIG_SOC_IMX31)	+= 0x80008000
+params_phys-$(CONFIG_SOC_IMX31)	:= 0x80000100
+initrd_phys-$(CONFIG_SOC_IMX31)	:= 0x80800000
+
+zreladdr-$(CONFIG_SOC_IMX35)	+= 0x80008000
+params_phys-$(CONFIG_SOC_IMX35)	:= 0x80000100
+initrd_phys-$(CONFIG_SOC_IMX35)	:= 0x80800000
 
 zreladdr-$(CONFIG_SOC_IMX6Q)	+= 0x10008000
 params_phys-$(CONFIG_SOC_IMX6Q)	:= 0x10000100
diff --git a/arch/arm/mm/Kconfig b/arch/arm/mm/Kconfig
index 6dc9967..bc68200 100644
--- a/arch/arm/mm/Kconfig
+++ b/arch/arm/mm/Kconfig
@@ -832,10 +832,10 @@  config CACHE_FEROCEON_L2_WRITETHROUGH
 config CACHE_L2X0
 	bool "Enable the L2x0 outer cache controller"
 	depends on REALVIEW_EB_ARM11MP || MACH_REALVIEW_PB11MP || MACH_REALVIEW_PB1176 || \
-		   REALVIEW_EB_A9MP || SOC_IMX35 || SOC_IMX31 || MACH_REALVIEW_PBX || \
+		   REALVIEW_EB_A9MP || ARCH_IMX_V6_V7 || MACH_REALVIEW_PBX || \
 		   ARCH_NOMADIK || ARCH_OMAP4 || ARCH_EXYNOS4 || ARCH_TEGRA || \
 		   ARCH_U8500 || ARCH_VEXPRESS_CA9X4 || ARCH_SHMOBILE || \
-		   ARCH_PRIMA2 || ARCH_ZYNQ || ARCH_CNS3XXX || ARCH_MX6
+		   ARCH_PRIMA2 || ARCH_ZYNQ || ARCH_CNS3XXX
 	default y
 	select OUTER_CACHE
 	select OUTER_CACHE_SYNC
diff --git a/arch/arm/plat-mxc/Kconfig b/arch/arm/plat-mxc/Kconfig
index e2e3e5a..8bbc9c6 100644
--- a/arch/arm/plat-mxc/Kconfig
+++ b/arch/arm/plat-mxc/Kconfig
@@ -6,7 +6,7 @@  menu "Freescale MXC Implementations"
 
 choice
 	prompt "Freescale CPU family:"
-	default ARCH_MX3
+	default ARCH_IMX_V6_V7
 
 config ARCH_IMX_V4_V5
 	bool "i.MX1, i.MX21, i.MX25, i.MX27"
@@ -16,10 +16,13 @@  config ARCH_IMX_V4_V5
 	  This enables support for systems based on the Freescale i.MX ARMv4
 	  and ARMv5 SoCs
 
-config ARCH_MX3
-	bool "MX3-based"
+config ARCH_IMX_V6_V7
+	bool "i.MX3, i.MX6"
+	select AUTO_ZRELADDR
+	select ARM_PATCH_PHYS_VIRT
 	help
-	  This enables support for systems based on the Freescale i.MX3 family
+	  This enables support for systems based on the Freescale i.MX3 and i.MX6
+	  family.
 
 config ARCH_MX5
 	bool "i.MX50, i.MX51, i.MX53"
@@ -29,13 +32,6 @@  config ARCH_MX5
 	  This enables support for machines using Freescale's i.MX50 and i.MX51
 	  processors.
 
-config ARCH_MX6
-	bool "i.MX6"
-	select AUTO_ZRELADDR
-	select ARM_PATCH_PHYS_VIRT
-	help
-	  This enables support for systems based on the Freescale i.MX6 family
-
 endchoice
 
 source "arch/arm/mach-imx/Kconfig"