RE: [PATCH net-next V7] dt-bindings: net: xlnx,axi-ethernet: convert bindings document to yaml

From: Gaddam, Sarath Babu Naidu
Date: Tue Mar 28 2023 - 12:01:40 EST




> -----Original Message-----
> From: Gaddam, Sarath Babu Naidu
> <sarath.babu.naidu.gaddam@xxxxxxx>
> Sent: Tuesday, March 28, 2023 6:22 PM
> To: Krzysztof Kozlowski <krzysztof.kozlowski@xxxxxxxxxx>;
> davem@xxxxxxxxxxxxx; edumazet@xxxxxxxxxx; kuba@xxxxxxxxxx;
> pabeni@xxxxxxxxxx; robh+dt@xxxxxxxxxx;
> krzysztof.kozlowski+dt@xxxxxxxxxx
> Cc: michal.simek@xxxxxxxxxx; radhey.shyam.pandey@xxxxxxxxxx;
> netdev@xxxxxxxxxxxxxxx; devicetree@xxxxxxxxxxxxxxx; linux-arm-
> kernel@xxxxxxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx; Sarangi,
> Anirudha <anirudha.sarangi@xxxxxxx>; Katakam, Harini
> <harini.katakam@xxxxxxx>; git (AMD-Xilinx) <git@xxxxxxx>
> Subject: RE: [PATCH net-next V7] dt-bindings: net: xlnx,axi-ethernet:
> convert bindings document to yaml
>
>
>
> > -----Original Message-----
> > From: Krzysztof Kozlowski <krzysztof.kozlowski@xxxxxxxxxx>
> > Sent: Tuesday, March 14, 2023 9:22 PM
> > To: Gaddam, Sarath Babu Naidu
> > <sarath.babu.naidu.gaddam@xxxxxxx>; davem@xxxxxxxxxxxxx;
> > edumazet@xxxxxxxxxx; kuba@xxxxxxxxxx; pabeni@xxxxxxxxxx;
> > robh+dt@xxxxxxxxxx; krzysztof.kozlowski+dt@xxxxxxxxxx
> > Cc: michal.simek@xxxxxxxxxx; radhey.shyam.pandey@xxxxxxxxxx;
> > netdev@xxxxxxxxxxxxxxx; devicetree@xxxxxxxxxxxxxxx; linux-arm-
> > kernel@xxxxxxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx; Sarangi,
> > Anirudha <anirudha.sarangi@xxxxxxx>; Katakam, Harini
> > <harini.katakam@xxxxxxx>; git (AMD-Xilinx) <git@xxxxxxx>
> > Subject: Re: [PATCH net-next V7] dt-bindings: net: xlnx,axi-ethernet:
> > convert bindings document to yaml
> >
> > On 08/03/2023 07:12, Sarath Babu Naidu Gaddam wrote:
> > > From: Radhey Shyam Pandey <radhey.shyam.pandey@xxxxxxxxxx>
> > >
> > > Convert the bindings document for Xilinx AXI Ethernet Subsystem
> from
> > > txt to yaml. No changes to existing binding description.
> > >
> >
> > (...)
> >
> > > +properties:
> > > + compatible:
> > > + enum:
> > > + - xlnx,axi-ethernet-1.00.a
> > > + - xlnx,axi-ethernet-1.01.a
> > > + - xlnx,axi-ethernet-2.01.a
> > > +
> > > + reg:
> > > + description:
> > > + Address and length of the IO space, as well as the address
> > > + and length of the AXI DMA controller IO space, unless
> > > + axistream-connected is specified, in which case the reg
> > > + attribute of the node referenced by it is used.
> >
> > Did you test it with axistream-connected? The schema and description
> > feel contradictory and tests would point the issue.
>
> Thanks for review comments. We tested with axistream-connected and
> did not observe any errors. Do you anticipate any issues/errors ?

Just to add more details, we have tested it using below dt node

axienet@0 {
axistream-connected = <&dma>;
reg = <0x00 0x80000000 0x00 0x40000>;
compatible = "xlnx,axi-ethernet-2.01.a";
clock-names = "s_axi_lite_clk\0axis_clk\0ref_clk";
clocks = <0x03 0x47 0x03 0x47 0x18>;
phy-mode = "sgmii";
xlnx,rxcsum = <0x02>;
xlnx,rxmem = <0x1000>;
xlnx,txcsum = <0x02>;
pcs-handle = <0x19>;
phy-handle = <0x78>;
dmas = <0x17 0x00 0x17 0x01>;
dma-names = "tx_chan0\0rx_chan0";
mac-address = [ff ff ff ff ff ff];
managed = "in-band-status";
phandle = <0x79>;
mdio {
#address-cells = <0x01>;
#size-cells = <0x00>;

phy@0 {
compatible = "ethernet-phy-ieee802.3-c22";
reg = <0x00>;
phandle = <0x78>;
};

ethernet-phy@2 {
device_type = "ethernet-phy";
reg = <0x02>;
phandle = <0x19>;
};
};
};
This DT node works with our board. "&dma" is the dma DT node and
to test the second case where dma address and length included in
the axienet reg's property as below
"reg = <0x00 0x80000000 0x00 0x40000 0x0 0x80040000 0x0 0x1000>;"

