diff mbox

[v2,1/7] ARM: sunxi: Introduce Allwinner A80 support

Message ID 1411570141-29960-2-git-send-email-wens@csie.org (mailing list archive)
State New, archived
Headers show

Commit Message

Chen-Yu Tsai Sept. 24, 2014, 2:48 p.m. UTC
The Allwinner A80 is a new Cortex octo-core A7/A15 big.LITTLE SoC.
While it's processor cores and interconnecting bus are new, it
re-uses many peripherals found in earlier Allwinner SoCs.

Signed-off-by: Chen-Yu Tsai <wens@csie.org>
---
 arch/arm/mach-sunxi/Kconfig | 5 +++++
 arch/arm/mach-sunxi/sunxi.c | 9 +++++++++
 2 files changed, 14 insertions(+)

Comments

Maxime Ripard Sept. 25, 2014, 1:25 p.m. UTC | #1
On Wed, Sep 24, 2014 at 10:48:55PM +0800, Chen-Yu Tsai wrote:
> The Allwinner A80 is a new Cortex octo-core A7/A15 big.LITTLE SoC.
> While it's processor cores and interconnecting bus are new, it
> re-uses many peripherals found in earlier Allwinner SoCs.
> 
> Signed-off-by: Chen-Yu Tsai <wens@csie.org>
> ---
>  arch/arm/mach-sunxi/Kconfig | 5 +++++
>  arch/arm/mach-sunxi/sunxi.c | 9 +++++++++
>  2 files changed, 14 insertions(+)
> 
> diff --git a/arch/arm/mach-sunxi/Kconfig b/arch/arm/mach-sunxi/Kconfig
> index 1aaa1e1..72f222b 100644
> --- a/arch/arm/mach-sunxi/Kconfig
> +++ b/arch/arm/mach-sunxi/Kconfig
> @@ -42,4 +42,9 @@ config MACH_SUN8I
>  	select MFD_SUN6I_PRCM
>  	select RESET_CONTROLLER
>  
> +config MACH_SUN9I
> +	bool "Allwinner A80 (sun9i) SoCs support"

With the new naming scheme, I wonder wether it makes sense to have the
A80 displayed here and in the machine definition.
Chen-Yu Tsai Sept. 27, 2014, 1:16 p.m. UTC | #2
On Thu, Sep 25, 2014 at 9:25 PM, Maxime Ripard
<maxime.ripard@free-electrons.com> wrote:
> On Wed, Sep 24, 2014 at 10:48:55PM +0800, Chen-Yu Tsai wrote:
>> The Allwinner A80 is a new Cortex octo-core A7/A15 big.LITTLE SoC.
>> While it's processor cores and interconnecting bus are new, it
>> re-uses many peripherals found in earlier Allwinner SoCs.
>>
>> Signed-off-by: Chen-Yu Tsai <wens@csie.org>
>> ---
>>  arch/arm/mach-sunxi/Kconfig | 5 +++++
>>  arch/arm/mach-sunxi/sunxi.c | 9 +++++++++
>>  2 files changed, 14 insertions(+)
>>
>> diff --git a/arch/arm/mach-sunxi/Kconfig b/arch/arm/mach-sunxi/Kconfig
>> index 1aaa1e1..72f222b 100644
>> --- a/arch/arm/mach-sunxi/Kconfig
>> +++ b/arch/arm/mach-sunxi/Kconfig
>> @@ -42,4 +42,9 @@ config MACH_SUN8I
>>       select MFD_SUN6I_PRCM
>>       select RESET_CONTROLLER
>>
>> +config MACH_SUN9I
>> +     bool "Allwinner A80 (sun9i) SoCs support"
>
> With the new naming scheme, I wonder wether it makes sense to have the
> A80 displayed here and in the machine definition.

I expect anything that falls under sun9i to be compatible, or a trimmed
down version. But that's just me.

We know that Allwinner has released the A33, which should be compatible
with the A23, sun8i. And the A83 has been announced, which looks like
a trimmed down version of the A80. The next SoC should be arm64, and
would not matter here.

Kevin, Shuge, could you provide us with the codenames for the A33 and
A83, and what earlier SoC they are based on?


