[RFC PATCH 1/8] dt-bindings: net: Add TSN Endpoint Ethernet MAC support
Neeli, Srinivas
srinivas.neeli at amd.com
Fri Feb 20 05:03:08 PST 2026
[AMD Official Use Only - AMD Internal Distribution Only]
Hi,
> -----Original Message-----
> From: Andrew Lunn <andrew at lunn.ch>
> Sent: Thursday, February 19, 2026 10:24 PM
> To: Neeli, Srinivas <srinivas.neeli at amd.com>
> Cc: andrew+netdev at lunn.ch; davem at davemloft.net;
> edumazet at google.com; kuba at kernel.org; pabeni at redhat.com; Simek,
> Michal <michal.simek at amd.com>; robh at kernel.org; krzk+dt at kernel.org;
> conor+dt at kernel.org; richardcochran at gmail.com; netdev at vger.kernel.org;
> linux-kernel at vger.kernel.org; devicetree at vger.kernel.org; linux-arm-
> kernel at lists.infradead.org; git (AMD-Xilinx) <git at amd.com>
> Subject: Re: [RFC PATCH 1/8] dt-bindings: net: Add TSN Endpoint Ethernet
> MAC support
>
> > +examples:
> > + - |
> > + tsn_ip: tsn at 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 at 0 {
> > + reg = <0x0 0x14000>;
> > + phy-mode = "rgmii-id";
> > + phy-handle = <&phy0>;
> > + mdio {
> > + #address-cells = <1>;
> > + #size-cells = <0>;
> > + phy0: ethernet-phy at 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 at 20000 {
> > + reg = <0x20000 0x14000>;
> > + phy-mode = "rgmii-id";
> > + phy-handle = <&phy1>;
> > + mdio {
> > + #address-cells = <1>;
> > + #size-cells = <0>;
> > + phy1: ethernet-phy at 1 {
> > + device_type = "ethernet-phy";
> > + reg = <1>;
> > + };
> > + };
> > + };
> > +
> > + // Endpoint Node
> > + ep_mac: ep-mac at 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 at 38000 {
> > + reg = <0x38000 0x8000>;
> > +
> > + ethernet-ports {
> > + #address-cells = <1>;
> > + #size-cells = <0>;
> > +
> > + port at 0 {
> > + reg = <0>;
> > + ethernet = <&ep_mac>;
> > + };
>
> So this looks like a DSA switch.
>
> > +
> > + port at 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
More information about the linux-arm-kernel
mailing list