Patchwork [GIT,PULL] at91: soc for 3.10 #2

login
register
mail settings
Submitter Nicolas Ferre
Date March 27, 2013, 8:52 a.m.
Message ID <5152B357.3020500@atmel.com>
Download mbox
Permalink /patch/231613/
State New
Headers show

Pull-request

git://github.com/at91linux/linux-at91.git tags/at91-soc

Comments

Nicolas Ferre - March 27, 2013, 8:52 a.m.
Arnd, Olof,

A pull-request for 3.10 that is dedicated to the introduction of
Atmel's new Cortex-A5 based product: SAMA5D3.
This tag is built on top of the material already provided that resides on your
side in at91/cleanup branch.

Thanks, best regards,

The following changes since commit 9317960fa38ff50ac287904e4c751a169635ecbf:

  ARM: at91: renamme rm9200 dt file (2013-03-13 17:28:14 +0100)

are available in the git repository at:

  git://github.com/at91linux/linux-at91.git tags/at91-soc

for you to fetch changes up to 471c9e786596c4f028c67c7e9de0703b49cab2a9:

  ARM: at91: add defconfig for SAMA5 (2013-03-26 12:18:05 +0100)

----------------------------------------------------------------
Introduction of new Atmel Cortex-A5: SAMA5D3 family.
- Modify AT91 Kconfig to plit ARMv4/5 and ARMv7 arch
- Modify PMC driver (clocks)
- Core SAMA5 support
- Board file, DT files and defconfig

----------------------------------------------------------------
Ludovic Desroches (6):
      ARM: at91: change name template in AT91_SOC_START macro
      ARM: at91: add AT91_SAM9_TIME entry to select at91sam926x_time.c compilation
      ARM: at91: introduce the core type choice to split ARMv4/5 and ARMv7 arch
      ARM: at91: introduce SAMA5 support
      ARM: at91: dt: add device tree files for SAMA5D3 family
      ARM: at91: add defconfig for SAMA5

 arch/arm/boot/dts/Makefile                 |    5 +
 arch/arm/boot/dts/sama5d3.dtsi             | 1031 +++++++++++++++++++++++++++++++++++
 arch/arm/boot/dts/sama5d31ek.dts           |   51 ++
 arch/arm/boot/dts/sama5d33ek.dts           |   44 ++
 arch/arm/boot/dts/sama5d34ek.dts           |   61 +++
 arch/arm/boot/dts/sama5d35ek.dts           |   56 ++
 arch/arm/boot/dts/sama5d3xcm.dtsi          |   91 ++++
 arch/arm/boot/dts/sama5d3xdm.dtsi          |   42 ++
 arch/arm/boot/dts/sama5d3xmb.dtsi          |  166 ++++++
 arch/arm/configs/sama5_defconfig           |  181 ++++++
 arch/arm/mach-at91/Kconfig                 |   59 +-
 arch/arm/mach-at91/Makefile                |    7 +-
 arch/arm/mach-at91/at91rm9200.c            |    2 +-
 arch/arm/mach-at91/at91sam9260.c           |    2 +-
 arch/arm/mach-at91/at91sam9261.c           |    2 +-
 arch/arm/mach-at91/at91sam9263.c           |    2 +-
 arch/arm/mach-at91/at91sam9g45.c           |    2 +-
 arch/arm/mach-at91/at91sam9n12.c           |    2 +-
 arch/arm/mach-at91/at91sam9rl.c            |    2 +-
 arch/arm/mach-at91/at91sam9x5.c            |    2 +-
 arch/arm/mach-at91/board-dt-sama5.c        |   86 +++
 arch/arm/mach-at91/clock.c                 |  109 +++-
 arch/arm/mach-at91/clock.h                 |    2 +
 arch/arm/mach-at91/include/mach/at91_pmc.h |   18 +-
 arch/arm/mach-at91/include/mach/cpu.h      |   20 +
 arch/arm/mach-at91/include/mach/sama5d3.h  |   73 +++
 arch/arm/mach-at91/sama5d3.c               |  377 +++++++++++++
 arch/arm/mach-at91/setup.c                 |   27 +
 arch/arm/mach-at91/soc.h                   |    7 +-
 29 files changed, 2486 insertions(+), 43 deletions(-)
 create mode 100644 arch/arm/boot/dts/sama5d3.dtsi
 create mode 100644 arch/arm/boot/dts/sama5d31ek.dts
 create mode 100644 arch/arm/boot/dts/sama5d33ek.dts
 create mode 100644 arch/arm/boot/dts/sama5d34ek.dts
 create mode 100644 arch/arm/boot/dts/sama5d35ek.dts
 create mode 100644 arch/arm/boot/dts/sama5d3xcm.dtsi
 create mode 100644 arch/arm/boot/dts/sama5d3xdm.dtsi
 create mode 100644 arch/arm/boot/dts/sama5d3xmb.dtsi
 create mode 100644 arch/arm/configs/sama5_defconfig
 create mode 100644 arch/arm/mach-at91/board-dt-sama5.c
 create mode 100644 arch/arm/mach-at91/include/mach/sama5d3.h
 create mode 100644 arch/arm/mach-at91/sama5d3.c