Thanks
ChenYu
Maxime Ripard Oct. 1, 2014, 9:33 a.m. UTC | #3
On Sat, Sep 27, 2014 at 09:16:02PM +0800, Chen-Yu Tsai wrote:
> On Thu, Sep 25, 2014 at 9:25 PM, Maxime Ripard
> <maxime.ripard@free-electrons.com> wrote:
> > On Wed, Sep 24, 2014 at 10:48:55PM +0800, Chen-Yu Tsai wrote:
> >> The Allwinner A80 is a new Cortex octo-core A7/A15 big.LITTLE SoC.
> >> While it's processor cores and interconnecting bus are new, it
> >> re-uses many peripherals found in earlier Allwinner SoCs.
> >>
> >> Signed-off-by: Chen-Yu Tsai <wens@csie.org>
> >> ---
> >>  arch/arm/mach-sunxi/Kconfig | 5 +++++
> >>  arch/arm/mach-sunxi/sunxi.c | 9 +++++++++
> >>  2 files changed, 14 insertions(+)
> >>
> >> diff --git a/arch/arm/mach-sunxi/Kconfig b/arch/arm/mach-sunxi/Kconfig
> >> index 1aaa1e1..72f222b 100644
> >> --- a/arch/arm/mach-sunxi/Kconfig
> >> +++ b/arch/arm/mach-sunxi/Kconfig
> >> @@ -42,4 +42,9 @@ config MACH_SUN8I
> >>       select MFD_SUN6I_PRCM
> >>       select RESET_CONTROLLER
> >>
> >> +config MACH_SUN9I
> >> +     bool "Allwinner A80 (sun9i) SoCs support"
> >
> > With the new naming scheme, I wonder wether it makes sense to have the
> > A80 displayed here and in the machine definition.
> 
> I expect anything that falls under sun9i to be compatible, or a trimmed
> down version. But that's just me.

Well, compatible is a rather vague notion. They will be different for
sure. Maybe not that different, but still.

> We know that Allwinner has released the A33, which should be compatible
> with the A23, sun8i.

Except that it would not be straight forward for an A33 user for
example that he needs to enable the A23 support.

> And the A83 has been announced, which looks like a trimmed down
> version of the A80. The next SoC should be arm64, and would not
> matter here.
> 
> Kevin, Shuge, could you provide us with the codenames for the A33 and
> A83, and what earlier SoC they are based on?

Even though it would be nice to know, it's not really the issue here.

Maxime
Chen-Yu Tsai Oct. 3, 2014, 6:23 a.m. UTC | #4
On Wed, Oct 1, 2014 at 5:33 PM, Maxime Ripard
<maxime.ripard@free-electrons.com> wrote:
> On Sat, Sep 27, 2014 at 09:16:02PM +0800, Chen-Yu Tsai wrote:
>> On Thu, Sep 25, 2014 at 9:25 PM, Maxime Ripard
>> <maxime.ripard@free-electrons.com> wrote:
>> > On Wed, Sep 24, 2014 at 10:48:55PM +0800, Chen-Yu Tsai wrote:
>> >> The Allwinner A80 is a new Cortex octo-core A7/A15 big.LITTLE SoC.
>> >> While it's processor cores and interconnecting bus are new, it
>> >> re-uses many peripherals found in earlier Allwinner SoCs.
>> >>
>> >> Signed-off-by: Chen-Yu Tsai <wens@csie.org>
>> >> ---
>> >>  arch/arm/mach-sunxi/Kconfig | 5 +++++
>> >>  arch/arm/mach-sunxi/sunxi.c | 9 +++++++++
>> >>  2 files changed, 14 insertions(+)
>> >>
>> >> diff --git a/arch/arm/mach-sunxi/Kconfig b/arch/arm/mach-sunxi/Kconfig
>> >> index 1aaa1e1..72f222b 100644
>> >> --- a/arch/arm/mach-sunxi/Kconfig
>> >> +++ b/arch/arm/mach-sunxi/Kconfig
>> >> @@ -42,4 +42,9 @@ config MACH_SUN8I
>> >>       select MFD_SUN6I_PRCM
>> >>       select RESET_CONTROLLER
>> >>
>> >> +config MACH_SUN9I
>> >> +     bool "Allwinner A80 (sun9i) SoCs support"
>> >
>> > With the new naming scheme, I wonder wether it makes sense to have the
>> > A80 displayed here and in the machine definition.
>>
>> I expect anything that falls under sun9i to be compatible, or a trimmed
>> down version. But that's just me.
>
> Well, compatible is a rather vague notion. They will be different for
> sure. Maybe not that different, but still.

So what you're saying is we have a MACH_* Kconfig symbol for each SoC.
As we add or test drivers, we mark them as compatible by adding that
symbol to the DEPENDS part?

I can live with that.

>> We know that Allwinner has released the A33, which should be compatible
>> with the A23, sun8i.
>
> Except that it would not be straight forward for an A33 user for
> example that he needs to enable the A23 support.

Having the SoC name in the description should be enough. But I
suppose having the SoC name in the symbol is better, as it is
searchable?

