OpenWrt support for Xiaomi AX9000

@RobertP Only QCA8081 is having issues.

1 Like

The 100MF is a QCA8081 issue only. I have tried many things, including using the base kernel driver + patches instead of the SSDK/QNSS-DP one ... still 100M.
At 1000M, the device transmits packets but they aren't interpreted correctly at the other end the RxBadPkt counter increases. The issue is the same in the other direction, the switch transmits but the errors and frames counters at the eth4 side increase.
From ethtool eth4, the difference between the OEM firmware and the Openwrt one is the port mode, the OEM firmware reports MII port and Openwrt reports Twisted pair.

1 Like

Looks like even today there were submitted patches (v3) to QCA8081
https://lore.kernel.org/lkml/20211018033333.17677-1-luoj@codeaurora.org/
Three days ago v2 patch was submitted
https://lore.kernel.org/lkml/20211015073505.1893-1-luoj@codeaurora.org/
And patch v1 was submitted at the end of Aug
https://lore.kernel.org/lkml/20210830110733.8964-1-luoj@codeaurora.org/

Yeah, but those are useless when using SSDK as they have some stupid API that hooks its private structure to the PHY driver.
So you cant backport it.

That's true - we can't add these patches to Qualcomm's strange drivers.
But the patches I linked added QCA8081 support to the at803x driver, which if I recall correctly was added ages ago (to kernel 3.19) https://elixir.bootlin.com/linux/v3.19.6/source/drivers/net/phy/at803x.c
Just a thought but maybe worth trying?

Thank you, I had tried those patches before (except the v3) same result 100M full duplex max.

Its probably the ethernet controller and not the PHY at all.
Something related to clocks

I'm not an expert, but at a glance it looks legit to me


or

What's interesting these patches are from codeaurora ... don't they believe in their own driver? :slight_smile:

I dont understand what do you mean?
It's a normal PHY driver, they just extended the at803x driver as the netdev community requested that rather than adding a new driver.
But you cant use it with SSDK, not directly as SSDK hacks the PHY driver to read/write directly through it in order to implement their own PHY operations instead of using the kernel provided stuff.

No secret agenda robi :slight_smile: No need to get that defensive :slight_smile:
As the Qualcomm driver doesn't currently work (allow us to get only 100M with full duplex at the moment) maybe the netdev community driver could be used instead, even if it would mean no SSDK nor NSS?

But its just the ethernet PHY driver, you need SSDK and NSS-DP for the switch and ethernet controller.
PHY doesn't do anything on its own

Thanks for the explanation :slight_smile: I was not aware of that :slight_smile:
Thanks

Yes, both the switch and ethtool -S eth4 display increasing rx_fcserr counters. Either the clocks are not correct or the line encoding/decoding don't match. Strange, both ends are able to autoneg 1000 full ...

To me, it smells like a clock is missing or the serdes needs tuning.
Well, autoneg is up to the PHY and since its working fine it will autoneg without an issue

1 Like

Clearly offtopic here: the thread is about OpenWrt for Xiaomi AX9000, not patching Xiaomi crappy firmware to disable parts.

2 Likes

I found the 2 screws below the label. But it seems the case is still very stable. Is there a trick or a video how to open the case without demolition?

Thanks!

Yeah, don't forget them rubber feet. There should be like a dozen of screws in total.

I admit the video doesn't show that part too well.

There is a lot of screws hidden, I think there is 10 in total you need to take out.
There are high res photos here:
https://www.acwifi.net/13681.html

Yeah, 4 times (e.g. per rubber feet) 2 pieces plus the two behind the middle label.

Unfortunately, there doesn't really seem to be a nice picture showing that neither. But in the video at second 26 one can see the rubber feet glue with the two screw holes in the lower part of the footage.

Thank you all! I'll try this evening.