Discussion:
[PATCH 00/10] arm64: zynqmp: dtsi changes
Michal Simek
2017-07-20 12:16:59 UTC
Permalink
Hi,

I have cherry-picked all patches from xilinx soc vendor tree which are
ready for submission.
This patchset targets only zynqmp.dtsi which is shared with all zynqmp
families.

Thanks,
Michal


Bharat Kumar Gogada (1):
arm64: zynqmp: Adding prefetchable memory space to pcie node

Edgar E. Iglesias (1):
arm64: zynqmp: Correct IRQ nr for the SMMU

Michal Simek (5):
arm64: zynqmp: Add references to cpu nodes
arm64: zynqmp: Add dcc console for zynqmp
arm64: zynqmp: Add CCI-400 node
arm64: zynqmp: Add support for RTC
arm64: zynqmp: Add new uartps compatible string

Naga Sureshkumar Relli (1):
arm64: zynqmp: Set status disabled in dtsi

Shubhrajyoti Datta (1):
arm64: zynqmp: Add operating points

Stefan Krsmanovic (1):
arm64: zynqmp: Add idle state for ZynqMP

arch/arm64/boot/dts/xilinx/zynqmp.dtsi | 111 ++++++++++++++++++++++++++++-----
1 file changed, 94 insertions(+), 17 deletions(-)
--
1.9.1
Michal Simek
2017-07-20 12:17:01 UTC
Permalink
From: Stefan Krsmanovic <***@aggios.com>

Added the idle-states node to describe zynqmp idle states. Only
cpu-sleep-0 idle state is added in this patch. References to the
idle-states node are added in all CPU nodes. Time values: entry/exit
latencies and min-residency, needs to be tuned. arm,psci-suspend-param
is selected to comply with PSCIv1.0 and Extended StateID format.

Signed-off-by: Stefan Krsmanovic <***@aggios.com>
Acked-by: Will Wong <***@xilinx.com>
Signed-off-by: Michal Simek <***@xilinx.com>
---

arch/arm64/boot/dts/xilinx/zynqmp.dtsi | 17 +++++++++++++++++
1 file changed, 17 insertions(+)

diff --git a/arch/arm64/boot/dts/xilinx/zynqmp.dtsi b/arch/arm64/boot/dts/xilinx/zynqmp.dtsi
index 4f7d9905e235..8e6cf0cf3a69 100644
--- a/arch/arm64/boot/dts/xilinx/zynqmp.dtsi
+++ b/arch/arm64/boot/dts/xilinx/zynqmp.dtsi
@@ -25,6 +25,7 @@
device_type = "cpu";
enable-method = "psci";
reg = <0x0>;
+ cpu-idle-states = <&CPU_SLEEP_0>;
};

cpu1: ***@1 {
@@ -32,6 +33,7 @@
device_type = "cpu";
enable-method = "psci";
reg = <0x1>;
+ cpu-idle-states = <&CPU_SLEEP_0>;
};

cpu2: ***@2 {
@@ -39,6 +41,7 @@
device_type = "cpu";
enable-method = "psci";
reg = <0x2>;
+ cpu-idle-states = <&CPU_SLEEP_0>;
};

cpu3: ***@3 {
@@ -46,6 +49,20 @@
device_type = "cpu";
enable-method = "psci";
reg = <0x3>;
+ cpu-idle-states = <&CPU_SLEEP_0>;
+ };
+
+ idle-states {
+ entry-method = "arm,psci";
+
+ CPU_SLEEP_0: cpu-sleep-0 {
+ compatible = "arm,idle-state";
+ arm,psci-suspend-param = <0x40000000>;
+ local-timer-stop;
+ entry-latency-us = <300>;
+ exit-latency-us = <600>;
+ min-residency-us = <10000>;
+ };
};
};
--
1.9.1
Michal Simek
2017-07-20 12:17:00 UTC
Permalink
Add missing references to all cpu nodes.

Signed-off-by: Michal Simek <***@xilinx.com>
---

