diff mbox

[PATCHv6] ARM: dts: add exynos5422-cpus.dtsi to correct cpu order

Message ID 1436833441-8405-1-git-send-email-parkch98@gmail.com (mailing list archive)
State New, archived
Headers show

Commit Message

Chanho Park July 14, 2015, 12:24 a.m. UTC
The odroid-xu3 board which is based on exynos5422 not exynos5800 is
booted from cortex-a7 core unlike exynos5800. The odroid-xu3's cpu order
is quite strange. cpu0 and cpu5-7 are cortex-a7 cores and cpu1-4 are
cortex-a15 cores. To correct this mis-odering, I added exynos5422-cpus.dtsi
and reversing cpu orders from exynos5420. Now, cpu0-3 are cortex-a7 and
cpu4-7 are cortex-a15.

Reviewed-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
Signed-off-by: Chanho Park <parkch98@gmail.com>
---
Change from v4:
 - Resend patch with correct signed-off

Changes from v4:
 - Remove temporal patch in e-mail body

Changes from v3:
 - include this exynos5422-cpus.dtsi in the exynos5422-odroidxu3-common.dtsi

Changes from v2:
 - drop inclusion of exynos5420.dtsi from exynos5422-cpus.dtsi
 - drop compatibles from exynos5422-cpus.dtsi

Changes from v1:
 - rename exynos5422.dtsi to exynos5422-cpus.dtsi
 - include the dtsi file top of the exynos5422-odroidxu3.dts

Secondary cpu booting problem[1] is not resolved yet. Need more investigations
to work booting 8 cores correctly.

[1]: http://www.spinics.net/lists/linux-samsung-soc/msg45525.html

 arch/arm/boot/dts/exynos5422-cpus.dtsi             | 81 ++++++++++++++++++++++
 arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi |  1 +
 2 files changed, 82 insertions(+)
 create mode 100644 arch/arm/boot/dts/exynos5422-cpus.dtsi

Comments

Krzysztof Kozlowski July 14, 2015, 12:48 a.m. UTC | #1
On 14.07.2015 09:24, Chanho Park wrote:
> The odroid-xu3 board which is based on exynos5422 not exynos5800 is
> booted from cortex-a7 core unlike exynos5800. The odroid-xu3's cpu order
> is quite strange. cpu0 and cpu5-7 are cortex-a7 cores and cpu1-4 are
> cortex-a15 cores. To correct this mis-odering, I added exynos5422-cpus.dtsi
> and reversing cpu orders from exynos5420. Now, cpu0-3 are cortex-a7 and
> cpu4-7 are cortex-a15.
> 
> Reviewed-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
> Signed-off-by: Chanho Park <parkch98@gmail.com>
> ---
> Change from v4:
>  - Resend patch with correct signed-off
> 
> Changes from v4:
>  - Remove temporal patch in e-mail body
> 
> Changes from v3:
>  - include this exynos5422-cpus.dtsi in the exynos5422-odroidxu3-common.dtsi
> 
> Changes from v2:
>  - drop inclusion of exynos5420.dtsi from exynos5422-cpus.dtsi
>  - drop compatibles from exynos5422-cpus.dtsi
> 
> Changes from v1:
>  - rename exynos5422.dtsi to exynos5422-cpus.dtsi
>  - include the dtsi file top of the exynos5422-odroidxu3.dts
> 
> Secondary cpu booting problem[1] is not resolved yet. Need more investigations
> to work booting 8 cores correctly.
> 
> [1]: http://www.spinics.net/lists/linux-samsung-soc/msg45525.html
> 
>  arch/arm/boot/dts/exynos5422-cpus.dtsi             | 81 ++++++++++++++++++++++
>  arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi |  1 +
>  2 files changed, 82 insertions(+)
>  create mode 100644 arch/arm/boot/dts/exynos5422-cpus.dtsi

Thanks, applied to my tree. I'll send it to Kukjin for v4.3 unless he
picks it also.

