[OpenWrt-Devel] Pending ath79 issues on ar9342 and 4.14/4.19 kernels
Petr Štetiar
ynezz at true.cz
Thu Jan 10 03:21:24 EST 2019
Petr Štetiar <ynezz at true.cz> [2019-01-02 01:24:22]:
> 1. MAC reset issue
>
> While converting UBNT Nanostation M XW to ath79, I've found out, that the MAC
> isn't properly reset on ath79, resulting in disfunctional networking due to
> MAC_CFG2_CRC_EN bit set in AG71XX_REG_MAC_CFG2. My first naive attempt to fix
> this issue[A], but I wasn't satisfied with this fix it so I've asked for help
> with proper fix.
>
> With the help of blogic/Guo I've found out, that we need to reset MDIO/GMAC in
> one step, otherwise resetting of MAC doesn't work. ar71xx does this, but ath79
> doesn't, in ath79 we reset MDIO and GMAC separately. I'm able to reset MAC
> properly in ath79 with following changes:
>
> ð0 {
> reset-names = "mac", "mdio";
> resets = <&rst 9>, <&rst 22>;
> };
>
> and using `devm_reset_control_array_get_exclusive` to reset the MAC. But then
> there's issue with MDIO configuration, since MDIO is configured/probed before
> MAC reset and issue with fast reset as well, since on ar71xx it's only
> reseting GMAC0 (bit 9) so it needs someone with better complete picture to fix
> it properly.
Seems to be fixed in https://github.com/openwrt/openwrt/pull/1735
> 2. Different MDIO divider values
>
> I've observed this on UBNT Bullet M XW. On ar71xx it's using
> MII_CFG_CLK_DIV_58 fallback value because ag71xx_mdio_get_divider() doesn't
> return anything, but on ath79 it's using MII_CFG_CLK_DIV_50 as computed in
> ag71xx_mdio_get_divider(). I'm not sure if it has significant impact on
> anything.
Still unsure about this one.
> 3. TX hang workaround is not enabled (DMA engine stuck)
>
> On ath79 we enable this workaround only for `qca,ar7240-eth`, but in ar71xx
> it's enabled for is_ar724x SoCs (ar724x, ar933x, ar934x, qca9533, tp9343,
> qca955x, qca956x). What is correct? To me it seems, that we should enable it
> for same set of SoCs in ath79 as well, but I'm not 100% sure.
Still unsure about this one, but proposed fix in https://patchwork.ozlabs.org/patch/1020748/
> 4. Transmit queue 0 timed out
>
> On ath79 and UBNT Bullet M XW I'm experiencing weird issues during network
> setup[B] which I'm able to reproduce easily with following commands:
>
> uci set network.lan.ipaddr='192.168.1.20'
> uci commit network
> ifup lan
>
> Resulting after some time in:
>
> ...
> WARNING: CPU: 0 PID: 0 at net/sched/sch_generic.c:461 dev_watchdog+0x16c/0x280
> NETDEV WATCHDOG: eth0 (ag71xx): transmit queue 0 timed out
> ...
>
> Sometimes I'm not able to use networking anymore, sometimes it's enough to
> just ifdown/ifup lan and the network is backup.
>
> While trying to fix this issue, I've found out about 2. and 3., but fixing
> them in the same way as on ar71xx doesn't help with this issue. Proper MAC
> reset as described in 1. doesn't help with this issue either.
>
> Any idea what might possibly cause this? Dump of registers looks same on
> ar71xx/ath79 so it's probably something related to code path changes.
Seems to be fixed in https://patchwork.ozlabs.org/patch/1020158/
-- ynezz
_______________________________________________
openwrt-devel mailing list
openwrt-devel at lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel
More information about the openwrt-devel
mailing list