Nicolas Ferre - March 28, 2013, 8:57 a.m.
On 03/27/2013 08:01 PM, Arnd Bergmann :
> On Wednesday 27 March 2013, Nicolas Ferre wrote:
> 
>> ----------------------------------------------------------------
>> Introduction of new Atmel Cortex-A5: SAMA5D3 family.
>> - Modify AT91 Kconfig to plit ARMv4/5 and ARMv7 arch
>> - Modify PMC driver (clocks)
>> - Core SAMA5 support
>> - Board file, DT files and defconfig
> 
> Looks really good. Olof said he'd take over merging tomorrow,
> so I'll leave it for him.
> 
>> ----------------------------------------------------------------
>> Ludovic Desroches (6):
>>       ARM: at91: change name template in AT91_SOC_START macro
>>       ARM: at91: add AT91_SAM9_TIME entry to select at91sam926x_time.c compilation
>>       ARM: at91: introduce the core type choice to split ARMv4/5 and ARMv7 arch
>>       ARM: at91: introduce SAMA5 support
>>       ARM: at91: dt: add device tree files for SAMA5D3 family
>>       ARM: at91: add defconfig for SAMA5
> 
> There is one obvious change that would be nice to include here,
> can you add this on top (either Nicolas or Olof)?

Yes, I include it in a v2 pull-request now.

Olof, can you please take this new one with Arnd's patch included?


> 8<---------
> Subject: ARM: at91: make ATAGS support conditional on CONFIG_ATAGS
> 
> We have the global CONFIG_ATAGS symbol that is used to determine
> whether ATAGS based boot is possible or not. Since we are
> splitting out the legacy boards from the main Kconfig on at91,
> we can use that symbol to easily hide the old options.
> 
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>

Acked-by: Nicolas Ferre <nicolas.ferre@atmel.com>


Thanks, a lot, bye,