Best regards,
Krzysztof
kgene@kernel.org July 14, 2015, 5:04 a.m. UTC | #2
Krzysztof Kozlowski wrote:
> 
> On 14.07.2015 09:24, Chanho Park wrote:
> > The odroid-xu3 board which is based on exynos5422 not exynos5800 is
> > booted from cortex-a7 core unlike exynos5800. The odroid-xu3's cpu order
> > is quite strange. cpu0 and cpu5-7 are cortex-a7 cores and cpu1-4 are
> > cortex-a15 cores. To correct this mis-odering, I added exynos5422-cpus.dtsi
> > and reversing cpu orders from exynos5420. Now, cpu0-3 are cortex-a7 and
> > cpu4-7 are cortex-a15.
> >
> > Reviewed-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
> > Signed-off-by: Chanho Park <parkch98@gmail.com>
> > ---
> > Change from v4:
> >  - Resend patch with correct signed-off
> >
> > Changes from v4:
> >  - Remove temporal patch in e-mail body
> >
> > Changes from v3:
> >  - include this exynos5422-cpus.dtsi in the exynos5422-odroidxu3-common.dtsi
> >
> > Changes from v2:
> >  - drop inclusion of exynos5420.dtsi from exynos5422-cpus.dtsi
> >  - drop compatibles from exynos5422-cpus.dtsi
> >
> > Changes from v1:
> >  - rename exynos5422.dtsi to exynos5422-cpus.dtsi
> >  - include the dtsi file top of the exynos5422-odroidxu3.dts
> >
> > Secondary cpu booting problem[1] is not resolved yet. Need more investigations
> > to work booting 8 cores correctly.
> >
> > [1]: http://www.spinics.net/lists/linux-samsung-soc/msg45525.html
> >
> >  arch/arm/boot/dts/exynos5422-cpus.dtsi             | 81 ++++++++++++++++++++++
> >  arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi |  1 +
> >  2 files changed, 82 insertions(+)
> >  create mode 100644 arch/arm/boot/dts/exynos5422-cpus.dtsi
> 
> Thanks, applied to my tree. I'll send it to Kukjin for v4.3 unless he
> picks it also.
> 
Well, let me see. I'm thinking we need to sort out the cpu ordering and dtsi
inclusions for exynos5420, 5422 and 5800 related to DT files.

See, 

1) exynos5420 DT (cpu0~3: a15, cpu 4~7: a7)
2) exynos5800 DT is including exynos5420 DT
3) exynos5422 and exynos5800 based boards are including exynos5800 DT.

Then making exynos5422-cpus DT for exynos5422 based boards?
(cpu0~3: a7, cpu4~7: a15)

I think, it could cause confusion when new board based on them are added
because it's not clear and the boot cpu could be selected by bootloader part.

So how about creating exynos5422-cpus and exynos5420-cpus then including the
cpus DT file in each board accordingly?

Or more clear way to avoid confusion?

- Kukjin
Mauro Ribeiro July 14, 2015, 5:36 a.m. UTC | #3
In my opinion since its something configurable by the board and not
SoC specific it should be defined (or re-defined) on the board dts.

If one makes a 5422 board booting from A15's that patch will be
already invalid and causing the issue that it fixes.


2015-07-14 2:04 GMT-03:00 Kukjin Kim <kgene@kernel.org>:
> Krzysztof Kozlowski wrote:
>>
>> On 14.07.2015 09:24, Chanho Park wrote:
>> > The odroid-xu3 board which is based on exynos5422 not exynos5800 is
>> > booted from cortex-a7 core unlike exynos5800. The odroid-xu3's cpu order
>> > is quite strange. cpu0 and cpu5-7 are cortex-a7 cores and cpu1-4 are
>> > cortex-a15 cores. To correct this mis-odering, I added exynos5422-cpus.dtsi
>> > and reversing cpu orders from exynos5420. Now, cpu0-3 are cortex-a7 and
>> > cpu4-7 are cortex-a15.
>> >
>> > Reviewed-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
>> > Signed-off-by: Chanho Park <parkch98@gmail.com>
>> > ---
>> > Change from v4:
>> >  - Resend patch with correct signed-off
>> >
>> > Changes from v4:
>> >  - Remove temporal patch in e-mail body
>> >
>> > Changes from v3:
>> >  - include this exynos5422-cpus.dtsi in the exynos5422-odroidxu3-common.dtsi
>> >
>> > Changes from v2:
>> >  - drop inclusion of exynos5420.dtsi from exynos5422-cpus.dtsi
>> >  - drop compatibles from exynos5422-cpus.dtsi
>> >
>> > Changes from v1:
>> >  - rename exynos5422.dtsi to exynos5422-cpus.dtsi
>> >  - include the dtsi file top of the exynos5422-odroidxu3.dts
>> >
>> > Secondary cpu booting problem[1] is not resolved yet. Need more investigations
>> > to work booting 8 cores correctly.
>> >
>> > [1]: http://www.spinics.net/lists/linux-samsung-soc/msg45525.html
>> >
>> >  arch/arm/boot/dts/exynos5422-cpus.dtsi             | 81 ++++++++++++++++++++++
>> >  arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi |  1 +
>> >  2 files changed, 82 insertions(+)
>> >  create mode 100644 arch/arm/boot/dts/exynos5422-cpus.dtsi
>>
>> Thanks, applied to my tree. I'll send it to Kukjin for v4.3 unless he
>> picks it also.
>>
> Well, let me see. I'm thinking we need to sort out the cpu ordering and dtsi
> inclusions for exynos5420, 5422 and 5800 related to DT files.
>
> See,
>
> 1) exynos5420 DT (cpu0~3: a15, cpu 4~7: a7)
> 2) exynos5800 DT is including exynos5420 DT
> 3) exynos5422 and exynos5800 based boards are including exynos5800 DT.
>
> Then making exynos5422-cpus DT for exynos5422 based boards?
> (cpu0~3: a7, cpu4~7: a15)
>
> I think, it could cause confusion when new board based on them are added
> because it's not clear and the boot cpu could be selected by bootloader part.
>
> So how about creating exynos5422-cpus and exynos5420-cpus then including the
> cpus DT file in each board accordingly?
>
> Or more clear way to avoid confusion?
>
> - Kukjin
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
Krzysztof Kozlowski July 14, 2015, 6:28 a.m. UTC | #4
On 14.07.2015 14:36, Mauro Ribeiro wrote:
> In my opinion since its something configurable by the board and not
> SoC specific it should be defined (or re-defined) on the board dts.
> 
> If one makes a 5422 board booting from A15's that patch will be
> already invalid and causing the issue that it fixes.

Indeed this is configurable by the board. For Odroid XU3 this is fixed
(hard-wired) but other boards may have it in different way. We already
discussed this and Chanho Park is here:
http://www.spinics.net/lists/linux-samsung-soc/msg44924.html
http://www.spinics.net/lists/linux-samsung-soc/msg44930.html

There were no additional objections to the patchset in that time.

Best regards,
Krzysztof
Chanho Park July 14, 2015, 7:13 a.m. UTC | #5
Hi Kukjin,

On Tue, Jul 14, 2015 at 2:04 PM, Kukjin Kim <kgene@kernel.org> wrote:
> Krzysztof Kozlowski wrote:
>>
>> On 14.07.2015 09:24, Chanho Park wrote:
>> > The odroid-xu3 board which is based on exynos5422 not exynos5800 is
>> > booted from cortex-a7 core unlike exynos5800. The odroid-xu3's cpu order
>> > is quite strange. cpu0 and cpu5-7 are cortex-a7 cores and cpu1-4 are
>> > cortex-a15 cores. To correct this mis-odering, I added exynos5422-cpus.dtsi
>> > and reversing cpu orders from exynos5420. Now, cpu0-3 are cortex-a7 and
>> > cpu4-7 are cortex-a15.
>> >
>> > Reviewed-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
>> > Signed-off-by: Chanho Park <parkch98@gmail.com>
>> > ---
>> > Change from v4:
>> >  - Resend patch with correct signed-off
>> >
>> > Changes from v4:
>> >  - Remove temporal patch in e-mail body
>> >
>> > Changes from v3:
>> >  - include this exynos5422-cpus.dtsi in the exynos5422-odroidxu3-common.dtsi
>> >
>> > Changes from v2:
>> >  - drop inclusion of exynos5420.dtsi from exynos5422-cpus.dtsi
>> >  - drop compatibles from exynos5422-cpus.dtsi
>> >
>> > Changes from v1:
>> >  - rename exynos5422.dtsi to exynos5422-cpus.dtsi
>> >  - include the dtsi file top of the exynos5422-odroidxu3.dts
>> >
>> > Secondary cpu booting problem[1] is not resolved yet. Need more investigations
>> > to work booting 8 cores correctly.
>> >
>> > [1]: http://www.spinics.net/lists/linux-samsung-soc/msg45525.html
>> >
>> >  arch/arm/boot/dts/exynos5422-cpus.dtsi             | 81 ++++++++++++++++++++++
>> >  arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi |  1 +
>> >  2 files changed, 82 insertions(+)
>> >  create mode 100644 arch/arm/boot/dts/exynos5422-cpus.dtsi
>>
>> Thanks, applied to my tree. I'll send it to Kukjin for v4.3 unless he
>> picks it also.
>>
> Well, let me see. I'm thinking we need to sort out the cpu ordering and dtsi
> inclusions for exynos5420, 5422 and 5800 related to DT files.
>
> See,
>
> 1) exynos5420 DT (cpu0~3: a15, cpu 4~7: a7)
> 2) exynos5800 DT is including exynos5420 DT
> 3) exynos5422 and exynos5800 based boards are including exynos5800 DT.
>
> Then making exynos5422-cpus DT for exynos5422 based boards?
> (cpu0~3: a7, cpu4~7: a15)
>
> I think, it could cause confusion when new board based on them are added
> because it's not clear and the boot cpu could be selected by bootloader part.

The iROM will check the GPIO pin to select which core is run as cpu0.
I think no one will change the GPIO pin if a new board which is based
on exynos5422 :)

>
> So how about creating exynos5422-cpus and exynos5420-cpus then including the
> cpus DT file in each board accordingly?
>
> Or more clear way to avoid confusion?

In this situation, all exynos5422 boards(odroid xu3 series and mobile
phone) have same cpu configurations. If we move the exynos5420 cpu
configuration from exynos5420.dtsi, we should change all dts which
including exynos5420.dtsi.
I think we'd better to defer the change until a new exynos5422 board
which has different cpu configurations is added.
kgene@kernel.org July 14, 2015, 8:23 a.m. UTC | #6
Chanho Park wrote:
> 
> Hi Kukjin,
> 
> On Tue, Jul 14, 2015 at 2:04 PM, Kukjin Kim <kgene@kernel.org> wrote:
> > Krzysztof Kozlowski wrote:
> >>
> >> On 14.07.2015 09:24, Chanho Park wrote:
> >> > The odroid-xu3 board which is based on exynos5422 not exynos5800 is
> >> > booted from cortex-a7 core unlike exynos5800. The odroid-xu3's cpu order
> >> > is quite strange. cpu0 and cpu5-7 are cortex-a7 cores and cpu1-4 are
> >> > cortex-a15 cores. To correct this mis-odering, I added exynos5422-cpus.dtsi
> >> > and reversing cpu orders from exynos5420. Now, cpu0-3 are cortex-a7 and
> >> > cpu4-7 are cortex-a15.
> >> >
> >> > Reviewed-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
> >> > Signed-off-by: Chanho Park <parkch98@gmail.com>
> >> > ---

[...]

> >> >
> >> > Secondary cpu booting problem[1] is not resolved yet. Need more investigations
> >> > to work booting 8 cores correctly.
> >> >
> >> > [1]: http://www.spinics.net/lists/linux-samsung-soc/msg45525.html
> >> >
> >> >  arch/arm/boot/dts/exynos5422-cpus.dtsi             | 81 ++++++++++++++++++++++
> >> >  arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi |  1 +
> >> >  2 files changed, 82 insertions(+)
> >> >  create mode 100644 arch/arm/boot/dts/exynos5422-cpus.dtsi
> >>
> >> Thanks, applied to my tree. I'll send it to Kukjin for v4.3 unless he
> >> picks it also.
> >>
> > Well, let me see. I'm thinking we need to sort out the cpu ordering and dtsi
> > inclusions for exynos5420, 5422 and 5800 related to DT files.
> >
> > See,
> >
> > 1) exynos5420 DT (cpu0~3: a15, cpu 4~7: a7)
> > 2) exynos5800 DT is including exynos5420 DT
> > 3) exynos5422 and exynos5800 based boards are including exynos5800 DT.
> >
> > Then making exynos5422-cpus DT for exynos5422 based boards?
> > (cpu0~3: a7, cpu4~7: a15)
> >
> > I think, it could cause confusion when new board based on them are added
> > because it's not clear and the boot cpu could be selected by bootloader part.
> 
> The iROM will check the GPIO pin to select which core is run as cpu0.
> I think no one will change the GPIO pin if a new board which is based
> on exynos5422 :)
> 
Yes, I know the boot sequence and it means it depends on board configuration
not SoC. That’s why I'm saying it should be handled in board DT file. I think,
most of current exynos big.LITTLE model should do if it could be changed
according to board configuration.

> >
> > So how about creating exynos5422-cpus and exynos5420-cpus then including the
> > cpus DT file in each board accordingly?
> >
> > Or more clear way to avoid confusion?
> 
> In this situation, all exynos5422 boards(odroid xu3 series and mobile
> phone) have same cpu configurations. If we move the exynos5420 cpu
> configuration from exynos5420.dtsi, we should change all dts which
> including exynos5420.dtsi.

