Netgear R7800 exploration (IPQ8065, QCA9984)

I have run into strange wifi trouble with my R7800 build for 17.01 branch: building from the current HEAD of the 17.01 branch make radio1 to fail. The earlier 17.01 builds upto r3422-b78bcdf619. worked ok, as does the official 17.01.2 build of r3435-65eec8bd5f. But my personal build r3437-a6b5ddfd9b fails. (I think that the only possible difference between the release 17.01.2 build by my build is possibly CONFIG_ATH_USER_REGD=y and CONFIG_PACKAGE_ATH_DFS=y in my build. I haven't checked the release for those options but they may be absent.)

In any case now my 17.01 build fails radio1 with errors like:

[   30.720699] ath10k_pci 0001:01:00.0: enabling device (0140 -> 0142)
[   30.720807] ath10k_pci 0001:01:00.0: enabling bus mastering
[   30.721324] ath10k_pci 0001:01:00.0: pci irq msi oper_irq_mode 2 irq_mode 0 reset_mode 0
[   30.850119] ath10k_pci 0001:01:00.0: Direct firmware load for ath10k/pre-cal-pci-0001:01:00.0.bin failed with error -2
[   30.850161] ath10k_pci 0001:01:00.0: Falling back to user helper
[   31.242322] ath10k_pci 0001:01:00.0: qca9984/qca9994 hw1.0 target 0x01000000 chip_id 0x00000000 sub 168c:cafe
[   31.242381] ath10k_pci 0001:01:00.0: kconfig debug 0 debugfs 1 tracing 0 dfs 1 testmode 1
[   31.257107] ath10k_pci 0001:01:00.0: firmware ver 10.4-3.4-00072 api 5 features no-p2p,mfp,peer-flow-ctrl,btcoex-param,allows-mesh-bcast crc32 75ec955f
[   31.280234] ath10k_pci 0001:01:00.0: failed to fetch board data for bus=pci,vendor=168c,device=0046,subsystem-vendor=168c,subsystem-device=cafe from ath10k/QCA9984/hw1.0/board-2.bin
[   31.280373] ath10k_pci 0001:01:00.0: board_file api 1 bmi_id N/A crc32 dd636801
[   33.348520] ath10k_pci 0001:01:00.0: unable to read from the device
[   33.348545] ath10k_pci 0001:01:00.0: could not execute otp for board id check: -110
[   33.353589] ath10k_pci 0001:01:00.0: failed to get board id: -110
[   35.368529] ath10k_pci 0001:01:00.0: unable to read from the device (-110)
[   35.368551] ath10k_pci 0001:01:00.0: could not read board ext data addr (-110)
[   35.374286] ath10k_pci 0001:01:00.0: could not push board ext data (-110)
[   35.381551] ath10k_pci 0001:01:00.0: failed to download board data: -110
[   35.388351] ath10k_pci 0001:01:00.0: failed to run otp: -110
[   35.395173] ath10k_pci 0001:01:00.0: could not init core (-110)
[   35.400863] ath10k_pci 0001:01:00.0: could not probe fw (-110)

I have built several times, but have found no obvious reason for the failure or solution.

I decided to to fix that by backporting the otp fixes from @dissent1

OTP fixes work ok and now my R7800 runs 17.01 with properly identified and calibrated radios:

[   37.260259] ath10k_pci 0001:01:00.0: pci irq msi oper_irq_mode 2 irq_mode 0 reset_mode 0
[   37.390005] ath10k_pci 0001:01:00.0: Direct firmware load for ath10k/pre-cal-pci-0001:01:00.0.bin failed with error -2
[   37.390042] ath10k_pci 0001:01:00.0: Falling back to user helper
[   37.808590] ath10k_pci 0001:01:00.0: qca9984/qca9994 hw1.0 target 0x01000000 chip_id 0x00000000 sub 168c:cafe
[   37.808623] ath10k_pci 0001:01:00.0: kconfig debug 0 debugfs 1 tracing 0 dfs 1 testmode 1
[   37.819418] ath10k_pci 0001:01:00.0: firmware ver 10.4-3.4-00082 api 5 features no-p2p,mfp,peer-flow-ctrl,btcoex-param,allows-mesh-bcast crc32 f301de65
[   40.089782] ath10k_pci 0001:01:00.0: board_file api 2 bmi_id 0:2 crc32 751efba1
[   45.939850] ath10k_pci 0001:01:00.0: htt-ver 2.2 wmi-op 6 htt-op 4 cal pre-cal-file max-sta 512 raw 0 hwcrypto 1

The backport consists of three components:

  • ath10k QCA9984 firmware updates ( commits 4101020d, 6c344e39, a124f073, a1afee24). I skipped the qca4019 and "ct" specific things, but at least the "ct" things should likely be included if this gets officially backported to 17.01. I have also not really looked into possible qca988x changes)
  • removal of the old 936-ath10k_skip_otp_check.patch (done by commit cc189c0b7) and replacing it with the same (possibly unnecessary) new 936 patch as currently in master (commit c69a89fe)
  • the two new commits from @dissent1 for properly reading board ID and calibration data (48ae1f53, e980f3b6 in PR https://github.com/lede-project/source/pull/1153)

I have placed an unified patch of these changes into my R7800 community firmware download page:
https://www.dropbox.com/sh/ew0gap0crn30wyk/AADQLCBF5All8wc8RXmxisqAa

1 Like