arm64: dts: exynos: Revert "Remove unneeded address space mapping for soc node"

Message ID 20190912073602.22829-1-m.szyprowski@samsung.com
State New
Headers show
Series
  • arm64: dts: exynos: Revert "Remove unneeded address space mapping for soc node"
Related show

Commit Message

Marek Szyprowski Sept. 12, 2019, 7:36 a.m.
Commit ef72171b3621 ("arm64: dts: exynos: Remove unneeded address space
mapping for soc node") changed the address and size cells in root node from
2 to 1, but /memory nodes for the affected boards were not updated. This
went unnoticed on Exynos5433-based TM2(e) boards, because they use u-boot,
which updates /memory node to the correct values. On the other hand, the
mentioned commit broke boot on Exynos7-based Espresso board, which
bootloader doesn't touch /memory node at all.

This patch reverts commit ef72171b3621, so Exynos5433 and Exynos7 SoCs
again matches other ARM64 platforms with 64bit mappings in root node.

Reported-by: Alim Akhtar <alim.akhtar@samsung.com>
Fixes: ef72171b3621 ("arm64: dts: exynos: Remove unneeded address space mapping for soc node")
Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>

Cc: <stable@vger.kernel.org>
Tested-by: Alim Akhtar <alim.akhtar@samsung.com>

---
A few more comments:

1. I've added 'tested-by' tag from Alim, as his original report pointed
that reverting the offending commit fixes the boot issue.

2. This patch applies down to v4.18.

3. For v5.3 release, two patches:
   - "arm64: dts: exynos: Move GPU under /soc node for  Exynos5433"
   - "arm64: dts: exynos: Move GPU under /soc node for Exynos7"
   has to be applied first to ensure that GPU node will have correct 'reg'
   property (nodes under /soc still use 32bit mappings). I'm not sure if
   this can be expressed somehow in stable porting tags.

Best regards
Marek Szyprowski
Samsung R&D Institute Poland
---
 arch/arm64/boot/dts/exynos/exynos5433.dtsi | 6 +++---
 arch/arm64/boot/dts/exynos/exynos7.dtsi    | 6 +++---
 2 files changed, 6 insertions(+), 6 deletions(-)

-- 
2.17.1

Comments

Krzysztof Kozlowski Oct. 1, 2019, 7:16 p.m. | #1
On Thu, Sep 12, 2019 at 09:36:02AM +0200, Marek Szyprowski wrote:
> Commit ef72171b3621 ("arm64: dts: exynos: Remove unneeded address space

> mapping for soc node") changed the address and size cells in root node from

> 2 to 1, but /memory nodes for the affected boards were not updated. This

> went unnoticed on Exynos5433-based TM2(e) boards, because they use u-boot,

> which updates /memory node to the correct values. On the other hand, the

> mentioned commit broke boot on Exynos7-based Espresso board, which

> bootloader doesn't touch /memory node at all.

> 

> This patch reverts commit ef72171b3621, so Exynos5433 and Exynos7 SoCs

> again matches other ARM64 platforms with 64bit mappings in root node.

> 

> Reported-by: Alim Akhtar <alim.akhtar@samsung.com>

> Fixes: ef72171b3621 ("arm64: dts: exynos: Remove unneeded address space mapping for soc node")

> Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>

> Cc: <stable@vger.kernel.org>

> Tested-by: Alim Akhtar <alim.akhtar@samsung.com>

> ---

> A few more comments:

> 

> 1. I've added 'tested-by' tag from Alim, as his original report pointed

> that reverting the offending commit fixes the boot issue.

> 

> 2. This patch applies down to v4.18.

> 

> 3. For v5.3 release, two patches:

>    - "arm64: dts: exynos: Move GPU under /soc node for  Exynos5433"

>    - "arm64: dts: exynos: Move GPU under /soc node for Exynos7"

>    has to be applied first to ensure that GPU node will have correct 'reg'

>    property (nodes under /soc still use 32bit mappings). I'm not sure if


Thanks, applied.

I tried the cc-stable-with-prerequisites syntax. It looks like this:
https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux.git/commit/?h=next/dt64&id=bed903167ae5b5532eda5d7db26de451bd232da5

I hope it will work...

Best regards,
Krzysztof

Patch

diff --git a/arch/arm64/boot/dts/exynos/exynos5433.dtsi b/arch/arm64/boot/dts/exynos/exynos5433.dtsi
index 239bf44d174b..f69530730219 100644
--- a/arch/arm64/boot/dts/exynos/exynos5433.dtsi
+++ b/arch/arm64/boot/dts/exynos/exynos5433.dtsi
@@ -18,8 +18,8 @@ 
 
 / {
 	compatible = "samsung,exynos5433";
-	#address-cells = <1>;
-	#size-cells = <1>;
+	#address-cells = <2>;
+	#size-cells = <2>;
 
 	interrupt-parent = <&gic>;
 
@@ -260,7 +260,7 @@ 
 		compatible = "simple-bus";
 		#address-cells = <1>;
 		#size-cells = <1>;
-		ranges;
+		ranges = <0x0 0x0 0x0 0x18000000>;
 
 		chipid@10000000 {
 			compatible = "samsung,exynos4210-chipid";
diff --git a/arch/arm64/boot/dts/exynos/exynos7.dtsi b/arch/arm64/boot/dts/exynos/exynos7.dtsi
index f09800f355db..3a00ef0a17ff 100644
--- a/arch/arm64/boot/dts/exynos/exynos7.dtsi
+++ b/arch/arm64/boot/dts/exynos/exynos7.dtsi
@@ -12,8 +12,8 @@ 
 / {
 	compatible = "samsung,exynos7";
 	interrupt-parent = <&gic>;
-	#address-cells = <1>;
-	#size-cells = <1>;
+	#address-cells = <2>;
+	#size-cells = <2>;
 
 	aliases {
 		pinctrl0 = &pinctrl_alive;
@@ -87,7 +87,7 @@ 
 		compatible = "simple-bus";
 		#address-cells = <1>;
 		#size-cells = <1>;
-		ranges;
+		ranges = <0 0 0 0x18000000>;
 
 		chipid@10000000 {
 			compatible = "samsung,exynos4210-chipid";