From: sashiko-bot@kernel.org
To: lizhi2@eswincomputing.com
Cc: conor+dt@kernel.org, robh@kernel.org, devicetree@vger.kernel.org
Subject: Re: [PATCH net-next v9 6/6] riscv: dts: eswin: eic7700-hifive-premier-p550: enable Ethernet controller
Date: Wed, 01 Jul 2026 06:35:12 +0000 [thread overview]
Message-ID: <20260701063512.9ED051F000E9@smtp.kernel.org> (raw)
In-Reply-To: <20260630063445.1226-1-lizhi2@eswincomputing.com>
Thank you for your contribution! Sashiko AI review found 4 potential issue(s) to consider:
- [High] Contradictory RGMII delay configuration using `phy-mode = "rgmii-id"` causes double TX delay and violates RGMII timing specifications.
- [Medium] Hardware behavioral workaround or instance-specific configuration encoded into a compatible string.
- [Low] Invalid unit-address for the `hsp` simple-pm-bus node.
- [Low] Indentation style violation (mixing tabs and spaces).
--
commit bfe37dac7b1890539f4db41b461affd87be42ea4
Author: Zhi Li <lizhi2@eswincomputing.com>
riscv: dts: eswin: eic7700-hifive-premier-p550: enable Ethernet controller
Enable the on-board Gigabit Ethernet controller on the HiFive Premier P550
development board. This patch is included only to provide the DTS context for
reviewing the binding and driver changes.
> diff --git a/arch/riscv/boot/dts/eswin/eic7700-hifive-premier-p550.dts b/arch/riscv/boot/dts/eswin/eic7700-hifive-premier-p550.dts
> index 131ed1fc6b2ed..9d37bafdd1b2e 100644
> --- a/arch/riscv/boot/dts/eswin/eic7700-hifive-premier-p550.dts
> +++ b/arch/riscv/boot/dts/eswin/eic7700-hifive-premier-p550.dts
[ ... ]
> + vcc_1v8: regulator-1v8 {
> + compatible = "regulator-fixed";
> + regulator-name = "vcc1v8";
[Severity: Low]
Are there space characters being used for indentation here after the tabs?
The kernel standard requires strict 8-character tab indentation.
> + regulator-always-on;
> + regulator-boot-on;
> + regulator-min-microvolt = <1800000>;
> + regulator-max-microvolt = <1800000>;
> + };
> +};
[ ... ]
> +&gmac0 {
> + phy-handle = <&gmac0_phy0>;
> + phy-mode = "rgmii-id";
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_gpio106>;
> + rx-internal-delay-ps = <20>;
> + tx-internal-delay-ps = <100>;
[Severity: High]
Does this configuration cause a double TX delay?
The phy-mode is set to rgmii-id, which tells the PHY to add both TX and RX
delays. However, the MAC is additionally configured with a
tx-internal-delay-ps. At Gigabit speeds, this excessive TX skew could
corrupt the data stream.
Could the phy-mode be set to rgmii-rxid if the MAC already provides the
TX delay?
> + status = "okay";
> +};
[ ... ]
> +&gmac1 {
> + phy-handle = <&gmac1_phy0>;
> + /*
> + * The MAC silicon unconditionally introduces an ~2 ns TX clock-to-data
> + * skew (MAC-side TX internal delay). The PHY provides the standard
> + * ~2 ns RX internal delay. The driver additionally inverts the RX
> + * clock at 1000 Mb/s to correct a silicon RX sampling timing issue.
> + * phy-mode is "rgmii-id": TX delay from the MAC silicon, RX delay
> + * from the PHY.
> + */
> + phy-mode = "rgmii-id";
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_gpio111>;
> + rx-internal-delay-ps = <200>;
> + tx-internal-delay-ps = <2200>;
[Severity: High]
Is the comment regarding rgmii-id accurate for Linux?
The comment mentions that rgmii-id means TX delay from the MAC and RX delay
from the PHY. In Linux, rgmii-id tells the PHY to add both delays, which will
lead to double TX delays when combined with the MAC-side delay.
Would this result in packet loss or connection failures?
> + status = "okay";
> +};
[ ... ]
> diff --git a/arch/riscv/boot/dts/eswin/eic7700.dtsi b/arch/riscv/boot/dts/eswin/eic7700.dtsi
> index c3ed93008bca1..041ecc5cb0077 100644
> --- a/arch/riscv/boot/dts/eswin/eic7700.dtsi
> +++ b/arch/riscv/boot/dts/eswin/eic7700.dtsi
[ ... ]
> + hsp: bus@0 {
> + compatible = "simple-pm-bus";
> + ranges = <0x0 0x50400000 0x0 0x50400000 0x0 0xa0000>;
[Severity: Low]
Does the unit address bus@0 match the ranges property?
According to the Devicetree Specification, when a node has a ranges property
but no reg property, the unit-address should match the first child address.
Could this be changed to bus@50400000 to prevent dtc compiler warnings?
> + clocks = <&clk 171>;
> + #address-cells = <2>;
> + #size-cells = <2>;
[ ... ]
> + gmac1: ethernet@50410000 {
> + compatible = "eswin,eic7700-qos-eth-clk-inversion",
> + "snps,dwmac-5.20";
[Severity: Medium]
Will this compatible string be rejected by the Devicetree maintainers?
It appears to encode a software workaround for clock inversion rather than
describing the hardware block itself. Instance-specific configurations usually
need to be handled via dedicated boolean properties.
> + reg = <0x0 0x50410000 0x0 0x10000>;
> + interrupts = <70>;
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260630063123.1118-1-lizhi2@eswincomputing.com?part=6
next prev parent reply other threads:[~2026-07-01 6:35 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-06-30 6:31 [PATCH net-next v9 0/6] net: stmmac: eic7700: add eth1 variant support and update delay bindings lizhi2
2026-06-30 6:32 ` [PATCH net-next v9 1/6] dt-bindings: ethernet: eswin: relax internal delay model to range-based constraints lizhi2
2026-06-30 6:32 ` [PATCH net-next v9 2/6] dt-bindings: ethernet: eswin: add EIC7700 eth1 RX clock inversion variant lizhi2
2026-06-30 7:10 ` Maxime Chevallier
2026-06-30 17:14 ` Conor Dooley
2026-06-30 6:32 ` [PATCH net-next v9 3/6] net: stmmac: eic7700: make RGMII delay properties optional lizhi2
2026-06-30 6:33 ` [PATCH net-next v9 4/6] net: stmmac: eic7700: add support for eth1 clock inversion variant lizhi2
2026-06-30 6:34 ` [PATCH net-next v9 5/6] dt-bindings: mfd: syscon: add ESWIN EIC7700 compatible lizhi2
2026-06-30 6:34 ` [PATCH net-next v9 6/6] riscv: dts: eswin: eic7700-hifive-premier-p550: enable Ethernet controller lizhi2
2026-07-01 6:35 ` sashiko-bot [this message]
2026-07-02 8:52 ` 李志
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=20260701063512.9ED051F000E9@smtp.kernel.org \
--to=sashiko-bot@kernel.org \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=lizhi2@eswincomputing.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox