ARM: dts: broadcom: bcm2835-rpi: Move the firmware node down 1 level
Subsystems (3)
Rob Herring (Arm)
maintainerPATCH 1/2 ARM: dts: broadcom: bcm2835-rpi: Move the firmware node down 1 level
Commit 32eea985999b ("ARM: dts: broadcom: bcm2835-rpi: Move non simple-bus nodes to root level") moved the firmware nodes into the standard /firmware. However, /firmware is intended to be just a container for firmware nodes as it is possible to have multiple types of firmware (e.g. SCMI, OP-TEE, etc.). Move the RPi firmware down a level.
---
This is only half the fix. Unfortunately, a kernel change[1] is also needed to make this all work. I do plan for that to go to stable. I'll leave it up to the Broadcom maintainers whether it's preferred to revert the fixed patches or apply these fixes. A 3rd option is revert for now and apply these DT changes some time later to give some time for stable updates.
Rob
[1] https://lore.kernel.org/all/[email protected]/
arch/arm/boot/dts/broadcom/bcm2835-rpi.dtsi | 24 +++++++++++---------- 1 file changed, 13 insertions(+), 11 deletions(-)
arch/arm/boot/dts/broadcom/bcm2835-rpi.dtsi +13 -11
@@ -1,19 +1,21 @@ #include <dt-bindings/power/raspberrypi-power.h> / { - firmware: firmware { - compatible = "raspberrypi,bcm2835-firmware", "simple-mfd"; - mboxes = <&mailbox>; + firmware { + firmware: rpi-firmware { + compatible = "raspberrypi,bcm2835-firmware", "simple-mfd"; + mboxes = <&mailbox>; - firmware_clocks: clocks { - compatible = "raspberrypi,firmware-clocks"; - #clock-cells = <1>; - }; + firmware_clocks: clocks { + compatible = "raspberrypi,firmware-clocks"; + #clock-cells = <1>; + }; - power: power { - compatible = "raspberrypi,bcm2835-power"; - firmware = <&firmware>; - #power-domain-cells = <1>; + power: power { + compatible = "raspberrypi,bcm2835-power"; + firmware = <&firmware>; + #power-domain-cells = <1>; + }; }; };
Signature · 1 line
2.51.0
Rob Herring (Arm)
maintainerPATCH 2/2 arm64: dts: broadcom: bcm2712-rpi: Move the firmware node down 1 level
Commit b32673d226c9 ("arm64: dts: broadcom: bcm2712: Move non simple-bus nodes to root level") moved the firmware nodes into the standard /firmware. However, /firmware is intended to be just a container for firmware nodes as it is possible to have multiple types of firmware (e.g. SCMI, OP-TEE, etc.). Move the RPi firmware down a level.
--- .../dts/broadcom/bcm2712-rpi-5-b-base.dtsi | 40 ++++++++++--------- 1 file changed, 21 insertions(+), 19 deletions(-)
arch/arm64/boot/dts/broadcom/bcm2712-rpi-5-b-base.dtsi +21 -19
@@ -44,25 +44,27 @@ power_button: power-button { }; }; - firmware: firmware { - compatible = "raspberrypi,bcm2835-firmware", "simple-mfd"; - - mboxes = <&mailbox>; - - firmware_clocks: clocks { - compatible = "raspberrypi,firmware-clocks"; - #clock-cells = <1>; - }; - - reset: reset { - compatible = "raspberrypi,firmware-reset"; - #reset-cells = <1>; - }; - - power: power { - compatible = "raspberrypi,bcm2835-power"; - firmware = <&firmware>; - #power-domain-cells = <1>; + firmware { + firmware: rpi-firmware { + compatible = "raspberrypi,bcm2835-firmware", "simple-mfd"; + + mboxes = <&mailbox>; + + firmware_clocks: clocks { + compatible = "raspberrypi,firmware-clocks"; + #clock-cells = <1>; + }; + + reset: reset { + compatible = "raspberrypi,firmware-reset"; + #reset-cells = <1>; + }; + + power: power { + compatible = "raspberrypi,bcm2835-power"; + firmware = <&firmware>; + #power-domain-cells = <1>; + }; }; };
Signature · 1 line
2.51.0
Florian Fainelli
maintainerQuoted 9 lines · Rob Herring (Arm)
Commit
32eea985999b("ARM: dts: broadcom: bcm2835-rpi: Move non simple-bus nodes to root level") moved the firmware nodes into the standard /firmware. However, /firmware is intended to be just a container for firmware nodes as it is possible to have multiple types of firmware (e.g. SCMI, OP-TEE, etc.). Move the RPi firmware down a level.Fixes 32eea985999b ("ARM: dts: broadcom: bcm2835-rpi: Move non simple-bus nodes to root level")Reported-by Marek Szyprowski <[email protected]>Signed-off-by Rob Herring (Arm) <[email protected]>
Quoted 7 lines
---
This is only half the fix. Unfortunately, a kernel change[1] is also needed to make this all work. I do plan for that to go to stable. I'll leave it up to the Broadcom maintainers whether it's preferred to revert the fixed patches or apply these fixes. A 3rd option is revert for now and apply these DT changes some time later to give some time for stable updates.
Let's wait until your fix for the /firmware match table gets applied and then I will pick up your two changes.
Signature · 1 line
Florian
Quoted 19 lines · Florian Fainelli
Quoted 10 lines · Rob Herring (Arm)
Commit
32eea985999b("ARM: dts: broadcom: bcm2835-rpi: Move non simple-bus nodes to root level") moved the firmware nodes into the standard /firmware. However, /firmware is intended to be just a container for firmware nodes as it is possible to have multiple types of firmware (e.g. SCMI, OP-TEE, etc.). Move the RPi firmware down a level.Fixes 32eea985999b ("ARM: dts: broadcom: bcm2835-rpi: Move nonsimple-bus nodes to root level")
Reported-by Marek Szyprowski <[email protected]>Signed-off-by Rob Herring (Arm) <[email protected]>Quoted 7 lines
---
This is only half the fix. Unfortunately, a kernel change[1] is also needed to make this all work. I do plan for that to go to stable. I'll leave it up to the Broadcom maintainers whether it's preferred to revert the fixed patches or apply these fixes. A 3rd option is revert for now and apply these DT changes some time later to give some time for stable updates.
Quoted 2 lines
Let's wait until your fix for the /firmware match table gets applied and then I will pick up your two changes.
Florian: I've noticed that the $subject patch has been applied to yesterday's linux-next as commit 0603d8af97ff, but the code applied in Your tree differs from what has been posted in this thread. See:
https://lore.kernel.org/all/[email protected]/
The "firmware" node in Your tree is under "soc" node, but without adding a "compatible = simple-mfd;" property there it won't be populated, what breaks operation of all drivers requiring the firmware driver(s).
Best regards
Signature · 2 lines
Marek Szyprowski, PhD Samsung R&D Institute Poland
Quoted 24 lines · Marek Szyprowski
Quoted 19 lines · Florian Fainelli
Quoted 10 lines · Rob Herring (Arm)
Commit
32eea985999b("ARM: dts: broadcom: bcm2835-rpi: Move non simple-bus nodes to root level") moved the firmware nodes into the standard /firmware. However, /firmware is intended to be just a container for firmware nodes as it is possible to have multiple types of firmware (e.g. SCMI, OP-TEE, etc.). Move the RPi firmware down a level.Fixes 32eea985999b ("ARM: dts: broadcom: bcm2835-rpi: Move nonsimple-bus nodes to root level")
Reported-by Marek Szyprowski <[email protected]>Signed-off-by Rob Herring (Arm) <[email protected]>Quoted 7 lines
---
This is only half the fix. Unfortunately, a kernel change[1] is also needed to make this all work. I do plan for that to go to stable. I'll leave it up to the Broadcom maintainers whether it's preferred to revert the fixed patches or apply these fixes. A 3rd option is revert for now and apply these DT changes some time later to give some time for stable updates.Quoted 2 lines
Let's wait until your fix for the /firmware match table gets applied and then I will pick up your two changes.
Quoted 8 lines
Florian: I've noticed that the $subject patch has been applied to yesterday's linux-next as commit
0603d8af97ff, but the code applied in Your tree differs from what has been posted in this thread. See:
And regardless firmware as non-MMIO cannot be placed in soc node. Nothing in patch SoB changelog explains why the patch was modified when applying (and it is substantial change).
Best regards,
Krzysztof
Quoted 3 lines · Marek Szyprowski
Florian: I've noticed that the $subject patch has been applied to yesterday's linux-next as commit
0603d8af97ff, but the code applied in Your tree differs from what has been posted in this thread. See:
...
Quoted 3 lines
The "firmware" node in Your tree is under "soc" node, but without adding a "compatible = simple-mfd;" property there it won't be populated, what breaks operation of all drivers requiring the firmware driver(s).
This includes the ethernet controller so all testing based on NFS root is having a bad time :(
Florian Fainelli
maintainerQuoted 30 lines · Marek Szyprowski
Quoted 19 lines · Florian Fainelli
Quoted 10 lines · Rob Herring (Arm)
Commit
32eea985999b("ARM: dts: broadcom: bcm2835-rpi: Move non simple-bus nodes to root level") moved the firmware nodes into the standard /firmware. However, /firmware is intended to be just a container for firmware nodes as it is possible to have multiple types of firmware (e.g. SCMI, OP-TEE, etc.). Move the RPi firmware down a level.Fixes 32eea985999b ("ARM: dts: broadcom: bcm2835-rpi: Move nonsimple-bus nodes to root level")
Reported-by Marek Szyprowski <[email protected]>Signed-off-by Rob Herring (Arm) <[email protected]>Quoted 7 lines
---
This is only half the fix. Unfortunately, a kernel change[1] is also needed to make this all work. I do plan for that to go to stable. I'll leave it up to the Broadcom maintainers whether it's preferred to revert the fixed patches or apply these fixes. A 3rd option is revert for now and apply these DT changes some time later to give some time for stable updates.Quoted 2 lines
Let's wait until your fix for the /firmware match table gets applied and then I will pick up your two changes.
Florian: I've noticed that the $subject patch has been applied to yesterday's linux-next as commit
0603d8af97ff, but the code applied in Your tree differs from what has been posted in this thread. See:
Quoted 8 lines
https://lore.kernel.org/all/[email protected]/
The "firmware" node in Your tree is under "soc" node, but without adding a "compatible = simple-mfd;" property there it won't be populated, what breaks operation of all drivers requiring the firmware driver(s).
Yes I see what happened here, Rob's patch is dependent upon 32eea985999b which I had initially applied then dropped, and then I did not (re)apply it again as a prerequisite for that one we are replying to and I incorrectly resolved the conflict as a result. It should have been clear that no conflict resolution should have been necessary, *sigh*.
This is now fixed and pushed out, sorry about that, definitively a sloppy move here.
Will let that simmer in linux-next for a day and then sent out the pull requests.
Thanks again Marek for catching this, my test rack does not currently have a working RPi system, something to address.
Signature · 1 line
Florian