diff mbox series

arm64: dts: Add/fix /memory node unit-addresses

Message ID 20240430191856.874600-2-robh@kernel.org (mailing list archive)
State Accepted
Commit 5c04a5b065e97dd331dba67da9896897fced3bee
Headers show
Series arm64: dts: Add/fix /memory node unit-addresses | expand

Commit Message

Rob Herring (Arm) April 30, 2024, 7:18 p.m. UTC
'/memory' nodes always have a 'reg' property, and therefore should have
a unit-address with just plain hex (i.e. no commas). Fix all the arm64
'/memory' nodes.

It's possible that some bootloader depends on /memory (arm32 ATAG to DT
code does for example). If so, the memory node should be commented with
that requirement.

Signed-off-by: Rob Herring (Arm) <robh@kernel.org>
---
SoC maintainers, please take this directly.

arm32 is much worse, but the platforms using ATAG to DT code can't be 
changed and I don't know which ones those are.

 arch/arm64/boot/dts/actions/s700-cubieboard7.dts       | 2 +-
 arch/arm64/boot/dts/apm/apm-merlin.dts                 | 2 +-
 arch/arm64/boot/dts/apm/apm-mustang.dts                | 2 +-
 arch/arm64/boot/dts/broadcom/northstar2/ns2-svk.dts    | 2 +-
 arch/arm64/boot/dts/broadcom/northstar2/ns2-xmc.dts    | 2 +-
 arch/arm64/boot/dts/cavium/thunder2-99xx.dts           | 2 +-
 arch/arm64/boot/dts/lg/lg1312-ref.dts                  | 2 +-
 arch/arm64/boot/dts/lg/lg1313-ref.dts                  | 2 +-
 arch/arm64/boot/dts/nuvoton/nuvoton-npcm845-evb.dts    | 2 +-
 arch/arm64/boot/dts/nvidia/tegra210-smaug.dts          | 2 +-
 arch/arm64/boot/dts/qcom/ipq8074-hk10.dtsi             | 2 +-
 arch/arm64/boot/dts/rockchip/rk3368-evb.dtsi           | 2 +-
 arch/arm64/boot/dts/rockchip/rk3368-orion-r68-meta.dts | 2 +-
 arch/arm64/boot/dts/rockchip/rk3368-r88.dts            | 2 +-
 arch/arm64/boot/dts/sprd/sp9860g-1h10.dts              | 2 +-
 15 files changed, 15 insertions(+), 15 deletions(-)

Comments

Florian Fainelli April 30, 2024, 9:49 p.m. UTC | #1
On 4/30/24 12:18, Rob Herring (Arm) wrote:
> '/memory' nodes always have a 'reg' property, and therefore should have
> a unit-address with just plain hex (i.e. no commas). Fix all the arm64
> '/memory' nodes.
> 
> It's possible that some bootloader depends on /memory (arm32 ATAG to DT
> code does for example). If so, the memory node should be commented with
> that requirement.
> 
> Signed-off-by: Rob Herring (Arm) <robh@kernel.org>
> ---
> SoC maintainers, please take this directly.
> 
> arm32 is much worse, but the platforms using ATAG to DT code can't be
> changed and I don't know which ones those are.
> 
>   arch/arm64/boot/dts/actions/s700-cubieboard7.dts       | 2 +-
>   arch/arm64/boot/dts/apm/apm-merlin.dts                 | 2 +-
>   arch/arm64/boot/dts/apm/apm-mustang.dts                | 2 +-
>   arch/arm64/boot/dts/broadcom/northstar2/ns2-svk.dts    | 2 +-
>   arch/arm64/boot/dts/broadcom/northstar2/ns2-xmc.dts    | 2 +-

For the above two:

Reviewed-by: Florian Fainelli <florian.fainelli@broadcom.com>
Heiko Stuebner May 1, 2024, 10:31 a.m. UTC | #2
Am Dienstag, 30. April 2024, 21:18:54 CEST schrieb Rob Herring (Arm):
> '/memory' nodes always have a 'reg' property, and therefore should have
> a unit-address with just plain hex (i.e. no commas). Fix all the arm64
> '/memory' nodes.
> 
> It's possible that some bootloader depends on /memory (arm32 ATAG to DT
> code does for example). If so, the memory node should be commented with
> that requirement.
> 
> Signed-off-by: Rob Herring (Arm) <robh@kernel.org>
> ---

>  arch/arm64/boot/dts/rockchip/rk3368-evb.dtsi           | 2 +-
>  arch/arm64/boot/dts/rockchip/rk3368-orion-r68-meta.dts | 2 +-
>  arch/arm64/boot/dts/rockchip/rk3368-r88.dts            | 2 +-

For the Rockchip boards
Reviewed-by: Heiko Stuebner <heiko@sntech.de>

Other rk3368-based boards like the Geekbox and PX5-evb already use
the correct memory@0 node names, so it looks like the the bootloaders
used on rk3368 don't have special requirements for the node-naming.
Bryan O'Donoghue May 1, 2024, 10:44 a.m. UTC | #3
On 30/04/2024 20:18, Rob Herring (Arm) wrote:
> +++ b/arch/arm64/boot/dts/qcom/ipq8074-hk10.dtsi
> @@ -16,7 +16,7 @@ chosen {
>   		stdout-path = "serial0";
>   	};
>   
> -	memory {
> +	memory@40000000 {
>   		device_type = "memory";
>   		reg = <0x0 0x40000000 0x0 0x20000000>;
>   	};

Reviewed-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
Chanho Min May 2, 2024, 5 a.m. UTC | #4
On 5/1/24 4:18, Rob Herring (Arm) wrote:
> '/memory' nodes always have a 'reg' property, and therefore should have
> a unit-address with just plain hex (i.e. no commas). Fix all the arm64
> '/memory' nodes.
> 
> It's possible that some bootloader depends on /memory (arm32 ATAG to DT
> code does for example). If so, the memory node should be commented with
> that requirement.

>   arch/arm64/boot/dts/lg/lg1312-ref.dts                  | 2 +-
>   arch/arm64/boot/dts/lg/lg1313-ref.dts                  | 2 +-

Reviewed-by: Chanho Min <chanho.min@lge.com>
Krzysztof Kozlowski May 2, 2024, 6:34 a.m. UTC | #5
On 30/04/2024 21:18, Rob Herring (Arm) wrote:
> '/memory' nodes always have a 'reg' property, and therefore should have
> a unit-address with just plain hex (i.e. no commas). Fix all the arm64
> '/memory' nodes.
> 
> It's possible that some bootloader depends on /memory (arm32 ATAG to DT
> code does for example). If so, the memory node should be commented with
> that requirement.
> 
> Signed-off-by: Rob Herring (Arm) <robh@kernel.org>
> ---
> SoC maintainers, please take this directly.

Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>

Best regards,
Krzysztof
patchwork-bot+linux-soc@kernel.org May 2, 2024, 2:10 p.m. UTC | #6
Hello:

This patch was applied to soc/soc.git (for-next)
by Arnd Bergmann <arnd@arndb.de>:

On Tue, 30 Apr 2024 14:18:54 -0500 you wrote:
> '/memory' nodes always have a 'reg' property, and therefore should have
> a unit-address with just plain hex (i.e. no commas). Fix all the arm64
> '/memory' nodes.
> 
> It's possible that some bootloader depends on /memory (arm32 ATAG to DT
> code does for example). If so, the memory node should be commented with
> that requirement.
> 
> [...]

Here is the summary with links:
  - arm64: dts: Add/fix /memory node unit-addresses
    https://git.kernel.org/soc/soc/c/5c04a5b065e9

You are awesome, thank you!
Thierry Reding June 28, 2024, 3:06 p.m. UTC | #7
On Tue, Apr 30, 2024 at 02:18:54PM GMT, Rob Herring (Arm) wrote:
[...]
> diff --git a/arch/arm64/boot/dts/nvidia/tegra210-smaug.dts b/arch/arm64/boot/dts/nvidia/tegra210-smaug.dts
> index 9ebb7369256e..2e5b6b2c1f56 100644
> --- a/arch/arm64/boot/dts/nvidia/tegra210-smaug.dts
> +++ b/arch/arm64/boot/dts/nvidia/tegra210-smaug.dts
> @@ -25,7 +25,7 @@ chosen {
>  		stdout-path = "serial0:115200n8";
>  	};
>  
> -	memory {
> +	memory@80000000 {
>  		device_type = "memory";
>  		reg = <0x0 0x80000000 0x0 0xc0000000>;
>  	};

[trimming the recipient list and adding Diogo]

Sorry I just noticed this as I was doing a cleanup path of patchwork.

For tegra210-smaug, unfortunately we can't do this. The problem is that
the firmware for this device looks for a hard-coded /memory device when
updating with the proper memory size and this firmware can't always be
updated.

Diogo, you're one of the few remaining people that I know of that still
use this device (with an upstream kernel). Do you have any more details
about this? Is there any way the firmware can be safely updated on these
devices?

Thierry
Diogo Ivo July 1, 2024, 2:29 p.m. UTC | #8
Hi Thierry,

On Fri, Jun 28, 2024 at 05:06:10PM GMT, Thierry Reding wrote:
> On Tue, Apr 30, 2024 at 02:18:54PM GMT, Rob Herring (Arm) wrote:
> [...]
> > diff --git a/arch/arm64/boot/dts/nvidia/tegra210-smaug.dts b/arch/arm64/boot/dts/nvidia/tegra210-smaug.dts
> > index 9ebb7369256e..2e5b6b2c1f56 100644
> > --- a/arch/arm64/boot/dts/nvidia/tegra210-smaug.dts
> > +++ b/arch/arm64/boot/dts/nvidia/tegra210-smaug.dts
> > @@ -25,7 +25,7 @@ chosen {
> >  		stdout-path = "serial0:115200n8";
> >  	};
> >  
> > -	memory {
> > +	memory@80000000 {
> >  		device_type = "memory";
> >  		reg = <0x0 0x80000000 0x0 0xc0000000>;
> >  	};
> 
> [trimming the recipient list and adding Diogo]
> 
> Sorry I just noticed this as I was doing a cleanup path of patchwork.
> 
> For tegra210-smaug, unfortunately we can't do this. The problem is that
> the firmware for this device looks for a hard-coded /memory device when
> updating with the proper memory size and this firmware can't always be
> updated.
> 
> Diogo, you're one of the few remaining people that I know of that still
> use this device (with an upstream kernel). Do you have any more details
> about this? Is there any way the firmware can be safely updated on these
> devices?

To be honest I am not quite sure. I do know that at least there is a part
of the firmware that is locked down and cannot be updated easily, as you
have to disconnect a ribbon cable inside of the device. Do you know of
any firmware updates for this device? Currently I am not aware of any.

Diogo
diff mbox series

Patch

diff --git a/arch/arm64/boot/dts/actions/s700-cubieboard7.dts b/arch/arm64/boot/dts/actions/s700-cubieboard7.dts
index 63e375cd9eb4..bd54b5165129 100644
--- a/arch/arm64/boot/dts/actions/s700-cubieboard7.dts
+++ b/arch/arm64/boot/dts/actions/s700-cubieboard7.dts
@@ -24,7 +24,7 @@  memory@0 {
 		reg = <0x0 0x0 0x0 0x80000000>;
 	};
 
-	memory@1,e0000000 {
+	memory@1e0000000 {
 		device_type = "memory";
 		reg = <0x1 0xe0000000 0x0 0x0>;
 	};
diff --git a/arch/arm64/boot/dts/apm/apm-merlin.dts b/arch/arm64/boot/dts/apm/apm-merlin.dts
index 2e8069002ec1..6e05cf1a3df6 100644
--- a/arch/arm64/boot/dts/apm/apm-merlin.dts
+++ b/arch/arm64/boot/dts/apm/apm-merlin.dts
@@ -15,7 +15,7 @@  / {
 
 	chosen { };
 
-	memory {
+	memory@100000000 {
 		device_type = "memory";
 		reg = < 0x1 0x00000000 0x0 0x80000000 >;
 	};
diff --git a/arch/arm64/boot/dts/apm/apm-mustang.dts b/arch/arm64/boot/dts/apm/apm-mustang.dts
index 033e10e12b18..e7644cddf06f 100644
--- a/arch/arm64/boot/dts/apm/apm-mustang.dts
+++ b/arch/arm64/boot/dts/apm/apm-mustang.dts
@@ -15,7 +15,7 @@  / {
 
 	chosen { };
 
-	memory {
+	memory@100000000 {
 		device_type = "memory";
 		reg = < 0x1 0x00000000 0x0 0x80000000 >; /* Updated by bootloader */
 	};
diff --git a/arch/arm64/boot/dts/broadcom/northstar2/ns2-svk.dts b/arch/arm64/boot/dts/broadcom/northstar2/ns2-svk.dts
index dec5a110f1e8..f43cfe66b6af 100644
--- a/arch/arm64/boot/dts/broadcom/northstar2/ns2-svk.dts
+++ b/arch/arm64/boot/dts/broadcom/northstar2/ns2-svk.dts
@@ -50,7 +50,7 @@  chosen {
 		bootargs = "earlycon=uart8250,mmio32,0x66130000";
 	};
 
-	memory {
+	memory@80000000 {
 		device_type = "memory";
 		reg = <0x00000000 0x80000000 0x00000000 0x40000000>;
 	};
diff --git a/arch/arm64/boot/dts/broadcom/northstar2/ns2-xmc.dts b/arch/arm64/boot/dts/broadcom/northstar2/ns2-xmc.dts
index 1d314f17bbdd..c50df1d02797 100644
--- a/arch/arm64/boot/dts/broadcom/northstar2/ns2-xmc.dts
+++ b/arch/arm64/boot/dts/broadcom/northstar2/ns2-xmc.dts
@@ -47,7 +47,7 @@  chosen {
 		bootargs = "earlycon=uart8250,mmio32,0x66130000";
 	};
 
-	memory {
+	memory@80000000 {
 		device_type = "memory";
 		reg = <0x00000000 0x80000000 0x00000001 0x00000000>;
 	};
diff --git a/arch/arm64/boot/dts/cavium/thunder2-99xx.dts b/arch/arm64/boot/dts/cavium/thunder2-99xx.dts
index d005e1e79c3d..89fc4107a0c4 100644
--- a/arch/arm64/boot/dts/cavium/thunder2-99xx.dts
+++ b/arch/arm64/boot/dts/cavium/thunder2-99xx.dts
@@ -14,7 +14,7 @@  / {
 	model = "Cavium ThunderX2 CN99XX";
 	compatible = "cavium,thunderx2-cn9900", "brcm,vulcan-soc";
 
-	memory {
+	memory@80000000 {
 		device_type = "memory";
 		reg = <0x00000000 0x80000000 0x0 0x80000000>,  /* 2G @ 2G  */
 		      <0x00000008 0x80000000 0x0 0x80000000>;  /* 2G @ 34G */
diff --git a/arch/arm64/boot/dts/lg/lg1312-ref.dts b/arch/arm64/boot/dts/lg/lg1312-ref.dts
index 260a2c5b19e5..cdd10f138098 100644
--- a/arch/arm64/boot/dts/lg/lg1312-ref.dts
+++ b/arch/arm64/boot/dts/lg/lg1312-ref.dts
@@ -22,7 +22,7 @@  aliases {
 		serial2 = &uart2;
 	};
 
-	memory {
+	memory@0 {
 		device_type = "memory";
 		reg = <0x0 0x00000000 0x20000000>;
 	};
diff --git a/arch/arm64/boot/dts/lg/lg1313-ref.dts b/arch/arm64/boot/dts/lg/lg1313-ref.dts
index e89ae853788a..6ace977ff4cf 100644
--- a/arch/arm64/boot/dts/lg/lg1313-ref.dts
+++ b/arch/arm64/boot/dts/lg/lg1313-ref.dts
@@ -22,7 +22,7 @@  aliases {
 		serial2 = &uart2;
 	};
 
-	memory {
+	memory@0 {
 		device_type = "memory";
 		reg = <0x0 0x00000000 0x20000000>;
 	};
diff --git a/arch/arm64/boot/dts/nuvoton/nuvoton-npcm845-evb.dts b/arch/arm64/boot/dts/nuvoton/nuvoton-npcm845-evb.dts
index a5ab2bc0f835..eeceb5b292a8 100644
--- a/arch/arm64/boot/dts/nuvoton/nuvoton-npcm845-evb.dts
+++ b/arch/arm64/boot/dts/nuvoton/nuvoton-npcm845-evb.dts
@@ -16,7 +16,7 @@  chosen {
 		stdout-path = &serial0;
 	};
 
-	memory {
+	memory@0 {
 		reg = <0x0 0x0 0x0 0x40000000>;
 	};
 };
diff --git a/arch/arm64/boot/dts/nvidia/tegra210-smaug.dts b/arch/arm64/boot/dts/nvidia/tegra210-smaug.dts
index 9ebb7369256e..2e5b6b2c1f56 100644
--- a/arch/arm64/boot/dts/nvidia/tegra210-smaug.dts
+++ b/arch/arm64/boot/dts/nvidia/tegra210-smaug.dts
@@ -25,7 +25,7 @@  chosen {
 		stdout-path = "serial0:115200n8";
 	};
 
-	memory {
+	memory@80000000 {
 		device_type = "memory";
 		reg = <0x0 0x80000000 0x0 0xc0000000>;
 	};
diff --git a/arch/arm64/boot/dts/qcom/ipq8074-hk10.dtsi b/arch/arm64/boot/dts/qcom/ipq8074-hk10.dtsi
index 1b8379ba87f9..34e2f80514a3 100644
--- a/arch/arm64/boot/dts/qcom/ipq8074-hk10.dtsi
+++ b/arch/arm64/boot/dts/qcom/ipq8074-hk10.dtsi
@@ -16,7 +16,7 @@  chosen {
 		stdout-path = "serial0";
 	};
 
-	memory {
+	memory@40000000 {
 		device_type = "memory";
 		reg = <0x0 0x40000000 0x0 0x20000000>;
 	};
diff --git a/arch/arm64/boot/dts/rockchip/rk3368-evb.dtsi b/arch/arm64/boot/dts/rockchip/rk3368-evb.dtsi
index b48b98c13705..e5c0dbf794ae 100644
--- a/arch/arm64/boot/dts/rockchip/rk3368-evb.dtsi
+++ b/arch/arm64/boot/dts/rockchip/rk3368-evb.dtsi
@@ -17,7 +17,7 @@  chosen {
 		stdout-path = "serial2:115200n8";
 	};
 
-	memory {
+	memory@0 {
 		device_type = "memory";
 		reg = <0x0 0x0 0x0 0x40000000>;
 	};
diff --git a/arch/arm64/boot/dts/rockchip/rk3368-orion-r68-meta.dts b/arch/arm64/boot/dts/rockchip/rk3368-orion-r68-meta.dts
index dcee2e28916f..23ae2d9de382 100644
--- a/arch/arm64/boot/dts/rockchip/rk3368-orion-r68-meta.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3368-orion-r68-meta.dts
@@ -21,7 +21,7 @@  chosen {
 		stdout-path = "serial2:115200n8";
 	};
 
-	memory {
+	memory@0 {
 		device_type = "memory";
 		reg = <0x0 0x0 0x0 0x80000000>;
 	};
diff --git a/arch/arm64/boot/dts/rockchip/rk3368-r88.dts b/arch/arm64/boot/dts/rockchip/rk3368-r88.dts
index b16b7ca02379..7f14206d53c3 100644
--- a/arch/arm64/boot/dts/rockchip/rk3368-r88.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3368-r88.dts
@@ -21,7 +21,7 @@  chosen {
 		stdout-path = "serial2:115200n8";
 	};
 
-	memory {
+	memory@0 {
 		device_type = "memory";
 		reg = <0x0 0x0 0x0 0x40000000>;
 	};
diff --git a/arch/arm64/boot/dts/sprd/sp9860g-1h10.dts b/arch/arm64/boot/dts/sprd/sp9860g-1h10.dts
index 6b95fd94cee3..5724cac87e53 100644
--- a/arch/arm64/boot/dts/sprd/sp9860g-1h10.dts
+++ b/arch/arm64/boot/dts/sprd/sp9860g-1h10.dts
@@ -24,7 +24,7 @@  aliases {
 		spi0 = &adi_bus;
 	};
 
-	memory{
+	memory@80000000 {
 		device_type = "memory";
 		reg = <0x0 0x80000000 0 0x60000000>,
 		      <0x1 0x80000000 0 0x60000000>;