Maybe same board configuration. Just adding inclusion should be fine at this
moment.

> I think we'd better to defer the change until a new exynos5422 board
> which has different cpu configurations is added.
> 
I mean, according to current inclusion of exynos5422 based boards' DT file, it
is including exynos5420 DT via exynos5800 DT and then override different cpu
ordering (5422-cpu DT) because of different board configuration (just GPIO
value) and it is not a good way in this case.

- Kukjin
Chanho Park July 14, 2015, 12:28 p.m. UTC | #7
Hi,

On Tue, Jul 14, 2015 at 5:23 PM, Kukjin Kim <kgene@kernel.org> wrote:
> Chanho Park wrote:
>>
>> Hi Kukjin,
>>
>> On Tue, Jul 14, 2015 at 2:04 PM, Kukjin Kim <kgene@kernel.org> wrote:
>> > Krzysztof Kozlowski wrote:
>> >>
>> >> On 14.07.2015 09:24, Chanho Park wrote:
>> >> > The odroid-xu3 board which is based on exynos5422 not exynos5800 is
>> >> > booted from cortex-a7 core unlike exynos5800. The odroid-xu3's cpu order
>> >> > is quite strange. cpu0 and cpu5-7 are cortex-a7 cores and cpu1-4 are
>> >> > cortex-a15 cores. To correct this mis-odering, I added exynos5422-cpus.dtsi
>> >> > and reversing cpu orders from exynos5420. Now, cpu0-3 are cortex-a7 and
>> >> > cpu4-7 are cortex-a15.
>> >> >
>> >> > Reviewed-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
>> >> > Signed-off-by: Chanho Park <parkch98@gmail.com>
>> >> > ---
>
> [...]
>
>> >> >
>> >> > Secondary cpu booting problem[1] is not resolved yet. Need more investigations
>> >> > to work booting 8 cores correctly.
>> >> >
>> >> > [1]: http://www.spinics.net/lists/linux-samsung-soc/msg45525.html
>> >> >
>> >> >  arch/arm/boot/dts/exynos5422-cpus.dtsi             | 81 ++++++++++++++++++++++
>> >> >  arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi |  1 +
>> >> >  2 files changed, 82 insertions(+)
>> >> >  create mode 100644 arch/arm/boot/dts/exynos5422-cpus.dtsi
>> >>
>> >> Thanks, applied to my tree. I'll send it to Kukjin for v4.3 unless he
>> >> picks it also.
>> >>
>> > Well, let me see. I'm thinking we need to sort out the cpu ordering and dtsi
>> > inclusions for exynos5420, 5422 and 5800 related to DT files.
>> >
>> > See,
>> >
>> > 1) exynos5420 DT (cpu0~3: a15, cpu 4~7: a7)
>> > 2) exynos5800 DT is including exynos5420 DT
>> > 3) exynos5422 and exynos5800 based boards are including exynos5800 DT.
>> >
>> > Then making exynos5422-cpus DT for exynos5422 based boards?
>> > (cpu0~3: a7, cpu4~7: a15)
>> >
>> > I think, it could cause confusion when new board based on them are added
>> > because it's not clear and the boot cpu could be selected by bootloader part.
>>
>> The iROM will check the GPIO pin to select which core is run as cpu0.
>> I think no one will change the GPIO pin if a new board which is based
>> on exynos5422 :)
>>
> Yes, I know the boot sequence and it means it depends on board configuration
> not SoC. That’s why I'm saying it should be handled in board DT file. I think,
> most of current exynos big.LITTLE model should do if it could be changed
> according to board configuration.

I also agreed it's not a SoC configuration since second
patch(exynos5422.dtsi -> exynos5422-cpu.dtsi).

>
>> >
>> > So how about creating exynos5422-cpus and exynos5420-cpus then including the
>> > cpus DT file in each board accordingly?
>> >
>> > Or more clear way to avoid confusion?
>>
>> In this situation, all exynos5422 boards(odroid xu3 series and mobile
>> phone) have same cpu configurations. If we move the exynos5420 cpu
>> configuration from exynos5420.dtsi, we should change all dts which
>> including exynos5420.dtsi.
>
> Maybe same board configuration. Just adding inclusion should be fine at this
> moment.
>
>> I think we'd better to defer the change until a new exynos5422 board
>> which has different cpu configurations is added.
>>
> I mean, according to current inclusion of exynos5422 based boards' DT file, it
> is including exynos5420 DT via exynos5800 DT and then override different cpu
> ordering (5422-cpu DT) because of different board configuration (just GPIO
> value) and it is not a good way in this case.

Actually, I don't want to disturb current dts hierarchy even though it
looks strange. The common features of exynos5800 and exynos5422 should
be in the exynos5800.dtsi because they shared many things except the
cpu order.
Please consider the exynos5422-cpu.dtsi is just board configurations
to represent cpu order.
Krzysztof Kozlowski July 16, 2015, 2:02 a.m. UTC | #8
2015-07-14 21:28 GMT+09:00 Chanho Park <parkch98@gmail.com>:
> Hi,
>
> On Tue, Jul 14, 2015 at 5:23 PM, Kukjin Kim <kgene@kernel.org> wrote:
>> Chanho Park wrote:
>>>
>>> Hi Kukjin,
>>>
>>> On Tue, Jul 14, 2015 at 2:04 PM, Kukjin Kim <kgene@kernel.org> wrote:
>>> > Krzysztof Kozlowski wrote:
>>> >>
>>> >> On 14.07.2015 09:24, Chanho Park wrote:
>>> >> > The odroid-xu3 board which is based on exynos5422 not exynos5800 is
>>> >> > booted from cortex-a7 core unlike exynos5800. The odroid-xu3's cpu order
>>> >> > is quite strange. cpu0 and cpu5-7 are cortex-a7 cores and cpu1-4 are
>>> >> > cortex-a15 cores. To correct this mis-odering, I added exynos5422-cpus.dtsi
>>> >> > and reversing cpu orders from exynos5420. Now, cpu0-3 are cortex-a7 and
>>> >> > cpu4-7 are cortex-a15.
>>> >> >
>>> >> > Reviewed-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
>>> >> > Signed-off-by: Chanho Park <parkch98@gmail.com>
>>> >> > ---
>>
>> [...]
>>
>>> >> >
>>> >> > Secondary cpu booting problem[1] is not resolved yet. Need more investigations
>>> >> > to work booting 8 cores correctly.
>>> >> >
>>> >> > [1]: http://www.spinics.net/lists/linux-samsung-soc/msg45525.html
>>> >> >
>>> >> >  arch/arm/boot/dts/exynos5422-cpus.dtsi             | 81 ++++++++++++++++++++++
>>> >> >  arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi |  1 +
>>> >> >  2 files changed, 82 insertions(+)
>>> >> >  create mode 100644 arch/arm/boot/dts/exynos5422-cpus.dtsi
>>> >>
>>> >> Thanks, applied to my tree. I'll send it to Kukjin for v4.3 unless he
>>> >> picks it also.
>>> >>
>>> > Well, let me see. I'm thinking we need to sort out the cpu ordering and dtsi
>>> > inclusions for exynos5420, 5422 and 5800 related to DT files.
>>> >
>>> > See,
>>> >
>>> > 1) exynos5420 DT (cpu0~3: a15, cpu 4~7: a7)
>>> > 2) exynos5800 DT is including exynos5420 DT
>>> > 3) exynos5422 and exynos5800 based boards are including exynos5800 DT.
>>> >
>>> > Then making exynos5422-cpus DT for exynos5422 based boards?
>>> > (cpu0~3: a7, cpu4~7: a15)
>>> >
>>> > I think, it could cause confusion when new board based on them are added
>>> > because it's not clear and the boot cpu could be selected by bootloader part.
>>>
>>> The iROM will check the GPIO pin to select which core is run as cpu0.
>>> I think no one will change the GPIO pin if a new board which is based
>>> on exynos5422 :)
>>>
>> Yes, I know the boot sequence and it means it depends on board configuration
>> not SoC. That’s why I'm saying it should be handled in board DT file. I think,
>> most of current exynos big.LITTLE model should do if it could be changed
>> according to board configuration.
>
> I also agreed it's not a SoC configuration since second
> patch(exynos5422.dtsi -> exynos5422-cpu.dtsi).
>
>>
>>> >
>>> > So how about creating exynos5422-cpus and exynos5420-cpus then including the
>>> > cpus DT file in each board accordingly?
>>> >
>>> > Or more clear way to avoid confusion?
>>>
>>> In this situation, all exynos5422 boards(odroid xu3 series and mobile
>>> phone) have same cpu configurations. If we move the exynos5420 cpu
>>> configuration from exynos5420.dtsi, we should change all dts which
>>> including exynos5420.dtsi.
>>
>> Maybe same board configuration. Just adding inclusion should be fine at this
>> moment.
>>
>>> I think we'd better to defer the change until a new exynos5422 board
>>> which has different cpu configurations is added.
>>>
>> I mean, according to current inclusion of exynos5422 based boards' DT file, it
>> is including exynos5420 DT via exynos5800 DT and then override different cpu
>> ordering (5422-cpu DT) because of different board configuration (just GPIO
>> value) and it is not a good way in this case.
>
> Actually, I don't want to disturb current dts hierarchy even though it
> looks strange. The common features of exynos5800 and exynos5422 should
> be in the exynos5800.dtsi because they shared many things except the
> cpu order.
> Please consider the exynos5422-cpu.dtsi is just board configurations
> to represent cpu order.