arch/arm64/boot/dts/xilinx/zynqmp.dtsi | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/arch/arm64/boot/dts/xilinx/zynqmp.dtsi b/arch/arm64/boot/dts/xilinx/zynqmp.dtsi
index 1a3f5e928bb9..4f7d9905e235 100644
--- a/arch/arm64/boot/dts/xilinx/zynqmp.dtsi
+++ b/arch/arm64/boot/dts/xilinx/zynqmp.dtsi
@@ -20,28 +20,28 @@
#address-cells = <1>;
#size-cells = <0>;

- ***@0 {
+ cpu0: ***@0 {
compatible = "arm,cortex-a53", "arm,armv8";
device_type = "cpu";
enable-method = "psci";
reg = <0x0>;
};

- ***@1 {
+ cpu1: ***@1 {
compatible = "arm,cortex-a53", "arm,armv8";
device_type = "cpu";
enable-method = "psci";
reg = <0x1>;
};

- ***@2 {
+ cpu2: ***@2 {
compatible = "arm,cortex-a53", "arm,armv8";
device_type = "cpu";
enable-method = "psci";
reg = <0x2>;
};

- ***@3 {
+ cpu3: ***@3 {
compatible = "arm,cortex-a53", "arm,armv8";
device_type = "cpu";
enable-method = "psci";
--
1.9.1
Moritz Fischer
2017-07-25 16:47:22 UTC
Permalink
Post by Michal Simek
Add missing references to all cpu nodes.
---
arch/arm64/boot/dts/xilinx/zynqmp.dtsi | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/arch/arm64/boot/dts/xilinx/zynqmp.dtsi b/arch/arm64/boot/dts/xilinx/zynqmp.dtsi
index 1a3f5e928bb9..4f7d9905e235 100644
--- a/arch/arm64/boot/dts/xilinx/zynqmp.dtsi
+++ b/arch/arm64/boot/dts/xilinx/zynqmp.dtsi
@@ -20,28 +20,28 @@
#address-cells = <1>;
#size-cells = <0>;
compatible = "arm,cortex-a53", "arm,armv8";
device_type = "cpu";
enable-method = "psci";
reg = <0x0>;
};
compatible = "arm,cortex-a53", "arm,armv8";
device_type = "cpu";
enable-method = "psci";
reg = <0x1>;
};
compatible = "arm,cortex-a53", "arm,armv8";
device_type = "cpu";
enable-method = "psci";
reg = <0x2>;
};
compatible = "arm,cortex-a53", "arm,armv8";
device_type = "cpu";
enable-method = "psci";
--
1.9.1
Michal Simek
2017-07-20 12:17:02 UTC
Permalink
From: Shubhrajyoti Datta <***@xilinx.com>

Adding operating-points-v2 for zynqmp.

Signed-off-by: Shubhrajyoti Datta <***@xilinx.com>
Signed-off-by: Michal Simek <***@xilinx.com>
---

arch/arm64/boot/dts/xilinx/zynqmp.dtsi | 29 +++++++++++++++++++++++++++++
1 file changed, 29 insertions(+)

diff --git a/arch/arm64/boot/dts/xilinx/zynqmp.dtsi b/arch/arm64/boot/dts/xilinx/zynqmp.dtsi
index 8e6cf0cf3a69..50636e098724 100644
--- a/arch/arm64/boot/dts/xilinx/zynqmp.dtsi
+++ b/arch/arm64/boot/dts/xilinx/zynqmp.dtsi
@@ -24,6 +24,7 @@
compatible = "arm,cortex-a53", "arm,armv8";
device_type = "cpu";
enable-method = "psci";
+ operating-points-v2 = <&cpu_opp_table>;
reg = <0x0>;
cpu-idle-states = <&CPU_SLEEP_0>;
};
@@ -33,6 +34,7 @@
device_type = "cpu";
enable-method = "psci";
reg = <0x1>;
+ operating-points-v2 = <&cpu_opp_table>;
cpu-idle-states = <&CPU_SLEEP_0>;
};

@@ -41,6 +43,7 @@
device_type = "cpu";
enable-method = "psci";
reg = <0x2>;
+ operating-points-v2 = <&cpu_opp_table>;
cpu-idle-states = <&CPU_SLEEP_0>;
};

@@ -49,6 +52,7 @@
device_type = "cpu";
enable-method = "psci";
reg = <0x3>;
+ operating-points-v2 = <&cpu_opp_table>;
cpu-idle-states = <&CPU_SLEEP_0>;
};