I did not observe any issue with above two cases. Used below command
to validate the yaml using above DT node.
make dtbs_check DT_SCHEMA_FILES=Documentation/devicetree/bindings/net/xlnx,axi-ethernet.yaml

Thanks,
Sarath

> > > + maxItems: 2
> > > +
> > > + interrupts:
> > > + items:
> > > + - description: Ethernet core interrupt
> > > + - description: Tx DMA interrupt
> > > + - description: Rx DMA interrupt
> > > + description:
> > > + Ethernet core interrupt is optional. If axistream-connected
> > property is
> > > + present DMA node should contains TX/RX DMA interrupts else
> > DMA interrupt
> > > + resources are mentioned on ethernet node.
> > > + minItems: 1
> > > +
> > > + phy-handle: true
> > > +
> > > + xlnx,rxmem:
> > > + description:
> > > + Set to allocated memory buffer for Rx/Tx in the hardware.
> > > + $ref: /schemas/types.yaml#/definitions/uint32
> > > +
> > > + phy-mode:
> > > + items:
> > > + - description: MII
> > > + - description: GMII
> > > + - description: RGMII
> > > + - description: SGMII
> > > + - description: 1000BaseX
> >
> > I have doubts you tested it... Since when this is a list? How does it
> > exactly work and what do you want to show here?
> >
> > connection type is enum.
> >
> >
> > > + minItems: 1
> > > +
> > > + xlnx,phy-type:
> > > + description:
> > > + Do not use, but still accepted in preference to phy-mode.
> > > + deprecated: true
> > > + $ref: /schemas/types.yaml#/definitions/uint32
> > > +
> > > + xlnx,txcsum:
> > > + description:
> > > + TX checksum offload. 0 or empty for disabling TX checksum
> > offload,
> > > + 1 to enable partial TX checksum offload and 2 to enable full TX
> > > + checksum offload.
> > > + $ref: /schemas/types.yaml#/definitions/uint32
> > > + enum: [0, 1, 2]
> > > +
> > > + xlnx,rxcsum:
> > > + description:
> > > + RX checksum offload. 0 or empty for disabling RX checksum
> > offload,
> > > + 1 to enable partial RX checksum offload and 2 to enable full RX
> > > + checksum offload.
> > > + $ref: /schemas/types.yaml#/definitions/uint32
> > > + enum: [0, 1, 2]
> > > +
> > > + xlnx,switch-x-sgmii:
> > > + type: boolean
> > > + description:
> > > + Indicate the Ethernet core is configured to support both
> > > + 1000BaseX
> > and
> > > + SGMII modes. If set, the phy-mode should be set to match the
> > mode
> > > + selected on core reset (i.e. by the basex_or_sgmii core input
> line).
> > > +
> > > + clocks:
> > > + items:
> > > + - description: Clock for AXI register slave interface.
> > > + - description: AXI4-Stream clock for TXD RXD TXC and RXS
> > interfaces.
> > > + - description: Ethernet reference clock, used by signal delay
> > primitives
> > > + and transceivers.
> > > + - description: MGT reference clock (used by optional internal
> > > + PCS/PMA PHY)
> > > +
> > > + clock-names:
> > > + items:
> > > + - const: s_axi_lite_clk
> > > + - const: axis_clk
> > > + - const: ref_clk
> > > + - const: mgt_clk
> > > +
> > > + axistream-connected:
> > > + $ref: /schemas/types.yaml#/definitions/phandle
> > > + description: Phandle of AXI DMA controller which contains the
> > resources
> > > + used by this device. If this is specified, the DMA-related
> resources
> > > + from that device (DMA registers and DMA TX/RX interrupts)
> > > + rather
> > than
> > > + this one will be used.
> > > +
> > > + mdio:
> > > + type: object
> > > +
> > > + pcs-handle:
> >
> > maxItems: 1
> >
> > > + description: Phandle to the internal PCS/PMA PHY in SGMII or
> > 1000Base-X
> > > + modes, where "pcs-handle" should be used to point to the
> > PCS/PMA PHY,
> > > + and "phy-handle" should point to an external PHY if exists.
> >
> > Best regards,
> > Krzysztof