ath10k otp.bin board.bin firmware.bin art.bin?

孙建希 ycsunjane at gmail.com
Thu Apr 20 00:10:43 PDT 2017


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 <kvalo at qca.qualcomm.com>:
> 孙建希 <ycsunjane at 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



More information about the ath10k mailing list