RE: [RFC PATCH 1/8] dt-bindings: net: Add TSN Endpoint Ethernet MAC support
From: Neeli, Srinivas
Date: Fri Feb 20 2026 - 08:03:22 EST
[AMD Official Use Only - AMD Internal Distribution Only]
Hi,
> -----Original Message-----
> From: Andrew Lunn <andrew@xxxxxxx>
> Sent: Thursday, February 19, 2026 10:24 PM
> To: Neeli, Srinivas <srinivas.neeli@xxxxxxx>
> Cc: andrew+netdev@xxxxxxx; davem@xxxxxxxxxxxxx;
> edumazet@xxxxxxxxxx; kuba@xxxxxxxxxx; pabeni@xxxxxxxxxx; Simek,
> Michal <michal.simek@xxxxxxx>; robh@xxxxxxxxxx; krzk+dt@xxxxxxxxxx;
> conor+dt@xxxxxxxxxx; richardcochran@xxxxxxxxx; netdev@xxxxxxxxxxxxxxx;
> linux-kernel@xxxxxxxxxxxxxxx; devicetree@xxxxxxxxxxxxxxx; linux-arm-
> kernel@xxxxxxxxxxxxxxxxxxx; git (AMD-Xilinx) <git@xxxxxxx>
> Subject: Re: [RFC PATCH 1/8] dt-bindings: net: Add TSN Endpoint Ethernet
> MAC support
>
> > +examples:
> > + - |
> > + tsn_ip: tsn@80040000 {
> > + compatible = "xlnx,tsn-endpoint-ethernet-mac-3.0";
> > + reg = <0x80040000 0x40000>;
> > + clocks = <&misc_clk_2>, <&misc_clk_2>, <&misc_clk_1>,
> <&misc_clk_1>, <&misc_clk_3>, <&misc_clk_0>;
> > + clock-names = "gtx", "gtx90", "host_rxfifo", "host_txfifo", "ref", "s_axi";
> > + dmas = <&axi_mcdma_0 0>, <&axi_mcdma_0 1>, <&axi_mcdma_0 2>,
> <&axi_mcdma_0 3>,
> > + <&axi_mcdma_0 4>, <&axi_mcdma_0 5>, <&axi_mcdma_0 6>,
> <&axi_mcdma_0 7>,
> > + <&axi_mcdma_0 16>, <&axi_mcdma_0 17>, <&axi_mcdma_0 18>,
> <&axi_mcdma_0 19>,
> > + <&axi_mcdma_0 20>, <&axi_mcdma_0 21>, <&axi_mcdma_0 22>,
> <&axi_mcdma_0 23>;
> > + dma-names =
> "tx_chan0","tx_chan1","tx_chan2","tx_chan3","tx_chan4","tx_chan5","tx_ch
> an6",
> > +
> "tx_chan7","rx_chan0","rx_chan1","rx_chan2","rx_chan3","rx_chan4","rx_ch
> an5",
> > + "rx_chan6","rx_chan7";
> > + xlnx,num-priorities = <8>;
> > + #address-cells = <1>;
> > + #size-cells = <1>;
> > + ranges = <0x0 0x80040000 0x40000>;
> > + xlnx,tsn-tx-config = <&tsn_tx_config>;
> > + tsn_tx_config: tx-queues-config {
> > + queue0 {
> > + xlnx,dma-channel-num = <0x5>;
> > + };
> > + queue1 {
> > + xlnx,dma-channel-num = <0x4>;
> > + };
> > + queue2 {
> > + xlnx,dma-channel-num = <0x3>;
> > + };
> > + queue3 {
> > + xlnx,dma-channel-num = <0x2>;
> > + };
> > + queue4 {
> > + xlnx,dma-channel-num = <0x1>;
> > + };
> > + queue5 {
> > + xlnx,dma-channel-num = <0x0>;
> > + };
> > + };
> > + // MAC 1 Node
> > + mac1: ethernet-mac@0 {
> > + reg = <0x0 0x14000>;
> > + phy-mode = "rgmii-id";
> > + phy-handle = <&phy0>;
> > + mdio {
> > + #address-cells = <1>;
> > + #size-cells = <0>;
> > + phy0: ethernet-phy@0 {
> > + device_type = "ethernet-phy";
> > + reg = <0>;
> > + };
> > + };
>
> Two } at the same level means your indentation is broken.
>
I will address in next series.
> So each MAC has an MDIO node?
>
Yes, in this hardware configuration each external Ethernet MAC instance owns its own MDIO bus used to manage its directly connected PHY.
> > + };
> > +
> > + // MAC 2 Node
> > + mac2: ethernet-mac@20000 {
> > + reg = <0x20000 0x14000>;
> > + phy-mode = "rgmii-id";
> > + phy-handle = <&phy1>;
> > + mdio {
> > + #address-cells = <1>;
> > + #size-cells = <0>;
> > + phy1: ethernet-phy@1 {
> > + device_type = "ethernet-phy";
> > + reg = <1>;
> > + };
> > + };
> > + };
> > +
> > + // Endpoint Node
> > + ep_mac: ep-mac@16000 {
> > + reg = <0x16000 0xa000>;
> > + };
>
> Except the Endpoint MAC does not have MDIO? Or does it have an MDIO bus,
> and you have simply not listed it?
The endpoint MAC does not connect to an external PHY and therefore does not expose an MDIO bus.
It is an internal endpoint, so no MDIO node is required.
>
> > +
> > + // Switch Node
> > + tsn_switch: switch@38000 {
> > + reg = <0x38000 0x8000>;
> > +
> > + ethernet-ports {
> > + #address-cells = <1>;
> > + #size-cells = <0>;
> > +
> > + port@0 {
> > + reg = <0>;
> > + ethernet = <&ep_mac>;
> > + };
>
> So this looks like a DSA switch.
>
> > +
> > + port@1 {
> > + reg = <1>;
> > + ethernet = <&mac1>;
>
> If you look at Documentation/devicetree/bindings/net/dsa/dsa-port.yaml
> you see this node is derives from ethernet-switch-port.yaml, and that derives
> from ethernet-controller.yaml. All the MAC properties you have above actually
> belong here.
>
> Andrew
We referred to ethernet-switch-port.yaml while implementing the switch node. Our intention is to implement the switch using a pure switchdev framework in a future patch series.
Please let us know your suggestions.
Thanks
Neeli Srinivas