Is this what you want? I think it's a good idea.


ChenYu

>> And the A83 has been announced, which looks like a trimmed down
>> version of the A80. The next SoC should be arm64, and would not
>> matter here.
>>
>> Kevin, Shuge, could you provide us with the codenames for the A33 and
>> A83, and what earlier SoC they are based on?
>
> Even though it would be nice to know, it's not really the issue here.
Maxime Ripard Oct. 7, 2014, 8:11 p.m. UTC | #5
On Fri, Oct 03, 2014 at 02:23:03PM +0800, Chen-Yu Tsai wrote:
> On Wed, Oct 1, 2014 at 5:33 PM, Maxime Ripard
> <maxime.ripard@free-electrons.com> wrote:
> > On Sat, Sep 27, 2014 at 09:16:02PM +0800, Chen-Yu Tsai wrote:
> >> On Thu, Sep 25, 2014 at 9:25 PM, Maxime Ripard
> >> <maxime.ripard@free-electrons.com> wrote:
> >> > On Wed, Sep 24, 2014 at 10:48:55PM +0800, Chen-Yu Tsai wrote:
> >> >> The Allwinner A80 is a new Cortex octo-core A7/A15 big.LITTLE SoC.
> >> >> While it's processor cores and interconnecting bus are new, it
> >> >> re-uses many peripherals found in earlier Allwinner SoCs.
> >> >>
> >> >> Signed-off-by: Chen-Yu Tsai <wens@csie.org>
> >> >> ---
> >> >>  arch/arm/mach-sunxi/Kconfig | 5 +++++
> >> >>  arch/arm/mach-sunxi/sunxi.c | 9 +++++++++
> >> >>  2 files changed, 14 insertions(+)
> >> >>
> >> >> diff --git a/arch/arm/mach-sunxi/Kconfig b/arch/arm/mach-sunxi/Kconfig
> >> >> index 1aaa1e1..72f222b 100644
> >> >> --- a/arch/arm/mach-sunxi/Kconfig
> >> >> +++ b/arch/arm/mach-sunxi/Kconfig
> >> >> @@ -42,4 +42,9 @@ config MACH_SUN8I
> >> >>       select MFD_SUN6I_PRCM
> >> >>       select RESET_CONTROLLER
> >> >>
> >> >> +config MACH_SUN9I
> >> >> +     bool "Allwinner A80 (sun9i) SoCs support"
> >> >
> >> > With the new naming scheme, I wonder wether it makes sense to have the
> >> > A80 displayed here and in the machine definition.
> >>
> >> I expect anything that falls under sun9i to be compatible, or a trimmed
> >> down version. But that's just me.
> >
> > Well, compatible is a rather vague notion. They will be different for
> > sure. Maybe not that different, but still.
> 
> So what you're saying is we have a MACH_* Kconfig symbol for each SoC.
> As we add or test drivers, we mark them as compatible by adding that
> symbol to the DEPENDS part?
> 
> I can live with that.

No, what I'm saying is drop the A80 mention from the bool label, and
only leave the family there.

Maxime
diff mbox

Patch

diff --git a/arch/arm/mach-sunxi/Kconfig b/arch/arm/mach-sunxi/Kconfig
index 1aaa1e1..72f222b 100644
--- a/arch/arm/mach-sunxi/Kconfig
+++ b/arch/arm/mach-sunxi/Kconfig
@@ -42,4 +42,9 @@  config MACH_SUN8I
 	select MFD_SUN6I_PRCM
 	select RESET_CONTROLLER
 
+config MACH_SUN9I
+	bool "Allwinner A80 (sun9i) SoCs support"
+	default ARCH_SUNXI
+	select ARM_GIC
+
 endif
diff --git a/arch/arm/mach-sunxi/sunxi.c b/arch/arm/mach-sunxi/sunxi.c
index 42d4753..4bd2117 100644
--- a/arch/arm/mach-sunxi/sunxi.c
+++ b/arch/arm/mach-sunxi/sunxi.c
@@ -139,3 +139,12 @@  static const char * const sun8i_board_dt_compat[] = {
 DT_MACHINE_START(SUN8I_DT, "Allwinner sun8i (A23) Family")
 	.dt_compat	= sun8i_board_dt_compat,
 MACHINE_END
+
+static const char * const sun9i_board_dt_compat[] = {
+	"allwinner,sun9i-a80",
+	NULL,
+};
+
+DT_MACHINE_START(SUN9I_DT, "Allwinner sun9i (A80) Family")
+	.dt_compat	= sun9i_board_dt_compat,
+MACHINE_END