Dear Chanho and Kukjin,

Did you reached a conclusion on this patch?

Best regards,
Krzysztof
kgene@kernel.org July 29, 2015, 1:05 a.m. UTC | #9
Chanho Park wrote:
> 
> Hi,
> 
> On Tue, Jul 14, 2015 at 5:23 PM, Kukjin Kim <kgene@kernel.org> wrote:
> > Chanho Park wrote:
> >>
> >> Hi Kukjin,
> >>
> >> On Tue, Jul 14, 2015 at 2:04 PM, Kukjin Kim <kgene@kernel.org> wrote:
> >> > Krzysztof Kozlowski wrote:
> >> >>
> >> >> On 14.07.2015 09:24, Chanho Park wrote:
> >> >> > The odroid-xu3 board which is based on exynos5422 not exynos5800 is
> >> >> > booted from cortex-a7 core unlike exynos5800. The odroid-xu3's cpu order
> >> >> > is quite strange. cpu0 and cpu5-7 are cortex-a7 cores and cpu1-4 are
> >> >> > cortex-a15 cores. To correct this mis-odering, I added exynos5422-cpus.dtsi
> >> >> > and reversing cpu orders from exynos5420. Now, cpu0-3 are cortex-a7 and
> >> >> > cpu4-7 are cortex-a15.
> >> >> >
> >> >> > Reviewed-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
> >> >> > Signed-off-by: Chanho Park <parkch98@gmail.com>
> >> >> > ---
> >
> > [...]
> >
> >> >> >
> >> >> > Secondary cpu booting problem[1] is not resolved yet. Need more investigations
> >> >> > to work booting 8 cores correctly.
> >> >> >
> >> >> > [1]: http://www.spinics.net/lists/linux-samsung-soc/msg45525.html
> >> >> >
> >> >> >  arch/arm/boot/dts/exynos5422-cpus.dtsi             | 81 ++++++++++++++++++++++
> >> >> >  arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi |  1 +
> >> >> >  2 files changed, 82 insertions(+)
> >> >> >  create mode 100644 arch/arm/boot/dts/exynos5422-cpus.dtsi
> >> >>
> >> >> Thanks, applied to my tree. I'll send it to Kukjin for v4.3 unless he
> >> >> picks it also.
> >> >>
> >> > Well, let me see. I'm thinking we need to sort out the cpu ordering and dtsi
> >> > inclusions for exynos5420, 5422 and 5800 related to DT files.
> >> >
> >> > See,
> >> >
> >> > 1) exynos5420 DT (cpu0~3: a15, cpu 4~7: a7)
> >> > 2) exynos5800 DT is including exynos5420 DT
> >> > 3) exynos5422 and exynos5800 based boards are including exynos5800 DT.
> >> >
> >> > Then making exynos5422-cpus DT for exynos5422 based boards?
> >> > (cpu0~3: a7, cpu4~7: a15)
> >> >
> >> > I think, it could cause confusion when new board based on them are added
> >> > because it's not clear and the boot cpu could be selected by bootloader part.
> >>
> >> The iROM will check the GPIO pin to select which core is run as cpu0.
> >> I think no one will change the GPIO pin if a new board which is based
> >> on exynos5422 :)
> >>
> > Yes, I know the boot sequence and it means it depends on board configuration
> > not SoC. That’s why I'm saying it should be handled in board DT file. I think,
> > most of current exynos big.LITTLE model should do if it could be changed
> > according to board configuration.
> 
> I also agreed it's not a SoC configuration since second
> patch(exynos5422.dtsi -> exynos5422-cpu.dtsi).
> 
> >
> >> >
> >> > So how about creating exynos5422-cpus and exynos5420-cpus then including the
> >> > cpus DT file in each board accordingly?
> >> >
> >> > Or more clear way to avoid confusion?
> >>
> >> In this situation, all exynos5422 boards(odroid xu3 series and mobile
> >> phone) have same cpu configurations. If we move the exynos5420 cpu
> >> configuration from exynos5420.dtsi, we should change all dts which
> >> including exynos5420.dtsi.
> >
> > Maybe same board configuration. Just adding inclusion should be fine at this
> > moment.
> >
> >> I think we'd better to defer the change until a new exynos5422 board
> >> which has different cpu configurations is added.
> >>
> > I mean, according to current inclusion of exynos5422 based boards' DT file, it
> > is including exynos5420 DT via exynos5800 DT and then override different cpu
> > ordering (5422-cpu DT) because of different board configuration (just GPIO
> > value) and it is not a good way in this case.
> 
> Actually, I don't want to disturb current dts hierarchy even though it
> looks strange. The common features of exynos5800 and exynos5422 should
> be in the exynos5800.dtsi because they shared many things except the
> cpu order.
> Please consider the exynos5422-cpu.dtsi is just board configurations
> to represent cpu order.
> 
Yeah, strange and it can cause some confusing...but OK, we don't have much
choice at the moment, so applied to support it even we need some re-work
'current dts hierarchy' next time.

Thanks,
Kukjin
diff mbox

Patch

diff --git a/arch/arm/boot/dts/exynos5422-cpus.dtsi b/arch/arm/boot/dts/exynos5422-cpus.dtsi
new file mode 100644
index 0000000..b7f60c8
--- /dev/null
+++ b/arch/arm/boot/dts/exynos5422-cpus.dtsi
@@ -0,0 +1,81 @@ 
+/*
+ * SAMSUNG EXYNOS5422 SoC cpu device tree source
+ *
+ * Copyright (c) 2015 Samsung Electronics Co., Ltd.
+ *		http://www.samsung.com
+ *
+ * The only difference between EXYNOS5422 and EXYNOS5800 is cpu ordering. The
+ * EXYNOS5422 is booting from Cortex-A7 core while the EXYNOS5800 is booting
+ * from Cortex-A15 core.
+ *
+ * EXYNOS5422 based board files can include this file to provide cpu ordering
+ * which could boot a cortex-a7 from cpu0.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ */
+
+&cpu0 {
+	device_type = "cpu";
+	compatible = "arm,cortex-a7";
+	reg = <0x100>;
+	clock-frequency = <1000000000>;
+	cci-control-port = <&cci_control0>;
+};
+
+&cpu1 {
+	device_type = "cpu";
+	compatible = "arm,cortex-a7";
+	reg = <0x101>;
+	clock-frequency = <1000000000>;
+	cci-control-port = <&cci_control0>;
+};
+
+&cpu2 {
+	device_type = "cpu";
+	compatible = "arm,cortex-a7";
+	reg = <0x102>;
+	clock-frequency = <1000000000>;
+	cci-control-port = <&cci_control0>;
+};
+
+&cpu3 {
+	device_type = "cpu";
+	compatible = "arm,cortex-a7";
+	reg = <0x103>;
+	clock-frequency = <1000000000>;
+	cci-control-port = <&cci_control0>;
+};
+
+&cpu4 {
+	device_type = "cpu";
+	compatible = "arm,cortex-a15";
+	reg = <0x0>;
+	clock-frequency = <1800000000>;
+	cci-control-port = <&cci_control1>;
+};
+
+&cpu5 {
+	device_type = "cpu";
+	compatible = "arm,cortex-a15";
+	reg = <0x1>;
+	clock-frequency = <1800000000>;
+	cci-control-port = <&cci_control1>;
+};
+
+&cpu6 {
+	device_type = "cpu";
+	compatible = "arm,cortex-a15";
+	reg = <0x2>;
+	clock-frequency = <1800000000>;
+	cci-control-port = <&cci_control1>;
+};
+
+&cpu7 {
+	device_type = "cpu";
+	compatible = "arm,cortex-a15";
+	reg = <0x3>;
+	clock-frequency = <1800000000>;
+	cci-control-port = <&cci_control1>;
+};
diff --git a/arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi b/arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi
index 8adf455..f603133 100644
--- a/arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi
+++ b/arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi
@@ -15,6 +15,7 @@ 
 #include <dt-bindings/gpio/gpio.h>
 #include <dt-bindings/sound/samsung-i2s.h>
 #include "exynos5800.dtsi"
+#include "exynos5422-cpus.dtsi"
 
 / {
 	memory {