> diff --git a/arch/arm/mach-at91/Kconfig b/arch/arm/mach-at91/Kconfig
> index 0280238..119a0a4 100644
> --- a/arch/arm/mach-at91/Kconfig
> +++ b/arch/arm/mach-at91/Kconfig
> @@ -137,8 +137,9 @@ config SOC_AT91SAM9N12
>  	  Select this if you are using Atmel's AT91SAM9N12 SoC.
>  
>  # ----------------------------------------------------------
> -
> +if ATAGS
>  source arch/arm/mach-at91/Kconfig.non_dt
> +endif
>  endif # SOC_SAM_V4_V5
>  
>  comment "Generic Board Type"
>
Olof Johansson - April 3, 2013, 12:26 a.m.
On Wed, Mar 27, 2013 at 12:01 PM, Arnd Bergmann <arnd@arndb.de> wrote:
> On Wednesday 27 March 2013, Nicolas Ferre wrote:
>
>> ----------------------------------------------------------------
>> Introduction of new Atmel Cortex-A5: SAMA5D3 family.
>> - Modify AT91 Kconfig to plit ARMv4/5 and ARMv7 arch
>> - Modify PMC driver (clocks)
>> - Core SAMA5 support
>> - Board file, DT files and defconfig
>
> Looks really good. Olof said he'd take over merging tomorrow,
> so I'll leave it for him.
>
>> ----------------------------------------------------------------
>> Ludovic Desroches (6):
>>       ARM: at91: change name template in AT91_SOC_START macro
>>       ARM: at91: add AT91_SAM9_TIME entry to select at91sam926x_time.c compilation
>>       ARM: at91: introduce the core type choice to split ARMv4/5 and ARMv7 arch
>>       ARM: at91: introduce SAMA5 support
>>       ARM: at91: dt: add device tree files for SAMA5D3 family
>>       ARM: at91: add defconfig for SAMA5
>
> There is one obvious change that would be nice to include here,
> can you add this on top (either Nicolas or Olof)?
>
> 8<---------
> Subject: ARM: at91: make ATAGS support conditional on CONFIG_ATAGS
>
> We have the global CONFIG_ATAGS symbol that is used to determine
> whether ATAGS based boot is possible or not. Since we are
> splitting out the legacy boards from the main Kconfig on at91,
> we can use that symbol to easily hide the old options.
>
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
>
> diff --git a/arch/arm/mach-at91/Kconfig b/arch/arm/mach-at91/Kconfig
> index 0280238..119a0a4 100644
> --- a/arch/arm/mach-at91/Kconfig
> +++ b/arch/arm/mach-at91/Kconfig
> @@ -137,8 +137,9 @@ config SOC_AT91SAM9N12
>           Select this if you are using Atmel's AT91SAM9N12 SoC.
>
>  # ----------------------------------------------------------
> -
> +if ATAGS
>  source arch/arm/mach-at91/Kconfig.non_dt
> +endif
>  endif # SOC_SAM_V4_V5
>
>  comment "Generic Board Type"

Actually, it's not that simple. With this patch, I get:

arch/arm/Kconfig:1841:error: recursive dependency detected!
arch/arm/Kconfig:1841:  symbol USE_OF is selected by MACH_AT91RM9200_DT
arch/arm/mach-at91/Kconfig:147: symbol MACH_AT91RM9200_DT depends on
SOC_AT91RM9200
arch/arm/mach-at91/Kconfig:74:  symbol SOC_AT91RM9200 is selected by
ARCH_AT91RM9200
arch/arm/mach-at91/Kconfig.non_dt:12:   symbol ARCH_AT91RM9200 is part
of choice <choice>
arch/arm/mach-at91/Kconfig.non_dt:6:    choice <choice> contains symbol <choice>
arch/arm/mach-at91/Kconfig.non_dt:6:    choice <choice> contains symbol ATAGS
arch/arm/Kconfig:1850:  symbol ATAGS depends on USE_OF

Also, USE_OF isn't set at that point (it's controlled by the next
section), so it can't be used as a replacement.

Also, isn't it a bit backwards in the first place to first set ATAGS
vs no-ATAGS, and then get to choose what hardware you want to build
for?

I'll take off the last patch from the branch and re-merge it (since I
hadn't pushed it out yet), the above can be sorted out separately.


