RK3328/Rock64 GigE testers needed.

Oleksandr Tymoshenko gonzo at bluezbox.com
Thu Jul 9 20:35:41 UTC 2020


Peter Jeremy (peter at rulingia.com) wrote:
> Head r362736 has enabled the internal RGMII delay lines in the RK3328
> (and RK3399) and this breaks networking on my Rock64 v2.0 (that I've
> modded to use the higher RGMII bus voltage, as per the v3.0).
> 
> gonzo@ and I would be interested in other people's experiences with
> this revision - particularly other people with Rock64 v2 or Rock64 v3
> boards.

Thanks to everyone for tests, it looks like only Peter's device
networking was completely broken by the commit. As a possible workaround
I consider adding a tunable/sysctl that can be used to override the delay
in DTB.  The change is available in this patch:
https://people.freebsd.org/~gonzo/patches/rockchip-gmac-202007009.patch

This is WIP on improving if_dwc_rk and contains following changes

- Enable and dump gmac clocks frequencies. RK3328 does not have ethernet
  clocks implemented yet so this part fails on the SoC.

- Configure clock according to the sensed media. I was able to switch
  between 100 and 1000 switches on both Rock64 and on Firefly-RK3399

- Introduces tunable and sysctl dev.dwc.X.delays (where X is a unit
  number, e.g. 0, 1... etc. The value is (rx_delay << 8) | tx_delay,
  so adding dev.dwc.0.delays=0x4533 to loader.conf would set rx delay to 69
  and tx delay to 51. It's possible to change delays run-time using
  sysctl too so people can experiment with values fast.

- Print delay values and enable flags when changing delays. This should
  be useful to get the delay values set by U-Boot and that worked before
  the r362736.

The patch does not have any performance improvements, so there is no
need to re-run tests.

-- 
gonzo


More information about the freebsd-arm mailing list