ARM: dts: add CPU nodes for Exynos4 SoCs
Subsystems (2)
PATCH 1/1 ARM: dts: add CPU nodes for Exynos4 SoCs
Recent patch by Tomasz Figa ("irqchip: gic: Fix core ID calculation when topology is read from DT") fixed GIC driver to filter cluster ID from values returned by cpu_logical_map() for SoCs having registers mapped without per-CPU banking making it is possible to add CPU nodes for Exynos4 SoCs. In case of Exynos SoCs these CPU nodes are also required by future changes adding initialization of cpuidle states in Exynos cpuidle driver through DT.
Tested on Origen board (Exynos4210 SoC) and Trats2 (Exynos4412 SoC).
---
Based on next-20140717 branch of linux-next tree +
- [PATCH 2/6] ARM: EXYNOS: Fix core ID used by platsmp and hotplug code
http://www.mail-archive.com/linux-samsung-soc at vger.kernel.org/msg32811.html
- [PATCH] irqchip: gic: Fix core ID calculation when topology is read from DT
http://www.mail-archive.com/linux-samsung-soc at vger.kernel.org/msg34277.html
arch/arm/boot/dts/exynos4210.dtsi | 17 +++++++++++++++++ arch/arm/boot/dts/exynos4212.dtsi | 17 +++++++++++++++++ arch/arm/boot/dts/exynos4412.dtsi | 29 +++++++++++++++++++++++++++++ 3 files changed, 63 insertions(+)
arch/arm/boot/dts/exynos4210.dtsi +17 -0
@@ -31,6 +31,23 @@ pinctrl2 = &pinctrl_2; }; + cpus { + #address-cells = <1>; + #size-cells = <0>; + + cpu at 0 { + device_type = "cpu"; + compatible = "arm,cortex-a9"; + reg = <0x900>; + }; + + cpu at 1 { + device_type = "cpu"; + compatible = "arm,cortex-a9"; + reg = <0x901>; + }; + }; + sysram at 02020000 { compatible = "mmio-sram"; reg = <0x02020000 0x20000>;
arch/arm/boot/dts/exynos4212.dtsi +17 -0
@@ -22,6 +22,23 @@ / { compatible = "samsung,exynos4212", "samsung,exynos4"; + cpus { + #address-cells = <1>; + #size-cells = <0>; + + cpu at 0 { + device_type = "cpu"; + compatible = "arm,cortex-a9"; + reg = <0xA00>; + }; + + cpu at 1 { + device_type = "cpu"; + compatible = "arm,cortex-a9"; + reg = <0xA01>; + }; + }; + combiner: interrupt-controller at 10440000 { samsung,combiner-nr = <18>; };
arch/arm/boot/dts/exynos4412.dtsi +29 -0
@@ -22,6 +22,35 @@ / { compatible = "samsung,exynos4412", "samsung,exynos4"; + cpus { + #address-cells = <1>; + #size-cells = <0>; + + cpu at 0 { + device_type = "cpu"; + compatible = "arm,cortex-a9"; + reg = <0xA00>; + }; + + cpu at 1 { + device_type = "cpu"; + compatible = "arm,cortex-a9"; + reg = <0xA01>; + }; + + cpu at 2 { + device_type = "cpu"; + compatible = "arm,cortex-a9"; + reg = <0xA02>; + }; + + cpu at 3 { + device_type = "cpu"; + compatible = "arm,cortex-a9"; + reg = <0xA03>; + }; + }; + combiner: interrupt-controller at 10440000 { samsung,combiner-nr = <20>; };
Signature · 1 line
1.8.2.3
Quoted 30 lines · Bartlomiej Zolnierkiewicz
Recent patch by Tomasz Figa ("irqchip: gic: Fix core ID calculation when topology is read from DT") fixed GIC driver to filter cluster ID from values returned by
cpu_logical_map()for SoCs having registers mapped without per-CPU banking making it is possible to add CPU nodes for Exynos4 SoCs. In case of Exynos SoCs these CPU nodes are also required by future changes adding initialization of cpuidle states in Exynos cpuidle driver through DT.Tested on Origen board (Exynos4210 SoC) and Trats2 (Exynos4412 SoC).
Signed-off-by Bartlomiej Zolnierkiewicz <[email protected]>---
Based on next-20140717 branch of linux-next tree +
- [PATCH 2/6] ARM: EXYNOS: Fix core ID used by platsmp and hotplug code
http://www.mail-archive.com/linux-samsung-soc at vger.kernel.org/msg32811.html
- [PATCH] irqchip: gic: Fix core ID calculation when topology is read from DT
http://www.mail-archive.com/linux-samsung-soc at vger.kernel.org/msg34277.htmlarch/arm/boot/dts/exynos4210.dtsi | 17 +++++++++++++++++ arch/arm/boot/dts/exynos4212.dtsi | 17 +++++++++++++++++ arch/arm/boot/dts/exynos4412.dtsi | 29 +++++++++++++++++++++++++++++ 3 files changed, 63 insertions(+)arch/arm/boot/dts/exynos4210.dtsi +0
-0@@ -31,6 +31,23 @@ pinctrl2 = &pinctrl_2; };
arch/arm/boot/dts/exynos4210.dtsi line 42
Quoted 10 lines
arch/arm/boot/dts/exynos4210.dtsi +9
-0+ cpus { + #address-cells = <1>; + #size-cells = <0>; + + cpu at 0 { + device_type = "cpu"; + compatible = "arm,cortex-a9"; + reg = <0x900>; + };
Please match the unit-address with the reg (e.g. this should be cpu at 900).
Please do this for all the other CPU nodes.
Thanks,
Mark.
Quoted 89 lines
arch/arm/boot/dts/exynos4210.dtsi +8
-0+ + cpu at 1 { + device_type = "cpu"; + compatible = "arm,cortex-a9"; + reg = <0x901>; + }; + }; + sysram at 02020000 { compatible = "mmio-sram"; reg = <0x02020000 0x20000>;arch/arm/boot/dts/exynos4212.dtsi +17
-0@@ -22,6 +22,23 @@ / { compatible = "samsung,exynos4212", "samsung,exynos4"; + cpus { + #address-cells = <1>; + #size-cells = <0>; + + cpu at 0 { + device_type = "cpu"; + compatible = "arm,cortex-a9"; + reg = <0xA00>; + }; + + cpu at 1 { + device_type = "cpu"; + compatible = "arm,cortex-a9"; + reg = <0xA01>; + }; + }; + combiner: interrupt-controller at 10440000 { samsung,combiner-nr = <18>; };arch/arm/boot/dts/exynos4412.dtsi +29
-0@@ -22,6 +22,35 @@ / { compatible = "samsung,exynos4412", "samsung,exynos4"; + cpus { + #address-cells = <1>; + #size-cells = <0>; + + cpu at 0 { + device_type = "cpu"; + compatible = "arm,cortex-a9"; + reg = <0xA00>; + }; + + cpu at 1 { + device_type = "cpu"; + compatible = "arm,cortex-a9"; + reg = <0xA01>; + }; + + cpu at 2 { + device_type = "cpu"; + compatible = "arm,cortex-a9"; + reg = <0xA02>; + }; + + cpu at 3 { + device_type = "cpu"; + compatible = "arm,cortex-a9"; + reg = <0xA03>; + }; + }; + combiner: interrupt-controller at 10440000 { samsung,combiner-nr = <20>; };Signature · 8 lines
1.8.2.3 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel at lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Quoted 7 lines · Bartlomiej Zolnierkiewicz
Recent patch by Tomasz Figa ("irqchip: gic: Fix core ID calculation when topology is read from DT") fixed GIC driver to filter cluster ID from values returned by
cpu_logical_map()for SoCs having registers mapped without per-CPU banking making it is possible to add CPU nodes for Exynos4 SoCs. In case of Exynos SoCs these CPU nodes are also required by future changes adding initialization of cpuidle states in Exynos cpuidle driver through DT.
This conflicts with work in the thread "cpufreq: use generic cpufreq drivers for exynos platforms" which is already in its 7th iteration. Perhaps best to work directly with Thomas to help him finish that series?
Daniel
Hi,
Quoted 10 lines · Daniel Drake
Quoted 7 lines · Bartlomiej Zolnierkiewicz
Recent patch by Tomasz Figa ("irqchip: gic: Fix core ID calculation when topology is read from DT") fixed GIC driver to filter cluster ID from values returned by
cpu_logical_map()for SoCs having registers mapped without per-CPU banking making it is possible to add CPU nodes for Exynos4 SoCs. In case of Exynos SoCs these CPU nodes are also required by future changes adding initialization of cpuidle states in Exynos cpuidle driver through DT.
Quoted 3 lines
This conflicts with work in the thread "cpufreq: use generic cpufreq drivers for exynos platforms" which is already in its 7th iteration. Perhaps best to work directly with Thomas to help him finish that series?
Patch "[PATCH v7 4/6] ARM: dts: Exynos: add cpu nodes, opp and cpu clock configuration data" from Thomas needs another revision anyway since it lacks cluster ID in Exynos4210 CPU node. It also mixes addition of CPU nodes with cpufreq specific changes and IMHO addition of CPU nodes should be in separate patch to ease bisection if any later problems turn up. Therefore I think that it would be the best if Thomas would rebase his work on top of "irqchip: gic: Fix core ID calculation when topology is read from DT" patch and this one. Thomas, are you okay with this?
Best regards,
--
Bartlomiej Zolnierkiewicz
Samsung R&D Institute Poland
Samsung Electronics
Quoted 18 lines · Bartlomiej Zolnierkiewicz
Hi,
Quoted 10 lines · Daniel Drake
Quoted 7 lines · Bartlomiej Zolnierkiewicz
Recent patch by Tomasz Figa ("irqchip: gic: Fix core ID calculation when topology is read from DT") fixed GIC driver to filter cluster ID from values returned by
cpu_logical_map()for SoCs having registers mapped without per-CPU banking making it is possible to add CPU nodes for Exynos4 SoCs. In case of Exynos SoCs these CPU nodes are also required by future changes adding initialization of cpuidle states in Exynos cpuidle driver through DT.Quoted 3 lines
This conflicts with work in the thread "cpufreq: use generic cpufreq drivers for exynos platforms" which is already in its 7th iteration. Perhaps best to work directly with Thomas to help him finish that series?
Quoted 8 lines
Patch "[PATCH v7 4/6] ARM: dts: Exynos: add cpu nodes, opp and cpu clock configuration data" from Thomas needs another revision anyway since it lacks cluster ID in Exynos4210 CPU node. It also mixes addition of CPU nodes with cpufreq specific changes and IMHO addition of CPU nodes should be in separate patch to ease bisection if any later problems turn up. Therefore I think that it would be the best if Thomas would rebase his work on top of "irqchip: gic: Fix core ID calculation when topology is read from DT" patch and this one. Thomas, are you okay with this?
Hi Bartlomiej,
Yes, I am okay with this.
Regards,
Thomas.
Quoted 11 lines
Best regards,
--
Bartlomiej Zolnierkiewicz
Samsung R&D Institute Poland
Samsung Electronics--
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