-Olof
Nicolas Ferre - April 3, 2013, 7:22 a.m.
On 04/03/2013 02:26 AM, Olof Johansson :
> On Wed, Mar 27, 2013 at 12:01 PM, Arnd Bergmann <arnd@arndb.de> wrote:
>> On Wednesday 27 March 2013, Nicolas Ferre wrote:
>>
>>> ----------------------------------------------------------------
>>> Introduction of new Atmel Cortex-A5: SAMA5D3 family.
>>> - Modify AT91 Kconfig to plit ARMv4/5 and ARMv7 arch
>>> - Modify PMC driver (clocks)
>>> - Core SAMA5 support
>>> - Board file, DT files and defconfig
>>
>> Looks really good. Olof said he'd take over merging tomorrow,
>> so I'll leave it for him.
>>
>>> ----------------------------------------------------------------
>>> Ludovic Desroches (6):
>>>       ARM: at91: change name template in AT91_SOC_START macro
>>>       ARM: at91: add AT91_SAM9_TIME entry to select at91sam926x_time.c compilation
>>>       ARM: at91: introduce the core type choice to split ARMv4/5 and ARMv7 arch
>>>       ARM: at91: introduce SAMA5 support
>>>       ARM: at91: dt: add device tree files for SAMA5D3 family
>>>       ARM: at91: add defconfig for SAMA5
>>
>> There is one obvious change that would be nice to include here,
>> can you add this on top (either Nicolas or Olof)?
>>
>> 8<---------
>> Subject: ARM: at91: make ATAGS support conditional on CONFIG_ATAGS
>>
>> We have the global CONFIG_ATAGS symbol that is used to determine
>> whether ATAGS based boot is possible or not. Since we are
>> splitting out the legacy boards from the main Kconfig on at91,
>> we can use that symbol to easily hide the old options.
>>
>> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
>>
>> diff --git a/arch/arm/mach-at91/Kconfig b/arch/arm/mach-at91/Kconfig
>> index 0280238..119a0a4 100644
>> --- a/arch/arm/mach-at91/Kconfig
>> +++ b/arch/arm/mach-at91/Kconfig
>> @@ -137,8 +137,9 @@ config SOC_AT91SAM9N12
>>           Select this if you are using Atmel's AT91SAM9N12 SoC.
>>
>>  # ----------------------------------------------------------
>> -
>> +if ATAGS
>>  source arch/arm/mach-at91/Kconfig.non_dt
>> +endif
>>  endif # SOC_SAM_V4_V5
>>
>>  comment "Generic Board Type"
> 
> Actually, it's not that simple. With this patch, I get:
> 
> arch/arm/Kconfig:1841:error: recursive dependency detected!
> arch/arm/Kconfig:1841:  symbol USE_OF is selected by MACH_AT91RM9200_DT
> arch/arm/mach-at91/Kconfig:147: symbol MACH_AT91RM9200_DT depends on
> SOC_AT91RM9200
> arch/arm/mach-at91/Kconfig:74:  symbol SOC_AT91RM9200 is selected by
> ARCH_AT91RM9200
> arch/arm/mach-at91/Kconfig.non_dt:12:   symbol ARCH_AT91RM9200 is part
> of choice <choice>
> arch/arm/mach-at91/Kconfig.non_dt:6:    choice <choice> contains symbol <choice>
> arch/arm/mach-at91/Kconfig.non_dt:6:    choice <choice> contains symbol ATAGS
> arch/arm/Kconfig:1850:  symbol ATAGS depends on USE_OF
> 
> Also, USE_OF isn't set at that point (it's controlled by the next
> section), so it can't be used as a replacement.
> 
> Also, isn't it a bit backwards in the first place to first set ATAGS
> vs no-ATAGS, and then get to choose what hardware you want to build
> for?

True, I was thinking it was a common pattern.

> I'll take off the last patch from the branch and re-merge it (since I
> hadn't pushed it out yet), the above can be sorted out separately.

Thanks Olof for taking care about this! We will come back on this later
or simply decide that it is not worth it / not logical...

Best regards,
Arnd Bergmann - April 3, 2013, 10:02 a.m.
On Wednesday 03 April 2013, Nicolas Ferre wrote:
> > Also, USE_OF isn't set at that point (it's controlled by the next
> > section), so it can't be used as a replacement.
> > 
> > Also, isn't it a bit backwards in the first place to first set ATAGS
> > vs no-ATAGS, and then get to choose what hardware you want to build
> > for?
> 
> True, I was thinking it was a common pattern.

It's not common yet, but I want to get to the point where we can
globally disable ATAGS support for multiplatform kernels and get
only DT-enabled ones. There is no easy rule for when to select
or depend on a global feature, but there are a number of cases where
I think 'depends on' makes more sense in the long run.

Another example is CPU architecture level. Traditionally every
board selects CPU_v6 or CPU_v7, but in ARCH_MULTIPLATFORM, I created
a filter that lets you enable only one of them, and then pick all
the platforms that have the respective CPU, which is much easier
than having to know which platforms might be ARMv6 if you want to
build e.g. a kernel with THUMB2 support but as many boards enabled
as possible.

	Arnd