From: "Gupta, Suraj" <suraj.gupta2@amd.com>
To: netdev-bot+sashiko@kernel.org
Cc: radhey.shyam.pandey@amd.com, andrew+netdev@lunn.ch,
davem@davemloft.net, edumazet@kernel.org, kuba@kernel.org,
pabeni@redhat.com, robh@kernel.org, krzk+dt@kernel.org,
conor+dt@kernel.org, michal.simek@amd.com, linux@armlinux.org.uk,
netdev@vger.kernel.org, devicetree@vger.kernel.org,
linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH net-next v4 2/6] dt-bindings: net: xlnx,xxv-ethernet: Add Xilinx XXV 10G/25G Ethernet
Date: Tue, 13 Oct 2026 11:34:06 +0530 [thread overview]
Message-ID: <770cd345-98f1-4068-a706-c4e7e8b10ccd@amd.com> (raw)
In-Reply-To: <179163334293.434549.14718764476813490489@kernel.org>
On 10/10/2026 5:25 PM, netdev-bot+sashiko@kernel.org wrote:
> Thank you for your contribution! Sashiko AI review found 3 potential
> issue(s) to consider.
>
> Critical: 0 · High: 1 · Medium: 1 · Low: 1
>
> If you believe none of the issues are legitimate, please reply to each
> issue of Medium severity or higher and explain why the AI is wrong.
> If any of them are legitimate and you plan to respin, please let patchwork
> know by including "pw-bot: cr" as a separate line at the end of your reply
> (one such reply per series is enough).
>
> - [High] The XXV binding never says how link management works, so a node
> that passes the schema, including both examples in the binding, cannot…
> - [Medium] The binding has no way to describe the XXV transceiver (GT)
> reference clock.
> - [Low] The new XXV binding's `dma-names` schema only checks a per-item
> pattern (`^[tr]x_chan([0-9]|1[0-5])$`) and a count of 2 to 32.
>
> --
>
> dt-bindings: net: xlnx,xxv-ethernet: Add Xilinx XXV 10G/25G Ethernet
>
> This adds a new DT binding schema for the Xilinx XXV 10G/25G Ethernet IP.
> The IP has an in-core PCS/PMA and uses an external AXI DMA or MCDMA. The
> binding covers the 10gbase-r/25gbase-r phy-modes, the rx_core/drp/s_axi
> clocks and the dmas/dma-names properties.
>
>> diff --git a/Documentation/devicetree/bindings/net/xlnx,xxv-ethernet.yaml b/Documentation/devicetree/bindings/net/xlnx,xxv-ethernet.yaml
>> new file mode 100644
>> index 0000000000000..cf31ab677a4bc
>> --- /dev/null
>> +++ b/Documentation/devicetree/bindings/net/xlnx,xxv-ethernet.yaml
>> @@ -0,0 +1,110 @@
>
> [ ... ]
>
>> +description:
>> + The Xilinx XXV Ethernet Subsystem implements a 10G/25G Ethernet MAC with an
>> + in-core PCS/PMA driving a high-speed serial transceiver. It supports the
>> + 10GBASE-R and 25GBASE-R line rates, with 25G operation following the 25G
>> + Ethernet Consortium specification. Because the PCS/PMA is integrated into
>> + the IP, the subsystem has no MDIO bus master and is not managed through an
>> + external MDIO PHY; link state is read from the MAC's own status registers.
>
> [Severity: High]
> The binding says there is no external MDIO PHY. It does not require or
> show managed = "in-band-status" or a fixed-link node, though. Neither
> example has phy-handle, fixed-link or managed.
>
> The XXV support added later in this series sets only mac_capabilities and
> supported_interfaces in axienet_xxv_phylink_set_capabilities(). It does
> not set phylink_config.default_an_inband, so cfg_link_an_mode stays at
> MLO_AN_PHY.
>
> On open this gives:
>
> axienet_open()
> phylink_fwnode_phy_connect(lp->phylink, dev_fwnode(lp->dev), 0)
> fwnode_get_phy_node() fails, since there is no phy-handle
> if (pl->cfg_link_an_mode == MLO_AN_PHY)
> return -ENODEV;
>
> A node that matches this binding, including either example, would then
> fail ndo_open with "phylink_of_phy_connect() failed". Is that expected?
>
> Also, phylink_pcs_poll_start() only polls the internal PCS when
> cfg_link_an_mode == MLO_AN_INBAND.
>
> Should the binding require managed: const: in-band-status? The other
> option is for the XXV phylink_set_caps to set default_an_inband = true.
Correct. The XXV subsystem has an integrated PCS/PMA and no external
PHY, so link is managed in-band from the MAC status registers. The
driver should therefore default to in-band mode.
> Either way, could the binding document the chosen mode?
>
>> + Any SFP module management (e.g. I2C) is handled by separate IP outside this
>> + binding. Its payload is moved by an external AXI DMA (or multichannel DMA)
>> + controller referenced through the "dmas" property.
>
> [ ... ]
>
>> + clocks:
>> + items:
>> + - description: RX AXI4-Stream clock.
>> + - description: GT DRP clock.
>> + - description: AXI4-Lite register clock.
>> +
>> + clock-names:
>> + items:
>> + - const: rx_core
>> + - const: drp
>> + - const: s_axi
>
> [Severity: Medium]
> How would a DT describe the transceiver (GT) reference clock here? The
> description says the in-core PCS/PMA drives a high-speed serial
> transceiver, and that transceiver has its own reference clock input.
>
> The clocks/clock-names list is fixed at three entries, and
> unevaluatedProperties is false. A DT that also lists the GT refclk would
> fail validation. xlnx,axi-ethernet.yaml already documents mgt_clk for its
> optional internal PCS/PMA PHY.
>
> Later in the series, axienet_10g25g_clk_init() claims only s_axi, rx_core
> and drp. axienet_xxv_poll_link_ready() then fails open when GT reset-done
> times out:
>
> netdev_err(ndev, "XXV MAC GT reset not complete! Cross-check the MAC ref clock configuration\n");
>
> On boards where a Linux-managed, gateable clock provider supplies the GT
> refclk, nothing claims that clock. Unused clock cleanup could then gate
> it. This depends on the board.
>
> Could an optional trailing clock (minItems: 3) be added now?
> writing-bindings.rst asks for complete bindings even when the driver does
> not use every feature.
>
Agreed. The three current clocks (rx_core -> rx_core_clk, drp -> dclk,
s_axi -> s_axi_aclk) are correct, but per PG210 the GT has a dedicated
differential reference clock (refclk_p0/refclk_n0 -> tx_serdes_refclk)
that the list cannot express today.
I'll add an optional trailing clock, mirroring mgt_clk in
xlnx,axi-ethernet.yaml
> [ ... ]
>
>> + dma-names:
>> + items:
>> + pattern: "^[tr]x_chan([0-9]|1[0-5])$"
>> + description:
>> + Should be "tx_chan0", "tx_chan1" ... "tx_chan15" for DMA Tx channel and
>> + "rx_chan0", "rx_chan1" ... "rx_chan15" for DMA Rx channel.
>> + minItems: 2
>> + maxItems: 32
>
> [Severity: Low]
> This checks the name pattern and the count. It does not require
> "tx_chan0" and "rx_chan0", or even one TX and one RX entry. Both of these
> pass dt_binding_check:
>
> dma-names = "tx_chan1", "rx_chan1";
> dma-names = "tx_chan0", "tx_chan1";
>
> The driver requests fixed names, though:
>
> axienet_probe()
> tx_chan = dma_request_chan(lp->dev, "tx_chan0");
> if (IS_ERR(tx_chan))
> return dev_err_probe(lp->dev, PTR_ERR(tx_chan), "No Ethernet DMA (TX) channel found\n");
>
> axienet_init_dmaengine()
> lp->tx_chan = dma_request_chan(lp->dev, "tx_chan0");
> ...
> lp->rx_chan = dma_request_chan(lp->dev, "rx_chan0");
>
> Since dmas is required, XXV always takes this path. Could contains
> constraints for "tx_chan0" and "rx_chan0" be added? Another option is to
> fix the leading entries with items/additionalItems.
>
> The pattern came from xlnx,axi-ethernet.yaml, but this patch creates a
> new binding with it.
>
Agreed, the driver hard-requests "tx_chan0"/"rx_chan0". For v5 I'll add
contains constraints so at least one tx_chan0 and one rx_chan0 are
required, while still allowing the additional MCDMA channels.
Thanks,
Suraj
> [ ... ]
>
next prev parent reply other threads:[~2026-10-13 6:04 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-06 11:05 [PATCH net-next v4 0/6] net: xilinx: axienet: Add 10G/25G (XXV) ethernet support Suraj Gupta
2026-10-06 11:05 ` [PATCH net-next v4 1/6] net: xilinx: axienet: Introduce axienet_config for MAC-specific ops Suraj Gupta
2026-10-10 11:55 ` netdev-bot+sashiko
2026-10-12 20:21 ` Gupta, Suraj
2026-10-06 11:05 ` [PATCH net-next v4 2/6] dt-bindings: net: xlnx,xxv-ethernet: Add Xilinx XXV 10G/25G Ethernet Suraj Gupta
2026-10-10 11:55 ` netdev-bot+sashiko
2026-10-13 6:04 ` Gupta, Suraj [this message]
2026-10-06 11:05 ` [PATCH net-next v4 3/6] net: xilinx: axienet: Add 10G/25G (XXV) ethernet support Suraj Gupta
2026-10-10 11:55 ` netdev-bot+sashiko
2026-10-06 11:05 ` [PATCH net-next v4 4/6] net: xilinx: axienet: Make axienet_rmon_ranges non-static for reuse Suraj Gupta
2026-10-06 11:05 ` [PATCH net-next v4 5/6] net: xilinx: axienet: Dispatch statistics through axienet_config ops Suraj Gupta
2026-10-06 11:05 ` [PATCH net-next v4 6/6] net: xilinx: axienet: Add statistics support for XXV ethernet Suraj Gupta
2026-10-10 11:55 ` netdev-bot+sashiko
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=770cd345-98f1-4068-a706-c4e7e8b10ccd@amd.com \
--to=suraj.gupta2@amd.com \
--cc=andrew+netdev@lunn.ch \
--cc=conor+dt@kernel.org \
--cc=davem@davemloft.net \
--cc=devicetree@vger.kernel.org \
--cc=edumazet@kernel.org \
--cc=krzk+dt@kernel.org \
--cc=kuba@kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux@armlinux.org.uk \
--cc=michal.simek@amd.com \
--cc=netdev-bot+sashiko@kernel.org \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=radhey.shyam.pandey@amd.com \
--cc=robh@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox