I have solved this problem. I am using LEDE Linux version 4.4.61. Device is a WF-96A from CIG shanghai.
WF-96A write calibration data in spi flash. I have success read it to `ath10k/cal-pci-0000:00:00.0.bin`. LEDE default use firmware-5.bin for QCA988X. But `ath10k/cal-pci-0000:00:00.0.bin` can only work with firmware-4.bin. What is the full name of otp? How does otp work? Should we pay attention to the version of calibration and firmware ? 2017-04-20 14:27 GMT+08:00 Kalle Valo <kv...@qca.qualcomm.com>: > 孙建希 <ycsunj...@gmail.com> writes: > >> The driver terminates execution in the function >> 'ath10k_download_cal_data`. `ath10k_download_cal_data` try load the >> ` pre_cal_file` and `cal_file` files via hif. Since these two files >> are not provided , then try to get from `dt, eeprom, otp`. >> >> `pre-cal.bin, cal.bin and otp` are used to calibrate radio? >> >> I'm sure `board.bin` was successfully loaded. >> >> [ 9.573602] ath10k_pci 0000:00:00.0: board_file api 1 bmi_id N/A >> crc32 bebc7c08 >> >> Does `board.bin` only used in `ath10k_download_and_run_otp`? What is >> the relationship between otp and board.bin? >> >> full kernel log: >> >> [ 8.579370] PCI: Enabling device 0000:00:00.0 (0000 -> 0002) >> [ 8.585276] ath10k_pci 0000:00:00.0: pci irq legacy oper_irq_mode 1 >> irq_mode 0 reset_mode 0 >> [ 8.802225] ath10k_pci 0000:00:00.0: Direct firmware load for >> ath10k/pre-cal-pci-0000:00:00.0.bin failed with error -2 >> [ 8.813104] ath10k_pci 0000:00:00.0: Falling back to user helper >> [ 8.960014] firmware ath10k!pre-cal-pci-0000:00:00.0.bin: >> firmware_loading_store: map pages failed >> [ 8.969372] ath10k_pci 0000:00:00.0: Direct firmware load for >> ath10k/cal-pci-0000:00:00.0.bin failed with error -2 >> [ 8.979898] ath10k_pci 0000:00:00.0: Falling back to user helper >> [ 9.152735] firmware ath10k!cal-pci-0000:00:00.0.bin: >> firmware_loading_store: map pages failed >> [ 9.372011] ath10k_pci 0000:00:00.0: qca988x hw2.0 target >> 0x4100016c chip_id 0x043222ff sub 0000:0000 >> [ 9.381409] ath10k_pci 0000:00:00.0: kconfig debug 1 debugfs 1 >> tracing 0 dfs 0 testmode 1 >> [ 9.394456] ath10k_pci 0000:00:00.0: firmware ver 10.2.4.70.63-2 >> api 5 features no-p2p,raw-mode,mfp,allows-mesh-bcast crc32 4ff9e14d >> [ 9.406551] ath10k_pci 0000:00:00.0: boot upload otp to 0x1234 len >> 7205 for board id >> [ 9.452326] ath10k_pci 0000:00:00.0: boot get otp board id result >> 0x00000001 board_id 0 chip_id 0 >> [ 9.459134] ath10k_pci 0000:00:00.0: board id is not exist in otp, ignore >> it >> [ 9.464180] ath10k_pci 0000:00:00.0: Direct firmware load for >> ath10k/QCA988X/hw2.0/board-2.bin failed with error -2 >> [ 9.474778] ath10k_pci 0000:00:00.0: Falling back to user helper >> [ 9.564373] ath10k_pci 0000:00:00.0: firmware >> ath10k!QCA988X!hw2.0!board-2.bin: firmware_loading_store: map pages >> failed >> [ 9.573602] ath10k_pci 0000:00:00.0: board_file api 1 bmi_id N/A >> crc32 bebc7c08 >> [ 9.592793] ath10k_pci 0000:00:00.0: pre cal download procedure >> failed, try cal file: -2 >> [ 9.598789] ath10k_pci 0000:00:00.0: boot did not find a >> calibration file, try DT next: -11 >> [ 9.605080] ath10k_pci 0000:00:00.0: boot did not find DT entry, >> try target EEPROM next: -2 >> [ 9.611355] ath10k_pci 0000:00:00.0: boot did not find target >> EEPROM entry, try OTP next: -122 >> [ 9.739549] ath10k_pci 0000:00:00.0: otp calibration failed: 2 > > This is the problem, otp.bin fails to find your calibration data from > the boards's OTP memory. Are you sure that the board has the calibration > data in OTP? > > What kernel is this? Something from openwrt? And what device? > > -- > Kalle Valo _______________________________________________ ath10k mailing list ath10k@lists.infradead.org http://lists.infradead.org/mailman/listinfo/ath10k