@@ -66,6 +70,31 @@
};
};

+ cpu_opp_table: cpu_opp_table {
+ compatible = "operating-points-v2";
+ opp-shared;
+ opp00 {
+ opp-hz = /bits/ 64 <1199999988>;
+ opp-microvolt = <1000000>;
+ clock-latency-ns = <500000>;
+ };
+ opp01 {
+ opp-hz = /bits/ 64 <599999994>;
+ opp-microvolt = <1000000>;
+ clock-latency-ns = <500000>;
+ };
+ opp02 {
+ opp-hz = /bits/ 64 <399999996>;
+ opp-microvolt = <1000000>;
+ clock-latency-ns = <500000>;
+ };
+ opp03 {
+ opp-hz = /bits/ 64 <299999997>;
+ opp-microvolt = <1000000>;
+ clock-latency-ns = <500000>;
+ };
+ };
+
pmu {
compatible = "arm,armv8-pmuv3";
interrupt-parent = <&gic>;
--
1.9.1
Michal Simek
2017-07-20 12:17:04 UTC
Permalink
Add CCI-400 node to DTSI.

Signed-off-by: Michal Simek <***@xilinx.com>
---

arch/arm64/boot/dts/xilinx/zynqmp.dtsi | 19 +++++++++++++++++++
1 file changed, 19 insertions(+)

diff --git a/arch/arm64/boot/dts/xilinx/zynqmp.dtsi b/arch/arm64/boot/dts/xilinx/zynqmp.dtsi
index 3657fdbdb552..f3968737e613 100644
--- a/arch/arm64/boot/dts/xilinx/zynqmp.dtsi
+++ b/arch/arm64/boot/dts/xilinx/zynqmp.dtsi
@@ -170,6 +170,25 @@
rx-fifo-depth = <0x40>;
};

+ cci: ***@fd6e0000 {
+ compatible = "arm,cci-400";
+ reg = <0x0 0xfd6e0000 0x0 0x9000>;
+ ranges = <0x0 0x0 0xfd6e0000 0x10000>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ ***@9000 {
+ compatible = "arm,cci-400-pmu,r1";
+ reg = <0x9000 0x5000>;
+ interrupt-parent = <&gic>;
+ interrupts = <0 123 4>,
+ <0 123 4>,
+ <0 123 4>,
+ <0 123 4>,
+ <0 123 4>;
+ };
+ };
+
gem0: ***@ff0b0000 {
compatible = "cdns,gem";
status = "disabled";
--
1.9.1
Michal Simek
2017-07-20 12:17:03 UTC
Permalink
Add debug console to dtsi to be able to enable it in
board dts file.
Keep in your mind that every core has separate dcc port in case you want
to run SMP kernel.
DCC is very helpful communication channel for debugging.

Signed-off-by: Michal Simek <***@xilinx.com>
---

arch/arm64/boot/dts/xilinx/zynqmp.dtsi | 5 +++++
1 file changed, 5 insertions(+)

diff --git a/arch/arm64/boot/dts/xilinx/zynqmp.dtsi b/arch/arm64/boot/dts/xilinx/zynqmp.dtsi
index 50636e098724..3657fdbdb552 100644
--- a/arch/arm64/boot/dts/xilinx/zynqmp.dtsi
+++ b/arch/arm64/boot/dts/xilinx/zynqmp.dtsi
@@ -95,6 +95,11 @@
};
};

