Skip to contentSkip to conversation

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

PATCH Superseded Chanho Park 4 participants 10 messages Jul 14, 2015 – Jul 29, 2015

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH v6 1/1 ARM: dts: add exynos5422-cpus.dtsi to correct cpu order

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.

---
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
arch/arm/boot/dts/exynos5422-cpus.dtsi new file +81 -0
new file mode 100644
index 0000000..b7f60c8
@@ -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>;
+};
arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi +1 -0
index 8adf455..f603133 100644
@@ -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 {
Signature · 1 line
2.1.0
#1 lore raw

PATCH v6 1/1 ARM: dts: add exynos5422-cpus.dtsi to correct cpu order

Quoted 30 lines · Chanho Park

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.

---
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.

Quoted 6 lines

[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

#2 lore raw

PATCH v6 1/1 ARM: dts: add exynos5422-cpus.dtsi to correct cpu order

Quoted 34 lines · Krzysztof Kozlowski
Quoted 32 lines · Chanho Park

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.

---
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

Quoted 8 lines
Quoted 4 lines
 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

#3 lore raw

PATCH v6 1/1 ARM: dts: add exynos5422-cpus.dtsi to correct cpu order

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 <[email protected]>:

Quoted 69 lines
Quoted 34 lines · Krzysztof Kozlowski
Quoted 32 lines · Chanho Park

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.

---
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

Quoted 8 lines
Quoted 4 lines
 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 at vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html

#4 lore raw

PATCH v6 1/1 ARM: dts: add exynos5422-cpus.dtsi to correct cpu order

Quoted 5 lines · Mauro Ribeiro

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

#5 lore raw

PATCH v6 1/1 ARM: dts: add exynos5422-cpus.dtsi to correct cpu order

In reply to Kukjin Kim

Hi Kukjin,

Quoted 52 lines · Kukjin Kim
Quoted 34 lines · Krzysztof Kozlowski
Quoted 32 lines · Chanho Park

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.

---
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

Quoted 8 lines
Quoted 4 lines
 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.

Quoted 5 lines

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 :)

Quoted 5 lines

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.

Signature · 2 lines
Best Regards,
Chanho Park
#6 lore raw

PATCH v6 1/1 ARM: dts: add exynos5422-cpus.dtsi to correct cpu order

Quoted 17 lines · Chanho Park

Hi Kukjin,

Quoted 13 lines · Kukjin Kim
Quoted 12 lines · Krzysztof Kozlowski
Quoted 10 lines · Chanho Park

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.

---

[...]

Quoted 26 lines
Quoted 26 lines
Quoted 6 lines
Quoted 6 lines

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

Quoted 8 lines
Quoted 4 lines
 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)

Quoted 7 lines
Quoted 2 lines

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.

Quoted 10 lines
Quoted 5 lines

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.

Quoted 3 lines

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

#7 lore raw

PATCH v6 1/1 ARM: dts: add exynos5422-cpus.dtsi to correct cpu order

Hi,

Quoted 50 lines · Kukjin Kim
Quoted 17 lines · Chanho Park

Hi Kukjin,

Quoted 13 lines · Kukjin Kim
Quoted 12 lines · Krzysztof Kozlowski
Quoted 10 lines · Chanho Park

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.

---

[...]

Quoted 29 lines
Quoted 28 lines
Quoted 6 lines
Quoted 6 lines

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

Quoted 8 lines
Quoted 4 lines
 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.

Quoted 8 lines
Quoted 4 lines

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).

Quoted 15 lines
Quoted 11 lines
Quoted 6 lines

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.

Quoted 7 lines
Quoted 3 lines

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.

Signature · 2 lines
Best Regards,
Chanho Park
#8 lore raw

PATCH v6 1/1 ARM: dts: add exynos5422-cpus.dtsi to correct cpu order

2015-07-14 21:28 GMT+09:00 Chanho Park <[email protected]>:

Quoted 88 lines

Hi,

Quoted 50 lines · Kukjin Kim
Quoted 17 lines · Chanho Park

Hi Kukjin,

Quoted 13 lines · Kukjin Kim
Quoted 12 lines · Krzysztof Kozlowski
Quoted 10 lines · Chanho Park

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.

---

[...]

Quoted 29 lines
Quoted 28 lines
Quoted 6 lines
Quoted 6 lines

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

Quoted 8 lines
Quoted 4 lines
 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.

Quoted 8 lines
Quoted 4 lines

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).

Quoted 15 lines
Quoted 11 lines
Quoted 6 lines

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.

Quoted 7 lines
Quoted 3 lines

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.

Quoted 6 lines

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

#9 lore raw

PATCH v6 1/1 ARM: dts: add exynos5422-cpus.dtsi to correct cpu order

In reply to Chanho Park
Quoted 89 lines · Chanho Park

Hi,

Quoted 50 lines · Kukjin Kim
Quoted 17 lines · Chanho Park

Hi Kukjin,

Quoted 13 lines · Kukjin Kim
Quoted 12 lines · Krzysztof Kozlowski
Quoted 10 lines · Chanho Park

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.

---

[...]

Quoted 29 lines
Quoted 28 lines
Quoted 6 lines
Quoted 6 lines

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

Quoted 8 lines
Quoted 4 lines
 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.

Quoted 8 lines
Quoted 4 lines

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).

Quoted 15 lines
Quoted 11 lines
Quoted 6 lines

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.

Quoted 7 lines
Quoted 3 lines

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.

Quoted 7 lines

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