There was a couple of issues around ethernet on gxl. This may have been the source the confusion.
1) LPA Corruption: Sometimes the LINK PARTNER Advertisement is not correctly sampled: When this happens, you see the link being negotiated at 10Mbps/Full or 10Bmps/Half instead of 100Mbps/Full
This is fixed by https://github.com/libre-computer-project/libretech-linux/commit/04e76dadce3ec09bbefb45fde95580d217fc5c38. I have pushed it to libretech repo because the patch has been accepted by the net maintainer.
It will eventually end-up it linux stable and future kernel releases
2) Net hangs: There are lot of ways to reproduce this issue. What worked best for me was to wget a small file (2kB) in a loop. Downloading large file in background helps.
The problem is coming from EEE and Low power Idle. It should not be enabled or supported by the PHY. However, when reading the related registers, you get 0xFFFF.
This is interpreted as "Yeah ! everything is supported ! go ahead !". The (proposed) fix is to prevent stmmac from trying to activate EEE in RMII mode : https://patchwork.kernel.org/patch/10092657/
Patch is still at RFC state, which is why I did not push it (yet) to the libretech repo. It should be safe to apply though.