Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 1 Jul 2020 22:47:38 +1000
From:      Peter Jeremy <peter@rulingia.com>
To:        Oleksandr Tymoshenko <gonzo@freebsd.org>
Cc:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   Re: svn commit: r362736 - head/sys/arm64/rockchip
Message-ID:  <20200701124738.GA30133@server.rulingia.com>
In-Reply-To: <20200701085747.GA23928@server.rulingia.com>
References:  <202006282111.05SLBAAq025544@repo.freebsd.org> <20200701085747.GA23928@server.rulingia.com>

next in thread | previous in thread | raw e-mail | index | archive | help

--7JfCtLOvnd9MIVvH
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On 2020-Jul-01 18:57:47 +1000, Peter Jeremy <peter@server.rulingia.com> wro=
te:
>On 2020-Jun-28 21:11:10 +0000, Oleksandr Tymoshenko <gonzo@FreeBSD.org> wr=
ote:
>>Log:
>>  Configure rx_delay/tx_delay values for RK3399/RK3328 GMAC
>> =20
>>  For 1000Mb mode to work reliably TX/RX delays need to be configured
>>  between the TX/RX clock and the respective signals on the PHY
>>  to compensate for differing trace lengths on the PCB.
>
>This breaks (at least) diskless booting on my Rock64.

I've studied the RK3328 TRM[1] and the RK3328 code following r362736
matches[2] the GRF_MAC_CON0/1 documentation on p201-203 (though p574
says the delay line is configured via GRF_SOC_CON3 - which doesn't
match the documentation on GRF_SOC_CON3 on p175-177).  That suggests
that the delay values in the FDT are incorrect.  Unfortunately, the
TRM doesn't include any details on how to configure the delay values
so it's difficult to adjust the numbers in the FDT.

One possible explanation I have is that there are (at least) 2
different Rock64 variants.  Later versions have increased the RGMII
bus voltage to improve GigE reliability.  I initially had problems
with GigE reliability and mod'd my Rock64[3] to use the higher RGMII
bus voltage - which made it rock solid at GigE.  It's possible that
different variants need different delay values, due to different track
skew or different driver behaviour at different bus voltages.

[1] Rockchip_RK3328TRM_V1.1-Part1-20170321.pdf
[2] There's one typo: RK3328_GRF_MAC_CON0_TX_MASK instead of
    RK3328_GRF_MAC_CON0_RX_MASK but the values are the same).
[3] Move 1 resistor to change a pull-up to a pull-down

--=20
Peter Jeremy

--7JfCtLOvnd9MIVvH
Content-Type: application/pgp-signature; name="signature.asc"

-----BEGIN PGP SIGNATURE-----

iQKTBAEBCgB9FiEE2M6l8vfIeOACl4uUHZIUommfjLIFAl78heRfFIAAAAAALgAo
aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldEQ4
Q0VBNUYyRjdDODc4RTAwMjk3OEI5NDFEOTIxNEEyNjk5RjhDQjIACgkQHZIUommf
jLKjRg//VBZR1ceAFb5TF8jsqW7bKXRYwQr8ahPj8hCQ3LSYaFjzryb3XsW1HlxH
U8RJ9gor+mw3XdNyEuAZ8Sxwm5BxHi97sAPC0ndgeIVBtuTTD2goD5452EP2+5eh
57Gj4TPoQVB7vVFp6lyHC7Om2+Xs81UKjmEAU8/nNVK1uFST9MsOhp9p37cDL9BO
gusuUOKXhPdMzvXEOL9ermD5+FmHGioYY7yI7E1R05ZvSCHP94IyfM7SnEaXzWxJ
ZfdPqWz16Sqh6iUN4I80Ywjdg9cxegPpqcJ2I+d+QY7o+xHMt3lmXlfqwlFhEPUm
liea8BG5NX0UOs/8WohM6QU4gYW4D10C28DtoYT4tUSTyslwSs8jyGWPVBYLex1h
JdE0zOzkTqfsS/qfPO7B2rsocoOxJAzaCNpWVcvbHQTdmBrl0pVUMFHG9yDIOdUG
N+0c5u5Zdat7vntwCxSIl93T4apoZ0H/bhlZv3dKXBP2py8QOapqSZpg9frS2oqH
/Q+1Ix2LwD4tqR1JaLa+Hs9mBkeG0a5mX8WjsN2Hac0EEJ+UbokSa0YRnYtvlcOJ
YZPihCeHugjkJ6QMIT7DI09sDkjP4FzA7lM1+uj13dLmmH7noSXFYRxUTtdhfSQq
eSvapqplE1/4KmxTWInFY9gtkOZe+Vig7nyDyofI7lS//RPT4uQ=
=U/Kh
-----END PGP SIGNATURE-----

--7JfCtLOvnd9MIVvH--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20200701124738.GA30133>