no modem on the PCI (in the fork, the modem starts up and is visible on the bus; I don't know if a patch has been added there or if the modem requires a better description in dts)
At the moment, I'm losing with router and modem won't show up. I have a gpio list from two forks, I have dts from one fork, but either my knowledge is insufficient or something is missing in my OpenWrt.
root@gw7177af424074452a92f31c21a94cb530-R5Q-D50-1G-DB4-EM:/# cat /sys/kernel/debug/gpio
GPIOs 0-46, platform/1000000.pinctrl, 1000000.pinctrl:
gpio0 : in 0 8mA pull down
gpio1 : out 0 8mA pull down
gpio2 : in 7 8mA pull down
gpio3 : in 7 8mA pull down
gpio4 : in 2 8mA no pull
gpio5 : in 2 8mA no pull
gpio6 : in 2 8mA no pull
gpio7 : in 2 8mA no pull
gpio8 : in 2 8mA no pull
gpio9 : in 2 8mA no pull
gpio10 : out 1 2mA no pull
gpio11 : out 1 2mA no pull
gpio12 : in 1 2mA no pull
gpio13 : out 1 2mA no pull
gpio14 : in 0 8mA pull down
gpio15 : out 0 2mA pull down
gpio16 : in 0 8mA pull down
gpio17 : in 0 8mA pull down
gpio18 : out 0 8mA pull down
gpio19 : in 1 8mA pull up
gpio20 : in 1 8mA pull up
gpio21 : in 1 8mA pull up
gpio22 : in 0 8mA pull up
gpio23 : in 0 8mA pull down
gpio24 : out 0 8mA pull down
gpio25 : out 0 8mA pull up
gpio26 : in 0 8mA pull down
gpio27 : out 0 8mA pull down
gpio28 : out 0 8mA pull down
gpio29 : in 0 8mA pull down
gpio30 : out 0 8mA pull down
gpio31 : out 0 2mA pull up
gpio32 : in 0 8mA pull down
gpio33 : out 0 8mA pull down
gpio34 : out 0 8mA pull down
gpio35 : out 0 8mA pull down
gpio36 : in 1 8mA pull up
gpio37 : in 1 8mA pull up
gpio38 : in 0 8mA pull up
gpio39 : out 0 8mA pull down
gpio40 : in 1 8mA pull down
gpio41 : in 0 8mA pull down
gpio42 : in 5 8mA pull down
gpio43 : in 5 8mA pull down
gpio44 : in 0 8mA pull down
gpio45 : in 0 8mA pull down
gpio46 : in 1 8mA pull down
root@gw7177af424074452a92f31c21a94cb530-R5Q-D50-1G-DB4-EM:/# lspci
0000:00:00.0 PCI bridge: Airgo Networks, Inc. Device 1004
0000:01:00.0 Unassigned class [ff00]: Airgo Networks, Inc. Device 0306
0001:00:00.0 PCI bridge: Airgo Networks, Inc. Device 1004
0001:01:00.0 Network controller: Airgo Networks, Inc. Device 1104 (rev 01)
root@Exigo_Hub:/# cat /sys/kernel/debug/gpio
gpiochip0: GPIOs 465-511, parent: platform/1000000.pinctrl, 1000000.pinctrl:
gpio0 : in low func0 8mA pull down
gpio1 : out low func0 8mA pull up
gpio2 : in high func7 8mA pull down
gpio3 : in low func7 8mA pull down
gpio4 : in high func2 8mA no pull
gpio5 : in high func2 8mA no pull
gpio6 : in low func2 8mA no pull
gpio7 : in low func2 8mA no pull
gpio8 : in high func2 8mA no pull
gpio9 : in low func2 8mA no pull
gpio10 : out low func1 2mA no pull
gpio11 : out low func1 2mA no pull
gpio12 : in low func1 2mA no pull
gpio13 : out low func1 2mA no pull
gpio14 : in low func0 8mA pull down
gpio15 : out high func0 2mA pull down
gpio16 : in high func0 8mA pull down
gpio17 : in low func0 8mA pull down
gpio18 : out high func0 8mA pull down
gpio19 : in high func0 8mA pull up
gpio20 : in high func1 8mA no pull
gpio21 : in high func1 8mA no pull
gpio22 : in high func0 8mA pull up
gpio23 : in low func0 8mA pull down
gpio24 : out high func0 8mA pull down
gpio25 : in low func0 8mA pull down
gpio26 : in low func0 8mA pull down
gpio27 : out high func0 8mA pull down
gpio28 : out low func0 8mA pull down
gpio29 : in low func0 8mA pull down
gpio30 : out high func0 8mA pull down
gpio31 : out high func0 2mA pull up
gpio32 : in low func0 8mA pull down
gpio33 : out low func0 8mA pull down
gpio34 : out low func0 8mA pull down
gpio35 : out low func0 8mA pull down
gpio36 : in high func1 8mA pull up
gpio37 : in high func1 8mA pull up
gpio38 : in high func0 8mA pull up
gpio39 : out high func0 8mA pull down
gpio40 : in high func1 8mA pull down
gpio41 : in low func0 8mA pull down
gpio42 : in low func5 8mA pull down
gpio43 : in high func5 8mA pull down
gpio44 : in high func0 8mA pull down
gpio45 : in low func0 8mA pull down
gpio46 : in low func1 8mA pull down
you can start by fetching the bdf's from the oem firmware, as you can see above, you are looking for
ipq5018 --> bdwlan.b24
qcn9000 --> bdwlan.ba0
@georgem83 have you looked at this ? I am away for a couple days, I will look at it closer when i get back. Just wondering if you see anything problematic ... besides the modem
we should be able to get wifi up and running. Send over the bdwlan files (b24 for ipq5018 and ba0 for qcn9074) and I'll create the package for you.
As for the modem, if it's connected to pcie1, we have a similar issue with the Xiaomi AX6000 where we can't get the ath10k IoT wifi working. This is likely also related to not being able to enabling USB3 on the MR5500. USB3 and PCIE1 are muxed and is controlled by a register in TCSR.
Although the register is set correctly and the PHY probes successfully, it remains in Rx.Detect state and falls back to USB2.
My best guess it's a clock / reset issue which I haven't been able to figure out.
Parent Mode Requirement: The Linksys MR5500 FAQ specifies that USB functionality is only supported when the router is in Parent Mode; it is disabled in Child/Node mode.
and set mux to 1 for USB3 0 for PCeei
&tcsr {
...
qcom,usb3-pcie-mux = <1>; // Set to 1 for USB3
};
TCSR Register Address: Typically located within the 0x01900000 block (common for IPQ5018/IPQ5400 series architectures).
Bit Value:
0: Selects PCIe1 (often the factory default if the lane is used for a secondary Wi-Fi chip or M.2 slot).
If you need help retrieving the bdf's let us know. In any case, you should backup each partition and scp them to safety first. Afterwards, you can mount the wifi partition and grab the bdfs from there.
Once you got them, zip them and post the link to a file.bin.
I copied files from the router: /lib/firmware/IPQ5018/WIFI_FW
I also made copies of the partitions, but I did not extract data from the art partition.
Correct me if I did it "unprofessionally".