Message ID | 20220725055402.6013-4-william.zhang@broadcom.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | arm64: bcmbca: Move BCM4908 SoC support under ARCH_BCMBCA | expand |
On Sun, Jul 24, 2022 at 10:53:56PM -0700, William Zhang wrote: > Append "brcm,bcmbca" to compatible strings based on the new bcmbca > binding rule for BCM4908 family based boards. This will break drivers > that use the old compatible string for binding. Fortunately there is no > such usage in linux and u-boot. How does adding an additional compatible break things? > > Signed-off-by: William Zhang <william.zhang@broadcom.com> > Acked-by: Rafał Miłecki <rafal@milecki.pl> > > --- > > Changes in v2: > - Add Acked-by tag > > arch/arm64/boot/dts/broadcom/bcm4908/bcm4906-netgear-r8000p.dts | 2 +- > .../dts/broadcom/bcm4908/bcm4906-tplink-archer-c2300-v1.dts | 2 +- > arch/arm64/boot/dts/broadcom/bcm4908/bcm4908-asus-gt-ac5300.dts | 2 +- > .../arm64/boot/dts/broadcom/bcm4908/bcm4908-netgear-raxe500.dts | 2 +- > 4 files changed, 4 insertions(+), 4 deletions(-) > > diff --git a/arch/arm64/boot/dts/broadcom/bcm4908/bcm4906-netgear-r8000p.dts b/arch/arm64/boot/dts/broadcom/bcm4908/bcm4906-netgear-r8000p.dts > index 2dd028438c22..d8b60575eb4f 100644 > --- a/arch/arm64/boot/dts/broadcom/bcm4908/bcm4906-netgear-r8000p.dts > +++ b/arch/arm64/boot/dts/broadcom/bcm4908/bcm4906-netgear-r8000p.dts > @@ -7,7 +7,7 @@ > #include "bcm4906.dtsi" > > / { > - compatible = "netgear,r8000p", "brcm,bcm4906", "brcm,bcm4908"; > + compatible = "netgear,r8000p", "brcm,bcm4906", "brcm,bcm4908", "brcm,bcmbca"; > model = "Netgear R8000P"; > > memory@0 { > diff --git a/arch/arm64/boot/dts/broadcom/bcm4908/bcm4906-tplink-archer-c2300-v1.dts b/arch/arm64/boot/dts/broadcom/bcm4908/bcm4906-tplink-archer-c2300-v1.dts > index 064f7f549665..296393d4aaab 100644 > --- a/arch/arm64/boot/dts/broadcom/bcm4908/bcm4906-tplink-archer-c2300-v1.dts > +++ b/arch/arm64/boot/dts/broadcom/bcm4908/bcm4906-tplink-archer-c2300-v1.dts > @@ -7,7 +7,7 @@ > #include "bcm4906.dtsi" > > / { > - compatible = "tplink,archer-c2300-v1", "brcm,bcm4906", "brcm,bcm4908"; > + compatible = "tplink,archer-c2300-v1", "brcm,bcm4906", "brcm,bcm4908", "brcm,bcmbca"; > model = "TP-Link Archer C2300 V1"; > > memory@0 { > diff --git a/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908-asus-gt-ac5300.dts b/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908-asus-gt-ac5300.dts > index 04f8524b5335..787c7ddf9102 100644 > --- a/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908-asus-gt-ac5300.dts > +++ b/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908-asus-gt-ac5300.dts > @@ -6,7 +6,7 @@ > #include "bcm4908.dtsi" > > / { > - compatible = "asus,gt-ac5300", "brcm,bcm4908"; > + compatible = "asus,gt-ac5300", "brcm,bcm4908", "brcm,bcmbca"; > model = "Asus GT-AC5300"; > > memory@0 { > diff --git a/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908-netgear-raxe500.dts b/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908-netgear-raxe500.dts > index 3c2cf2d238b6..23b96c663239 100644 > --- a/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908-netgear-raxe500.dts > +++ b/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908-netgear-raxe500.dts > @@ -3,7 +3,7 @@ > #include "bcm4908.dtsi" > > / { > - compatible = "netgear,raxe500", "brcm,bcm4908"; > + compatible = "netgear,raxe500", "brcm,bcm4908", "brcm,bcmbca"; > model = "Netgear RAXE500"; > > memory@0 { > -- > 2.34.1 >
Hi Rob, On 07/25/2022 04:32 PM, Rob Herring wrote: > On Sun, Jul 24, 2022 at 10:53:56PM -0700, William Zhang wrote: >> Append "brcm,bcmbca" to compatible strings based on the new bcmbca >> binding rule for BCM4908 family based boards. This will break drivers >> that use the old compatible string for binding. Fortunately there is no >> such usage in linux and u-boot. > > How does adding an additional compatible break things? > In theory when some crazy code tries to match the entire string. But not in linux, u-boot code and hopefully not in other bootloader and Os does that. But this does change an existing compatible string so Krzysztof suggested to add comment about the breakage in the commit message. I can remove this and send v3 if you guys think it is necessary. >> >> Signed-off-by: William Zhang <william.zhang@broadcom.com> >> Acked-by: Rafał Miłecki <rafal@milecki.pl> >> >> --- >> >> Changes in v2: >> - Add Acked-by tag >> >> arch/arm64/boot/dts/broadcom/bcm4908/bcm4906-netgear-r8000p.dts | 2 +- >> .../dts/broadcom/bcm4908/bcm4906-tplink-archer-c2300-v1.dts | 2 +- >> arch/arm64/boot/dts/broadcom/bcm4908/bcm4908-asus-gt-ac5300.dts | 2 +- >> .../arm64/boot/dts/broadcom/bcm4908/bcm4908-netgear-raxe500.dts | 2 +- >> 4 files changed, 4 insertions(+), 4 deletions(-) >> >> diff --git a/arch/arm64/boot/dts/broadcom/bcm4908/bcm4906-netgear-r8000p.dts b/arch/arm64/boot/dts/broadcom/bcm4908/bcm4906-netgear-r8000p.dts >> index 2dd028438c22..d8b60575eb4f 100644 >> --- a/arch/arm64/boot/dts/broadcom/bcm4908/bcm4906-netgear-r8000p.dts >> +++ b/arch/arm64/boot/dts/broadcom/bcm4908/bcm4906-netgear-r8000p.dts >> @@ -7,7 +7,7 @@ >> #include "bcm4906.dtsi" >> >> / { >> - compatible = "netgear,r8000p", "brcm,bcm4906", "brcm,bcm4908"; >> + compatible = "netgear,r8000p", "brcm,bcm4906", "brcm,bcm4908", "brcm,bcmbca"; >> model = "Netgear R8000P"; >> >> memory@0 { >> diff --git a/arch/arm64/boot/dts/broadcom/bcm4908/bcm4906-tplink-archer-c2300-v1.dts b/arch/arm64/boot/dts/broadcom/bcm4908/bcm4906-tplink-archer-c2300-v1.dts >> index 064f7f549665..296393d4aaab 100644 >> --- a/arch/arm64/boot/dts/broadcom/bcm4908/bcm4906-tplink-archer-c2300-v1.dts >> +++ b/arch/arm64/boot/dts/broadcom/bcm4908/bcm4906-tplink-archer-c2300-v1.dts >> @@ -7,7 +7,7 @@ >> #include "bcm4906.dtsi" >> >> / { >> - compatible = "tplink,archer-c2300-v1", "brcm,bcm4906", "brcm,bcm4908"; >> + compatible = "tplink,archer-c2300-v1", "brcm,bcm4906", "brcm,bcm4908", "brcm,bcmbca"; >> model = "TP-Link Archer C2300 V1"; >> >> memory@0 { >> diff --git a/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908-asus-gt-ac5300.dts b/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908-asus-gt-ac5300.dts >> index 04f8524b5335..787c7ddf9102 100644 >> --- a/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908-asus-gt-ac5300.dts >> +++ b/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908-asus-gt-ac5300.dts >> @@ -6,7 +6,7 @@ >> #include "bcm4908.dtsi" >> >> / { >> - compatible = "asus,gt-ac5300", "brcm,bcm4908"; >> + compatible = "asus,gt-ac5300", "brcm,bcm4908", "brcm,bcmbca"; >> model = "Asus GT-AC5300"; >> >> memory@0 { >> diff --git a/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908-netgear-raxe500.dts b/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908-netgear-raxe500.dts >> index 3c2cf2d238b6..23b96c663239 100644 >> --- a/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908-netgear-raxe500.dts >> +++ b/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908-netgear-raxe500.dts >> @@ -3,7 +3,7 @@ >> #include "bcm4908.dtsi" >> >> / { >> - compatible = "netgear,raxe500", "brcm,bcm4908"; >> + compatible = "netgear,raxe500", "brcm,bcm4908", "brcm,bcmbca"; >> model = "Netgear RAXE500"; >> >> memory@0 { >> -- >> 2.34.1 >> > >
On 2022-07-26 03:09, William Zhang wrote: > On 07/25/2022 04:32 PM, Rob Herring wrote: >> On Sun, Jul 24, 2022 at 10:53:56PM -0700, William Zhang wrote: >>> Append "brcm,bcmbca" to compatible strings based on the new bcmbca >>> binding rule for BCM4908 family based boards. This will break drivers >>> that use the old compatible string for binding. Fortunately there is >>> no >>> such usage in linux and u-boot. >> >> How does adding an additional compatible break things? >> In theory when some crazy code tries to match the entire string. But >> not > in linux, u-boot code and hopefully not in other bootloader and Os > does that. But this does change an existing compatible string so > Krzysztof suggested to add comment about the breakage in the commit > message. I can remove this and send v3 if you guys think it is > necessary. Krzysztof commented on ABI breakage [1] when you tried removing "brcm,bcm4908" from the "compatible" list in your patch [RFC PATCH 3/3] arm64: dts: bcmbca: update bcm4808 board dts file [2] In this version of your patch you don't remove "brcm,bcm4908" anymore so this change doesn't break anything. Adding a new "compatible" string doesn't break things. You can remove that info from the commit message. [1] https://lore.kernel.org/linux-arm-kernel/d93e55fa-3359-2609-aad5-c80eca78f380@linaro.org/ [2] https://lore.kernel.org/linux-arm-kernel/20220712021144.7068-4-william.zhang@broadcom.com/
On 27/07/2022 12:39, Rafał Miłecki wrote: > On 2022-07-26 03:09, William Zhang wrote: >> On 07/25/2022 04:32 PM, Rob Herring wrote: >>> On Sun, Jul 24, 2022 at 10:53:56PM -0700, William Zhang wrote: >>>> Append "brcm,bcmbca" to compatible strings based on the new bcmbca >>>> binding rule for BCM4908 family based boards. This will break drivers >>>> that use the old compatible string for binding. Fortunately there is >>>> no >>>> such usage in linux and u-boot. >>> >>> How does adding an additional compatible break things? >>> In theory when some crazy code tries to match the entire string. But >>> not >> in linux, u-boot code and hopefully not in other bootloader and Os >> does that. But this does change an existing compatible string so >> Krzysztof suggested to add comment about the breakage in the commit >> message. I can remove this and send v3 if you guys think it is >> necessary. > > Krzysztof commented on ABI breakage [1] when you tried removing > "brcm,bcm4908" from the "compatible" list in your patch > [RFC PATCH 3/3] arm64: dts: bcmbca: update bcm4808 board dts file [2] > > In this version of your patch you don't remove "brcm,bcm4908" anymore so > this change doesn't break anything. Adding a new "compatible" string > doesn't break things. You can remove that info from the commit message. Thanks... It is second thing (after not existing Reviewed-by) attributed to me by William, although here probably by misunderstanding... So for clarity (obvious stuff is not always obvious to everyone): 1. Removal of compatible is an ABI break. 2. Add of compatible is not an ABI break. See also: https://elixir.bootlin.com/linux/v5.19-rc8/source/Documentation/devicetree/bindings/ABI.rst#L26 Best regards, Krzysztof
diff --git a/arch/arm64/boot/dts/broadcom/bcm4908/bcm4906-netgear-r8000p.dts b/arch/arm64/boot/dts/broadcom/bcm4908/bcm4906-netgear-r8000p.dts index 2dd028438c22..d8b60575eb4f 100644 --- a/arch/arm64/boot/dts/broadcom/bcm4908/bcm4906-netgear-r8000p.dts +++ b/arch/arm64/boot/dts/broadcom/bcm4908/bcm4906-netgear-r8000p.dts @@ -7,7 +7,7 @@ #include "bcm4906.dtsi" / { - compatible = "netgear,r8000p", "brcm,bcm4906", "brcm,bcm4908"; + compatible = "netgear,r8000p", "brcm,bcm4906", "brcm,bcm4908", "brcm,bcmbca"; model = "Netgear R8000P"; memory@0 { diff --git a/arch/arm64/boot/dts/broadcom/bcm4908/bcm4906-tplink-archer-c2300-v1.dts b/arch/arm64/boot/dts/broadcom/bcm4908/bcm4906-tplink-archer-c2300-v1.dts index 064f7f549665..296393d4aaab 100644 --- a/arch/arm64/boot/dts/broadcom/bcm4908/bcm4906-tplink-archer-c2300-v1.dts +++ b/arch/arm64/boot/dts/broadcom/bcm4908/bcm4906-tplink-archer-c2300-v1.dts @@ -7,7 +7,7 @@ #include "bcm4906.dtsi" / { - compatible = "tplink,archer-c2300-v1", "brcm,bcm4906", "brcm,bcm4908"; + compatible = "tplink,archer-c2300-v1", "brcm,bcm4906", "brcm,bcm4908", "brcm,bcmbca"; model = "TP-Link Archer C2300 V1"; memory@0 { diff --git a/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908-asus-gt-ac5300.dts b/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908-asus-gt-ac5300.dts index 04f8524b5335..787c7ddf9102 100644 --- a/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908-asus-gt-ac5300.dts +++ b/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908-asus-gt-ac5300.dts @@ -6,7 +6,7 @@ #include "bcm4908.dtsi" / { - compatible = "asus,gt-ac5300", "brcm,bcm4908"; + compatible = "asus,gt-ac5300", "brcm,bcm4908", "brcm,bcmbca"; model = "Asus GT-AC5300"; memory@0 { diff --git a/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908-netgear-raxe500.dts b/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908-netgear-raxe500.dts index 3c2cf2d238b6..23b96c663239 100644 --- a/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908-netgear-raxe500.dts +++ b/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908-netgear-raxe500.dts @@ -3,7 +3,7 @@ #include "bcm4908.dtsi" / { - compatible = "netgear,raxe500", "brcm,bcm4908"; + compatible = "netgear,raxe500", "brcm,bcm4908", "brcm,bcmbca"; model = "Netgear RAXE500"; memory@0 {