All of lore.kernel.org
 help / color / mirror / Atom feed
From: sashiko-bot@kernel.org
To: "Marek Vasut" <marex@nabladev.com>
Cc: robh@kernel.org, devicetree@vger.kernel.org, conor+dt@kernel.org
Subject: Re: [PATCH v2 2/2] arm64: zynqmp: Add ifm ZynqMP VHIP6 EvalBoard
Date: Wed, 09 Sep 2026 18:39:34 +0000	[thread overview]
Message-ID: <20260909183934.8332E1F00893@smtp.kernel.org> (raw)
In-Reply-To: <20260909182641.165383-2-marex@nabladev.com>

Thank you for your contribution! Sashiko AI review found 3 potential issue(s) to consider:
- [High] Incorrect use of "ethernet-phy-ieee802.3-c45" compatible string for a Clause 22 PHY, breaking PHY probing.
- [Medium] Conflicting RGMII TX delay configuration for gem1/phy1 overrides `phy-mode` contract.
- [Medium] Suspiciously short PHY reset deassertion delay (10us).
--

commit eea503ea47697121b80dcf7c5965d02c5b346e78
Author: Marek Vasut <marex@nabladev.com>

arm64: zynqmp: Add ifm ZynqMP VHIP6 EvalBoard

Add support for ifm ZynqMP VHIP6 EvalBoard reference design.
The board is populated with four ethernet ports, QSPI NOR,
eMMC, UART and USB host interfaces.

> diff --git a/arch/arm64/boot/dts/xilinx/zynqmp-vhip6-evalboard.dts b/arch/arm64/boot/dts/xilinx/zynqmp-vhip6-evalboard.dts
> new file mode 100644
> index 0000000000000..0108f3d505a7f
> --- /dev/null
> +++ b/arch/arm64/boot/dts/xilinx/zynqmp-vhip6-evalboard.dts
[ ... ]
> +&gem0 {
> +	phy-handle = <&phy0>;
> +	phy-mode = "mii";
> +	status = "okay";
> +
> +	mdio0: mdio {
> +		#address-cells = <1>;
> +		#size-cells = <0>;
> +
> +		phy0: phy@1 {	/* TI DP83822I */
> +			compatible = "ethernet-phy-id2000.a240",
> +				     "ethernet-phy-ieee802.3-c45";

[Severity: High]
Does this compatible string cause the PHY probe to fail?

The TI DP83822I is a standard Clause 22 PHY. Using the C45 fallback string
causes fwnode_mdiobus_register_phy() to parse "ethernet-phy-ieee802.3-c45",
set is_c45 = true, and force get_phy_c45_ids() to read the PHY ID using native
Clause 45 MDIO frames. Since the PHY ignores native C45 accesses, this
read fails and get_phy_c45_ids() returns -ENODEV, aborting the PHY registration.
This configuration is also duplicated for phy1, phy2, and phy3.

> +			reg = <1>;
> +			reset-gpios = <&gpio 78 GPIO_ACTIVE_LOW>;
> +			reset-assert-us = <10>;
> +			reset-deassert-us = <10>;

[Severity: Medium]
Is a 10 microsecond reset deassertion delay long enough?

The MDIO core waits exactly reset-deassert-us after pulling the reset GPIO
high before attempting communication. 10 microseconds is an extremely brief
window. This might cause intermittent MDIO read timeouts (0xffff) and probe
failures if the PHY hasn't completed its hardware reset initialization.
This short delay is also present for phy1, phy2, and phy3.

> +		};
> +	};
> +};
> +
> +&gem1 {
> +	phy-handle = <&phy1>;
> +	phy-mode = "rgmii-rxid";

[Severity: Medium]
Does explicitly setting tx-internal-delay-ps below conflict with the RGMII
contract established here?

The phy-mode = "rgmii-rxid" property dictates that the PHY should apply an
internal RX delay but NO TX delay.

> +	status = "okay";
> +
> +	mdio1: mdio {
> +		#address-cells = <1>;
> +		#size-cells = <0>;
> +
> +		phy1: phy@1 {	/* TI DP83822I */
> +			compatible = "ethernet-phy-id2000.a240",
> +				     "ethernet-phy-ieee802.3-c45";
> +			reg = <1>;
> +			max-speed = <100>;
> +			reset-gpios = <&gpio 8 GPIO_ACTIVE_LOW>;
> +			reset-assert-us = <10>;
> +			reset-deassert-us = <10>;
> +			tx-internal-delay-ps = <1>;

When this is present, the DP83822 driver parses tx-internal-delay-ps via
phy_get_internal_delay(), returning 1. The driver then bypasses the default
RGMII clock shift logic and leaves DP83822_TX_CLK_SHIFT unset, explicitly
enabling the internal TX delay on the PHY. This can double-delay the TX clock
or misalign it entirely, leading to link instability or complete RGMII TX
failure.

> +		};
> +	};
> +};

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20260909182641.165383-1-marex@nabladev.com?part=2

  reply	other threads:[~2026-09-09 18:39 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-09-09 18:26 [PATCH v2 1/2] dt-bindings: soc: xilinx: Document ifm ZynqMP VHIP6 EvalBoard Marek Vasut
2026-09-09 18:26 ` [PATCH v2 2/2] arm64: zynqmp: Add " Marek Vasut
2026-09-09 18:39   ` sashiko-bot [this message]
2026-09-11  7:32   ` Krzysztof Kozlowski
2026-09-11 14:50     ` Marek Vasut
2026-09-11  9:38   ` Peter Korsgaard
2026-09-11 14:49     ` Marek Vasut
2026-09-13 14:27       ` Peter Korsgaard
2026-09-10  6:22 ` [PATCH v2 1/2] dt-bindings: soc: xilinx: Document " Michal Simek
2026-09-10  7:01   ` Marek Vasut
2026-09-10  7:17     ` Michal Simek
2026-09-10 23:39       ` Marek Vasut
2026-09-11  8:38         ` Michal Simek
2026-09-11 15:54           ` Marek Vasut
2026-09-11  7:32 ` Krzysztof Kozlowski

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=20260909183934.8332E1F00893@smtp.kernel.org \
    --to=sashiko-bot@kernel.org \
    --cc=conor+dt@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=marex@nabladev.com \
    --cc=robh@kernel.org \
    --cc=sashiko-reviews@lists.linux.dev \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.