From: "Uwe Kleine-König" <ukleinek@debian.org>
To: Andrew Lunn <andrew@lunn.ch>
Cc: Rob Herring <robh+dt@kernel.org>,
Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>,
Conor Dooley <conor+dt@kernel.org>,
Heiko Stuebner <heiko@sntech.de>,
devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
linux-rockchip@lists.infradead.org,
Oleksij Rempel <ore@pengutronix.de>
Subject: Re: [PATCH 2/2] arm64: dts: rockchip: Add basic support for QNAP TS-433
Date: Wed, 28 Feb 2024 18:05:59 +0100 [thread overview]
Message-ID: <3268d0dd-0351-4dbd-b707-eb3691147111@debian.org> (raw)
In-Reply-To: <3295af58-4015-4962-91a0-87b70f18754e@lunn.ch>
On 28.02.24 14:53, Andrew Lunn wrote:
> On Wed, Feb 28, 2024 at 08:23:33AM +0100, Uwe Kleine-König wrote:
>> On Tue, Feb 27, 2024 at 10:00:48PM +0100, Andrew Lunn wrote:
>>>> +&gmac0 {
>>>> + assigned-clocks = <&cru SCLK_GMAC0_RX_TX>, <&cru SCLK_GMAC0>;
>>>> + assigned-clock-parents = <&cru SCLK_GMAC0_RGMII_SPEED>, <&cru CLK_MAC0_2TOP>;
>>>> + assigned-clock-rates = <0>, <125000000>;
>>>> + clock_in_out = "output";
>>>> + phy-handle = <&rgmii_phy0>;
>>>> + phy-mode = "rgmii";
>>>> + pinctrl-names = "default";
>>>> + pinctrl-0 = <&gmac0_miim
>>>> + &gmac0_tx_bus2
>>>> + &gmac0_rx_bus2
>>>> + &gmac0_rgmii_clk
>>>> + &gmac0_rgmii_bus>;
>>>> + rx_delay = <0x2f>;
>>>> + tx_delay = <0x3c>;
>>>
>>> Have you tried phy-mode = "rgmii-id"; and not have these two _delay
>>> settings?
>>
>> I didnt' up to now. I applied the following on top of my dts:
>>
>> diff --git a/arch/arm64/boot/dts/rockchip/rk3568-qnap-ts433.dts b/arch/arm64/boot/dts/rockchip/rk3568-qnap-ts433.dts
>> index ba7137f80075..a8747d9f36da 100644
>> --- a/arch/arm64/boot/dts/rockchip/rk3568-qnap-ts433.dts
>> +++ b/arch/arm64/boot/dts/rockchip/rk3568-qnap-ts433.dts
>> @@ -39,15 +39,13 @@ &gmac0 {
>> assigned-clock-rates = <0>, <125000000>;
>> clock_in_out = "output";
>> phy-handle = <&rgmii_phy0>;
>> - phy-mode = "rgmii";
>> + phy-mode = "rgmii-id";
>> pinctrl-names = "default";
>> pinctrl-0 = <&gmac0_miim
>> &gmac0_tx_bus2
>> &gmac0_rx_bus2
>> &gmac0_rgmii_clk
>> &gmac0_rgmii_bus>;
>> - rx_delay = <0x2f>;
>> - tx_delay = <0x3c>;
>> status = "okay";
>> };
>>
>> and this makes the machine unable to complete dhcp. I see the requests
>> and replies on the dhcp server side, but the machine tells me not to
>> receive a dhcp reply. So the above patch breaks the receive path.
>
> O.K.
>
> This binding is particularly bad. What does 0x3c mean? Generally, we
> use rx-internal-delay-ps making it clear what the value means.
>
> RGMII requires a 2ns delay between the clock and the data. Generally,
> we have the MAC insert 0 delay, and request the PHY add the 2ns delay
> by specifying "rgmii-id". Sometimes you need to fine tune this,
> because of the length of the tracks etc. You can then do that fine
> tuning either in the PHY, or the MAC.
>
> Looking at the binding:
>
> tx_delay:
> description: Delay value for TXD timing.
> $ref: /schemas/types.yaml#/definitions/uint32
> minimum: 0
> maximum: 0x7F
> default: 0x30
>
> rx_delay:
> description: Delay value for RXD timing.
> $ref: /schemas/types.yaml#/definitions/uint32
> minimum: 0
> maximum: 0x7F
> default: 0x10
>
> For your board, you have increased both values from there default
> values. My guess is 0x30 tx_delay is 2ns, and 0x10 rx_delay is also
> 2ns.
>
> So maybe try:
>
> rx_delay = <0x1f>;
> tx_delay = <0x0c>;
>
> combined with rmgii-id.
With the right phy driver (MOTORCOMM_PHY) enabled, it works also without
specifying {rx,tx}_delay. Thanks to Oleksij for the relevant hint. I'll
switch to that then.
Best regards
Uwe
_______________________________________________
Linux-rockchip mailing list
Linux-rockchip@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-rockchip
next prev parent reply other threads:[~2024-02-28 17:06 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-02-27 11:52 [PATCH 0/2] arm64: Add basic support for QNAP TS-433 Uwe Kleine-König
2024-02-27 11:52 ` [PATCH 1/2] dt-bindings: arm: rockchip: Add " Uwe Kleine-König
2024-02-28 7:43 ` Krzysztof Kozlowski
2024-02-27 11:52 ` [PATCH 2/2] arm64: dts: rockchip: Add basic support for " Uwe Kleine-König
2024-02-27 21:00 ` Andrew Lunn
2024-02-28 7:23 ` Uwe Kleine-König
2024-02-28 13:53 ` Andrew Lunn
2024-02-28 17:05 ` Uwe Kleine-König [this message]
2024-02-27 12:26 ` [PATCH 0/2] arm64: " Heiko Stübner
2024-02-27 13:53 ` Uwe Kleine-König
2024-02-27 13:45 ` Rob Herring
2024-02-27 13:55 ` Uwe Kleine-König
2024-02-27 17:41 ` Heiko Stübner
2024-02-28 13:02 ` Heiko Stuebner
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=3268d0dd-0351-4dbd-b707-eb3691147111@debian.org \
--to=ukleinek@debian.org \
--cc=andrew@lunn.ch \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=heiko@sntech.de \
--cc=krzysztof.kozlowski+dt@linaro.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-rockchip@lists.infradead.org \
--cc=ore@pengutronix.de \
--cc=robh+dt@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