Message ID | 20240430191856.874600-2-robh@kernel.org |
---|---|
State | New |
Headers | show |
Series | arm64: dts: Add/fix /memory node unit-addresses | expand |
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>
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.
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>
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>
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
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
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 --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>;
'/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(-)