[PATCH 1/5] dt-bindings: net: macb: Add SiFive FU740-C000 support

Max Hsu posted 5 patches 1 month, 2 weeks ago
[PATCH 1/5] dt-bindings: net: macb: Add SiFive FU740-C000 support
Posted by Max Hsu 1 month, 2 weeks ago
Add the SiFive FU740-C000 ethernet controller compatible string to the
Cadence MACB binding documentation.

The FU740 ethernet controller uses the same GEMGXL management block as
the FU540, which is tightly coupled with the Cadence MACB IP. This
follows the SiFive IP versioning scheme which requires SoC-specific
compatible strings for proper hardware identification.

Signed-off-by: Max Hsu <max.hsu@sifive.com>
---
 Documentation/devicetree/bindings/net/cdns,macb.yaml | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/Documentation/devicetree/bindings/net/cdns,macb.yaml b/Documentation/devicetree/bindings/net/cdns,macb.yaml
index cb14c35ba996..b46dde1da170 100644
--- a/Documentation/devicetree/bindings/net/cdns,macb.yaml
+++ b/Documentation/devicetree/bindings/net/cdns,macb.yaml
@@ -63,6 +63,7 @@ properties:
           - mobileye,eyeq5-gem        # Mobileye EyeQ5 SoCs
           - raspberrypi,rp1-gem       # Raspberry Pi RP1 gigabit ethernet interface
           - sifive,fu540-c000-gem     # SiFive FU540-C000 SoC
+          - sifive,fu740-c000-gem     # SiFive FU740-C000 SoC
 
       - items:
           - enum:
@@ -74,7 +75,7 @@ properties:
     minItems: 1
     items:
       - description: Basic register set
-      - description: GEMGXL Management block registers on SiFive FU540-C000 SoC
+      - description: GEMGXL Management block registers on SiFive FU540/FU740 SoCs
 
   interrupts:
     minItems: 1
@@ -181,7 +182,9 @@ allOf:
         properties:
           compatible:
             contains:
-              const: sifive,fu540-c000-gem
+              enum:
+                - sifive,fu540-c000-gem
+                - sifive,fu740-c000-gem
     then:
       properties:
         reg:

-- 
2.43.0
Re: [PATCH 1/5] dt-bindings: net: macb: Add SiFive FU740-C000 support
Posted by Conor Dooley 1 month, 2 weeks ago
On Fri, Feb 20, 2026 at 04:27:05PM +0800, Max Hsu wrote:
> Add the SiFive FU740-C000 ethernet controller compatible string to the
> Cadence MACB binding documentation.
> 
> The FU740 ethernet controller uses the same GEMGXL management block as
> the FU540, which is tightly coupled with the Cadence MACB IP. This
> follows the SiFive IP versioning scheme which requires SoC-specific
> compatible strings for proper hardware identification.

Your rationale for this change is misguided, as this is not a SiFive IP,
so that document does not apply. On the other hand, the general rules
for devicetrees require this so this just means a change in the
rationale provided.

> 
> Signed-off-by: Max Hsu <max.hsu@sifive.com>
> ---
>  Documentation/devicetree/bindings/net/cdns,macb.yaml | 7 +++++--
>  1 file changed, 5 insertions(+), 2 deletions(-)
> 
> diff --git a/Documentation/devicetree/bindings/net/cdns,macb.yaml b/Documentation/devicetree/bindings/net/cdns,macb.yaml
> index cb14c35ba996..b46dde1da170 100644
> --- a/Documentation/devicetree/bindings/net/cdns,macb.yaml
> +++ b/Documentation/devicetree/bindings/net/cdns,macb.yaml
> @@ -63,6 +63,7 @@ properties:
>            - mobileye,eyeq5-gem        # Mobileye EyeQ5 SoCs
>            - raspberrypi,rp1-gem       # Raspberry Pi RP1 gigabit ethernet interface
>            - sifive,fu540-c000-gem     # SiFive FU540-C000 SoC
> +          - sifive,fu740-c000-gem     # SiFive FU740-C000 SoC

I don't think this is right, since it is identical to the one on the
fu540 (as evidenced by how it has worked until now and the contents of
your driver change). I think you should add the fu740 with a fallback to
the fu540, like the devices from Microchip that fall back to the
microchip,sama7g5-gem. The rest of the changes to the driver and binding
can then be dropped as they'll be redundant.

Thanks,
Conor.

pw-bot: changes-requested

>  
>        - items:
>            - enum:
> @@ -74,7 +75,7 @@ properties:
>      minItems: 1
>      items:
>        - description: Basic register set
> -      - description: GEMGXL Management block registers on SiFive FU540-C000 SoC
> +      - description: GEMGXL Management block registers on SiFive FU540/FU740 SoCs
>  
>    interrupts:
>      minItems: 1
> @@ -181,7 +182,9 @@ allOf:
>          properties:
>            compatible:
>              contains:
> -              const: sifive,fu540-c000-gem
> +              enum:
> +                - sifive,fu540-c000-gem
> +                - sifive,fu740-c000-gem
>      then:
>        properties:
>          reg:
> 
> -- 
> 2.43.0
> 
Re: [PATCH 1/5] dt-bindings: net: macb: Add SiFive FU740-C000 support
Posted by Max Hsu 1 month, 1 week ago
On Fri, Feb 20, 2026 at 09:29:28 +0000, Conor Dooley wrote:
> I don't think this is right, since it is identical to the one on the
> fu540 (as evidenced by how it has worked until now and the contents of
> your driver change). I think you should add the fu740 with a fallback to
> the fu540, like the devices from Microchip that fall back to the
> microchip,sama7g5-gem. The rest of the changes to the driver and binding
> can then be dropped as they'll be redundant.

Thanks for the feedback, Conor!
I'm taking your suggestions. and will prepare v2.

Thanks,
Max

On Fri, Feb 20, 2026 at 5:29 PM Conor Dooley <conor@kernel.org> wrote:
>
> On Fri, Feb 20, 2026 at 04:27:05PM +0800, Max Hsu wrote:
> > Add the SiFive FU740-C000 ethernet controller compatible string to the
> > Cadence MACB binding documentation.
> >
> > The FU740 ethernet controller uses the same GEMGXL management block as
> > the FU540, which is tightly coupled with the Cadence MACB IP. This
> > follows the SiFive IP versioning scheme which requires SoC-specific
> > compatible strings for proper hardware identification.
>
> Your rationale for this change is misguided, as this is not a SiFive IP,
> so that document does not apply. On the other hand, the general rules
> for devicetrees require this so this just means a change in the
> rationale provided.
>
> >
> > Signed-off-by: Max Hsu <max.hsu@sifive.com>
> > ---
> >  Documentation/devicetree/bindings/net/cdns,macb.yaml | 7 +++++--
> >  1 file changed, 5 insertions(+), 2 deletions(-)
> >
> > diff --git a/Documentation/devicetree/bindings/net/cdns,macb.yaml b/Documentation/devicetree/bindings/net/cdns,macb.yaml
> > index cb14c35ba996..b46dde1da170 100644
> > --- a/Documentation/devicetree/bindings/net/cdns,macb.yaml
> > +++ b/Documentation/devicetree/bindings/net/cdns,macb.yaml
> > @@ -63,6 +63,7 @@ properties:
> >            - mobileye,eyeq5-gem        # Mobileye EyeQ5 SoCs
> >            - raspberrypi,rp1-gem       # Raspberry Pi RP1 gigabit ethernet interface
> >            - sifive,fu540-c000-gem     # SiFive FU540-C000 SoC
> > +          - sifive,fu740-c000-gem     # SiFive FU740-C000 SoC
>
> I don't think this is right, since it is identical to the one on the
> fu540 (as evidenced by how it has worked until now and the contents of
> your driver change). I think you should add the fu740 with a fallback to
> the fu540, like the devices from Microchip that fall back to the
> microchip,sama7g5-gem. The rest of the changes to the driver and binding
> can then be dropped as they'll be redundant.
>
> Thanks,
> Conor.
>
> pw-bot: changes-requested
>
> >
> >        - items:
> >            - enum:
> > @@ -74,7 +75,7 @@ properties:
> >      minItems: 1
> >      items:
> >        - description: Basic register set
> > -      - description: GEMGXL Management block registers on SiFive FU540-C000 SoC
> > +      - description: GEMGXL Management block registers on SiFive FU540/FU740 SoCs
> >
> >    interrupts:
> >      minItems: 1
> > @@ -181,7 +182,9 @@ allOf:
> >          properties:
> >            compatible:
> >              contains:
> > -              const: sifive,fu540-c000-gem
> > +              enum:
> > +                - sifive,fu540-c000-gem
> > +                - sifive,fu740-c000-gem
> >      then:
> >        properties:
> >          reg:
> >
> > --
> > 2.43.0
> >