+ dcc: dcc {
+ compatible = "arm,dcc";
+ status = "disabled";
+ };
+
pmu {
compatible = "arm,armv8-pmuv3";
interrupt-parent = <&gic>;
--
1.9.1
Michal Simek
2017-07-20 12:17:05 UTC
Permalink
From: Bharat Kumar Gogada <***@xilinx.com>

Adding prefetchable memory space to pcie device tree node.
Shifting configuration space to 64-bit address space.
Removing pcie device tree node from amba as it requires size-cells=<2>
in order to access 64-bit address space.

Signed-off-by: Bharat Kumar Gogada <***@xilinx.com>
Signed-off-by: Michal Simek <***@xilinx.com>
---

arch/arm64/boot/dts/xilinx/zynqmp.dtsi | 8 ++------
1 file changed, 2 insertions(+), 6 deletions(-)

diff --git a/arch/arm64/boot/dts/xilinx/zynqmp.dtsi b/arch/arm64/boot/dts/xilinx/zynqmp.dtsi
index f3968737e613..e7d1815c114b 100644
--- a/arch/arm64/boot/dts/xilinx/zynqmp.dtsi
+++ b/arch/arm64/boot/dts/xilinx/zynqmp.dtsi
@@ -285,12 +285,8 @@
<0x0 0xfd480000 0x0 0x1000>,
<0x80 0x00000000 0x0 0x1000000>;
reg-names = "breg", "pcireg", "cfg";
- ranges = <0x02000000 0x00000000 0xe0000000 0x00000000
- 0xe0000000 0x00000000 0x10000000
- /* non-prefetchable memory */
- 0x43000000 0x00000006 0x00000000 0x00000006
- 0x00000000 0x00000002 0x00000000>;
- /* prefetchable memory */
+ ranges = <0x02000000 0x00000000 0xe0000000 0x00000000 0xe0000000 0x00000000 0x10000000 /* non-prefetchable memory */
+ 0x43000000 0x00000006 0x00000000 0x00000006 0x00000000 0x00000002 0x00000000>;/* prefetchable memory */
bus-range = <0x00 0xff>;
interrupt-map-mask = <0x0 0x0 0x0 0x7>;
interrupt-map = <0x0 0x0 0x0 0x1 &pcie_intc 0x1>,
--
1.9.1
Michal Simek
2017-07-20 12:17:06 UTC
Permalink
Add support for RTC.

Signed-off-by: Michal Simek <***@xilinx.com>
---

arch/arm64/boot/dts/xilinx/zynqmp.dtsi | 10 ++++++++++
1 file changed, 10 insertions(+)

diff --git a/arch/arm64/boot/dts/xilinx/zynqmp.dtsi b/arch/arm64/boot/dts/xilinx/zynqmp.dtsi
index e7d1815c114b..1272fa6d4f99 100644
--- a/arch/arm64/boot/dts/xilinx/zynqmp.dtsi
+++ b/arch/arm64/boot/dts/xilinx/zynqmp.dtsi
@@ -300,6 +300,16 @@
};
};

+ rtc: ***@ffa60000 {
+ compatible = "xlnx,zynqmp-rtc";
+ status = "disabled";
+ reg = <0x0 0xffa60000 0x0 0x100>;
+ interrupt-parent = <&gic>;
+ interrupts = <0 26 4>, <0 27 4>;
+ interrupt-names = "alarm", "sec";
+ calibration = <0x8000>;
+ };
+
sata: ***@fd0c0000 {
compatible = "ceva,ahci-1v84";
status = "disabled";
--
1.9.1
Michal Simek
2017-07-20 12:17:07 UTC
Permalink
From: "Edgar E. Iglesias" <***@xilinx.com>

Signed-off-by: Edgar E. Iglesias <***@xilinx.com>
Signed-off-by: Michal Simek <***@xilinx.com>
---

arch/arm64/boot/dts/xilinx/zynqmp.dtsi | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/arch/arm64/boot/dts/xilinx/zynqmp.dtsi b/arch/arm64/boot/dts/xilinx/zynqmp.dtsi
index 1272fa6d4f99..4adf5285f56d 100644
--- a/arch/arm64/boot/dts/xilinx/zynqmp.dtsi
+++ b/arch/arm64/boot/dts/xilinx/zynqmp.dtsi
@@ -341,11 +341,11 @@
reg = <0x0 0xfd800000 0x0 0x20000>;
#global-interrupts = <1>;
interrupt-parent = <&gic>;
- interrupts = <0 157 4>,
- <0 157 4>, <0 157 4>, <0 157 4>, <0 157 4>,
- <0 157 4>, <0 157 4>, <0 157 4>, <0 157 4>,
- <0 157 4>, <0 157 4>, <0 157 4>, <0 157 4>,
- <0 157 4>, <0 157 4>, <0 157 4>, <0 157 4>;
+ interrupts = <0 155 4>,
+ <0 155 4>, <0 155 4>, <0 155 4>, <0 155 4>,
+ <0 155 4>, <0 155 4>, <0 155 4>, <0 155 4>,
+ <0 155 4>, <0 155 4>, <0 155 4>, <0 155 4>,
+ <0 155 4>, <0 155 4>, <0 155 4>, <0 155 4>;
};

