[PATCH v3 net-next 2/8] dt-bindings: net: mediatek: add WED RX binding for MT7986 eth driver

Sujuan Chen (陈素娟) Sujuan.Chen at mediatek.com
Mon Dec 5 19:18:03 PST 2022


On Mon, 2022-11-07 at 11:04 +0100, Krzysztof Kozlowski wrote:
> On 03/11/2022 19:29, Lorenzo Bianconi wrote:
> > > On 03/11/2022 13:51, Lorenzo Bianconi wrote:
> > > > > > diff --git
> > > > > > a/Documentation/devicetree/bindings/arm/mediatek/mediatek,m
> > > > > > t7986-wo-boot.yaml
> > > > > > b/Documentation/devicetree/bindings/arm/mediatek/mediatek,m
> > > > > > t7986-wo-boot.yaml
> > > > > > new file mode 100644
> > > > > > index 000000000000..6c3c514c48ef
> > > > > > --- /dev/null
> > > > > > +++
> > > > > > b/Documentation/devicetree/bindings/arm/mediatek/mediatek,m
> > > > > > t7986-wo-boot.yaml
> > 
> > Regarding "mediatek,mt7986-wed" compatible string it has been added
> > to
> > mt7986a.dtsi in the commit below:
> > 
> > commit 00b9903996b3e1e287c748928606d738944e45de
> > Author: Lorenzo Bianconi <lorenzo at kernel.org>
> > Date:   Tue Sep 20 12:11:13 2022 +0200
> > 
> > arm64: dts: mediatek: mt7986: add support for Wireless Ethernet
> > Dispatch
> > 
> > > > > 
> > > > > arm is only for top-level stuff. Choose appropriate
> > > > > subsystem, soc as
> > > > > last resort.
> > > > 
> > > > these chips are used only for networking so is net folder fine?
> > > 
> > > So this is some MMIO and no actual device? Then rather soc.
> > 
> > ack, I will move them there
> > 
> > > 
> > > > 
> > > > > 
> > > > > > @@ -0,0 +1,47 @@
> > > > > > +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> > > > > > +%YAML 1.2
> > > > > > +---
> > > > > > +$id: 
> > > > > > https://urldefense.com/v3/__http://devicetree.org/schemas/arm/mediatek/mediatek,mt7986-wo-boot.yaml*__;Iw!!CTRNKA9wMg0ARbw!zwfPbJpcAbOIOvolZM17U38coXpSGcUDmLW5g8m4760Crj_jruCb42rt9lXOq8svAEM$
> > > > > >  
> > > > > > +$schema: 
> > > > > > https://urldefense.com/v3/__http://devicetree.org/meta-schemas/core.yaml*__;Iw!!CTRNKA9wMg0ARbw!zwfPbJpcAbOIOvolZM17U38coXpSGcUDmLW5g8m4760Crj_jruCb42rt9lXOpl37_FI$
> > > > > >  
> > > > > > +
> > > > > > +title:
> > > > > > +  MediaTek Wireless Ethernet Dispatch WO boot controller
> > > > > > interface for MT7986
> > > > > > +
> > > > > > +maintainers:
> > > > > > +  - Lorenzo Bianconi <lorenzo at kernel.org>
> > > > > > +  - Felix Fietkau <nbd at nbd.name>
> > > > > > +
> > > > > > +description:
> > > > > > +  The mediatek wo-boot provides a configuration interface
> > > > > > for WED WO
> > > > > > +  boot controller on MT7986 soc.
> > > > > 
> > > > > And what is "WED WO boot controller?
> > > > 
> > > > WED WO is a chip used for networking packet processing
> > > > offloaded to the Soc
> > > > (e.g. packet reordering). WED WO boot is the memory used to
> > > > store start address
> > > > of wo firmware. Anyway I will let Sujuan comment on this.
> > > 
> > > A bit more should be in description.
> > 
> > I will let Sujuan adding more details (since I do not have them :))
> > 

 
The mcu of wo borrows a part of dram to store and boot its firmware.
the right entry point address of the firmware must be passed to the mcu
to boot correctly, so we need to write the dram address of the entry
point to the boot register, In addition, there are some registers that
need to be set to control the reset of the mcu.

> > > 
> > > > 
> > > > > 
> > > > > > +
> > > > > > +properties:
> > > > > > +  compatible:
> > > > > > +    items:
> > > > > > +      - enum:
> > > > > > +          - mediatek,mt7986-wo-boot
> > > > > > +      - const: syscon
> > > > > > +
> > > > > > +  reg:
> > > > > > +    maxItems: 1
> > > > > > +
> > > > > > +  interrupts:
> > > > > > +    maxItems: 1
> > > > > > +
> > > > > > +required:
> > > > > > +  - compatible
> > > > > > +  - reg
> > > > > > +
> > > > > > +additionalProperties: false
> > > > > > +
> > > > > > +examples:
> > > > > > +  - |
> > > > > > +    soc {
> > > > > > +      #address-cells = <2>;
> > > > > > +      #size-cells = <2>;
> > > > > > +
> > > > > > +      wo_boot: syscon at 15194000 {
> > > > > > +        compatible = "mediatek,mt7986-wo-boot", "syscon";
> > > > > > +        reg = <0 0x15194000 0 0x1000>;
> > > > > > +      };
> > > > > > +    };
> > > > > > diff --git
> > > > > > a/Documentation/devicetree/bindings/arm/mediatek/mediatek,m
> > > > > > t7986-wo-ccif.yaml
> > > > > > b/Documentation/devicetree/bindings/arm/mediatek/mediatek,m
> > > > > > t7986-wo-ccif.yaml
> > > > > > new file mode 100644
> > > > > > index 000000000000..6357a206587a
> > > > > > --- /dev/null
> > > > > > +++
> > > > > > b/Documentation/devicetree/bindings/arm/mediatek/mediatek,m
> > > > > > t7986-wo-ccif.yaml
> > > > > > @@ -0,0 +1,50 @@
> > > > > > +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> > > > > > +%YAML 1.2
> > > > > > +---
> > > > > > +$id: 
> > > > > > https://urldefense.com/v3/__http://devicetree.org/schemas/arm/mediatek/mediatek,mt7986-wo-ccif.yaml*__;Iw!!CTRNKA9wMg0ARbw!zwfPbJpcAbOIOvolZM17U38coXpSGcUDmLW5g8m4760Crj_jruCb42rt9lXO3mf70UY$
> > > > > >  
> > > > > > +$schema: 
> > > > > > https://urldefense.com/v3/__http://devicetree.org/meta-schemas/core.yaml*__;Iw!!CTRNKA9wMg0ARbw!zwfPbJpcAbOIOvolZM17U38coXpSGcUDmLW5g8m4760Crj_jruCb42rt9lXOpl37_FI$
> > > > > >  
> > > > > > +
> > > > > > +title: MediaTek Wireless Ethernet Dispatch WO controller
> > > > > > interface for MT7986
> > > > > > +
> > > > > > +maintainers:
> > > > > > +  - Lorenzo Bianconi <lorenzo at kernel.org>
> > > > > > +  - Felix Fietkau <nbd at nbd.name>
> > > > > > +
> > > > > > +description:
> > > > > > +  The mediatek wo-ccif provides a configuration interface
> > > > > > for WED WO
> > > > > > +  controller on MT7986 soc.
> > > > > 
> > > > > All previous comments apply.
> > > > > 
> > > > > > +
> > > > > > +properties:
> > > > > > +  compatible:
> > > > > > +    items:
> > > > > > +      - enum:
> > > > > > +          - mediatek,mt7986-wo-ccif
> > > > > > +      - const: syscon
> > > > > > +
> > > > > > +  reg:
> > > > > > +    maxItems: 1
> > > > > > +
> > > > > > +  interrupts:
> > > > > > +    maxItems: 1
> > > > > > +
> > > > > > +required:
> > > > > > +  - compatible
> > > > > > +  - reg
> > > > > > +  - interrupts
> > > > > > +
> > > > > > +additionalProperties: false
> > > > > > +
> > > > > > +examples:
> > > > > > +  - |
> > > > > > +    #include <dt-bindings/interrupt-controller/arm-gic.h>
> > > > > > +    #include <dt-bindings/interrupt-controller/irq.h>
> > > > > > +    soc {
> > > > > > +      #address-cells = <2>;
> > > > > > +      #size-cells = <2>;
> > > > > > +
> > > > > > +      wo_ccif0: syscon at 151a5000 {
> > > > > > +        compatible = "mediatek,mt7986-wo-ccif", "syscon";
> > > > > > +        reg = <0 0x151a5000 0 0x1000>;
> > > > > > +        interrupts = <GIC_SPI 205 IRQ_TYPE_LEVEL_HIGH>;
> > > > > > +      };
> > > > > > +    };
> > > > > > diff --git
> > > > > > a/Documentation/devicetree/bindings/arm/mediatek/mediatek,m
> > > > > > t7986-wo-dlm.yaml
> > > > > > b/Documentation/devicetree/bindings/arm/mediatek/mediatek,m
> > > > > > t7986-wo-dlm.yaml
> > > > > > new file mode 100644
> > > > > > index 000000000000..a499956d9e07
> > > > > > --- /dev/null
> > > > > > +++
> > > > > > b/Documentation/devicetree/bindings/arm/mediatek/mediatek,m
> > > > > > t7986-wo-dlm.yaml
> > > > > > @@ -0,0 +1,50 @@
> > > > > > +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> > > > > > +%YAML 1.2
> > > > > > +---
> > > > > > +$id: 
> > > > > > https://urldefense.com/v3/__http://devicetree.org/schemas/arm/mediatek/mediatek,mt7986-wo-dlm.yaml*__;Iw!!CTRNKA9wMg0ARbw!zwfPbJpcAbOIOvolZM17U38coXpSGcUDmLW5g8m4760Crj_jruCb42rt9lXOVVd58hA$
> > > > > >  
> > > > > > +$schema: 
> > > > > > https://urldefense.com/v3/__http://devicetree.org/meta-schemas/core.yaml*__;Iw!!CTRNKA9wMg0ARbw!zwfPbJpcAbOIOvolZM17U38coXpSGcUDmLW5g8m4760Crj_jruCb42rt9lXOpl37_FI$
> > > > > >  
> > > > > > +
> > > > > > +title: MediaTek Wireless Ethernet Dispatch WO hw rx ring
> > > > > > interface for MT7986
> > > > > > +
> > > > > > +maintainers:
> > > > > > +  - Lorenzo Bianconi <lorenzo at kernel.org>
> > > > > > +  - Felix Fietkau <nbd at nbd.name>
> > > > > > +
> > > > > > +description:
> > > > > > +  The mediatek wo-dlm provides a configuration interface
> > > > > > for WED WO
> > > > > > +  rx ring on MT7986 soc.
> > > > > > +
> > > > > > +properties:
> > > > > > +  compatible:
> > > > > > +    const: mediatek,mt7986-wo-dlm
> > > > > > +
> > > > > > +  reg:
> > > > > > +    maxItems: 1
> > > > > > +
> > > > > > +  resets:
> > > > > > +    maxItems: 1
> > > > > > +
> > > > > > +  reset-names:
> > > > > > +    maxItems: 1
> > > > > > +
> > > > > > +required:
> > > > > > +  - compatible
> > > > > > +  - reg
> > > > > > +  - resets
> > > > > > +  - reset-names
> > > > > > +
> > > > > > +additionalProperties: false
> > > > > > +
> > > > > > +examples:
> > > > > > +  - |
> > > > > > +    soc {
> > > > > > +      #address-cells = <2>;
> > > > > > +      #size-cells = <2>;
> > > > > > +
> > > > > > +      wo_dlm0: wo-dlm at 151e8000 {
> > > > > 
> > > > > Node names should be generic.
> > > > > 
https://urldefense.com/v3/__https://devicetree-specification.readthedocs.io/en/latest/chapter2-devicetree-basics.html*generic-names-recommendation__;Iw!!CTRNKA9wMg0ARbw!zwfPbJpcAbOIOvolZM17U38coXpSGcUDmLW5g8m4760Crj_jruCb42rt9lXOeva6xv4$
> > > > >  
> > > > 
> > > > DLM is a chip used to store the data rx ring of wo firmware. I
> > > > do not have a
> > > > better node name (naming is always hard). Can you please
> > > > suggest a better name?
> > > 
> > > The problem is that you added three new devices which seem to be
> > > for the
> > > same device - WED. It looks like some hacky way of avoid proper
> > > hardware
> > > description - let's model everything as MMIO and syscons...
> > 
> > is it fine to use syscon as node name even if we do not declare it
> > in compatible
> > string for dlm?
> > 
> 
> No, rather not. It's a shortcut and if used without actual syscon it
> would be confusing. You could still call it system-controller,
> though.
> 
> Best regards,
> Krzysztof
> 


More information about the Linux-mediatek mailing list