spi0: ***@ff040000 {
--
1.9.1
Michal Simek
2017-07-20 12:17:08 UTC
Permalink
Mainline kernel has r1p12 compatible string now. Use this new compatible
string and also append generic compatible string.
Keep in your mind that using this generic compatible string not all uart
features will be available.

Signed-off-by: Michal Simek <***@xilinx.com>
---

arch/arm64/boot/dts/xilinx/zynqmp.dtsi | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/arch/arm64/boot/dts/xilinx/zynqmp.dtsi b/arch/arm64/boot/dts/xilinx/zynqmp.dtsi
index 4adf5285f56d..9304249a23ed 100644
--- a/arch/arm64/boot/dts/xilinx/zynqmp.dtsi
+++ b/arch/arm64/boot/dts/xilinx/zynqmp.dtsi
@@ -407,7 +407,7 @@
};

uart0: ***@ff000000 {
- compatible = "cdns,uart-r1p8";
+ compatible = "cdns,uart-r1p12", "xlnx,xuartps";
status = "disabled";
interrupt-parent = <&gic>;
interrupts = <0 21 4>;
@@ -416,7 +416,7 @@
};

uart1: ***@ff010000 {
- compatible = "cdns,uart-r1p8";
+ compatible = "cdns,uart-r1p12", "xlnx,xuartps";
status = "disabled";
interrupt-parent = <&gic>;
interrupts = <0 22 4>;
--
1.9.1
Moritz Fischer
2017-07-25 16:49:17 UTC
Permalink
Post by Michal Simek
Mainline kernel has r1p12 compatible string now. Use this new compatible
string and also append generic compatible string.
Keep in your mind that using this generic compatible string not all uart
features will be available.
---
arch/arm64/boot/dts/xilinx/zynqmp.dtsi | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/arch/arm64/boot/dts/xilinx/zynqmp.dtsi b/arch/arm64/boot/dts/xilinx/zynqmp.dtsi
index 4adf5285f56d..9304249a23ed 100644
--- a/arch/arm64/boot/dts/xilinx/zynqmp.dtsi
+++ b/arch/arm64/boot/dts/xilinx/zynqmp.dtsi
@@ -407,7 +407,7 @@
};
- compatible = "cdns,uart-r1p8";
+ compatible = "cdns,uart-r1p12", "xlnx,xuartps";
status = "disabled";
interrupt-parent = <&gic>;
interrupts = <0 21 4>;
@@ -416,7 +416,7 @@
};
- compatible = "cdns,uart-r1p8";
+ compatible = "cdns,uart-r1p12", "xlnx,xuartps";
status = "disabled";
interrupt-parent = <&gic>;
interrupts = <0 22 4>;
--
1.9.1
Michal Simek
2017-07-20 12:17:09 UTC
Permalink
From: Naga Sureshkumar Relli <***@xilinx.com>

Do not enable smmu via dtsi. Enable it in board file when needed.

Signed-off-by: Naga Sureshkumar Relli <***@xilinx.com>
Signed-off-by: Michal Simek <***@xilinx.com>
---

arch/arm64/boot/dts/xilinx/zynqmp.dtsi | 1 +
1 file changed, 1 insertion(+)

diff --git a/arch/arm64/boot/dts/xilinx/zynqmp.dtsi b/arch/arm64/boot/dts/xilinx/zynqmp.dtsi
index 9304249a23ed..787463796348 100644
--- a/arch/arm64/boot/dts/xilinx/zynqmp.dtsi
+++ b/arch/arm64/boot/dts/xilinx/zynqmp.dtsi
@@ -339,6 +339,7 @@
smmu: ***@fd800000 {
compatible = "arm,mmu-500";
reg = <0x0 0xfd800000 0x0 0x20000>;
+ status = "disabled";
#global-interrupts = <1>;
interrupt-parent = <&gic>;
interrupts = <0 155 4>,
--
1.9.1
Loading...