User Tools

Site Tools


en:users:drivers:ath10k:calibration

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

en:users:drivers:ath10k:calibration [2017/05/11 21:40]
Adrian Chadd created
en:users:drivers:ath10k:calibration [2017/05/11 21:41] (current)
Adrian Chadd
Line 9: Line 9:
 The calibration data includes: The calibration data includes:
  
- * Configuration information (MAC address, 2G/5G, 11n capabilities,​ 11ac capabilities,​ number of antennas, etc) +  ​* Configuration information (MAC address, 2G/5G, 11n capabilities,​ 11ac capabilities,​ number of antennas, etc) 
- * Regulatory information +  * Regulatory information 
- * Calibration information (crystal offset calibration,​ TX/RX Gain table, spur information,​ etc) +  * Calibration information (crystal offset calibration,​ TX/RX Gain table, spur information,​ etc) 
- * Power table information (band edges, power levels per channel/​rate,​ etc)+  * Power table information (band edges, power levels per channel/​rate,​ etc)
  
 Without it, the NIC will likely not function correctly. Without it, the NIC will likely not function correctly.
Line 22: Line 22:
 Firstly - there are a number of sources of calibration data. Firstly - there are a number of sources of calibration data.
  
- * Sometimes it's in OTP (one time programmable ROM.) It's on-chip, there'​s a small amount of it, and it's one time programmable. +  ​* Sometimes it's in OTP (one time programmable ROM.) It's on-chip, there'​s a small amount of it, and it's one time programmable. 
- * Sometimes it's in serial attached EEPROM (highly unlikely, but it indeed is a possibility). +  * Sometimes it's in serial attached EEPROM (highly unlikely, but it indeed is a possibility). 
- * Sometimes it's in some section in flash (NOR, NAND) with the rest of the running system. +  * Sometimes it's in some section in flash (NOR, NAND) with the rest of the running system. 
- * Sometimes (during initial calibration) it's just a file on a filesystem.+  * Sometimes (during initial calibration) it's just a file on a filesystem.
  
 The OTP and EEPROM is typically found on discrete NICs. The flash (NOR, NAND) calibration sections are typically found in access points and embedded devices, primarily to cut down manufacturing overhead (no need to program OTP.) The OTP and EEPROM is typically found on discrete NICs. The flash (NOR, NAND) calibration sections are typically found in access points and embedded devices, primarily to cut down manufacturing overhead (no need to program OTP.)
Line 37: Line 37:
 So instead of storing the whole calibration data set in each chip, it's typically a three stage process: So instead of storing the whole calibration data set in each chip, it's typically a three stage process:
  
- * The calibration data in OTP says "​I'​m a board of type X!", which the driver can use to find a template board data file to use; +  ​* The calibration data in OTP says "​I'​m a board of type X!", which the driver can use to find a template board data file to use; 
- * The driver loads the template board data file and OTP file into firmware; +  * The driver loads the template board data file and OTP file into firmware; 
- * The firmware creates a single large calibration data section, and uses that for operation.+  * The firmware creates a single large calibration data section, and uses that for operation.
  
 Now, some of the methods don't require it. Notably, in-flash calibration (NOR, NAND) has an entire copy of the calibration data, so the firmware just consumes all of that. However! The initial boot-up sequence may use parameters in the board data file to find out some capabilities,​ so typically the board data files are still required. Now, some of the methods don't require it. Notably, in-flash calibration (NOR, NAND) has an entire copy of the calibration data, so the firmware just consumes all of that. However! The initial boot-up sequence may use parameters in the board data file to find out some capabilities,​ so typically the board data files are still required.
Line 59: Line 59:
 So, when the driver starts up, it will: So, when the driver starts up, it will:
  
- * Determine which calibration section to check - file, flash, OTP - this is where you can really use you own calibration data in a file. +  ​* Determine which calibration section to check - file, flash, OTP - this is where you can really use you own calibration data in a file. 
- * Read the board data information out and check board data files +  * Read the board data information out and check board data files 
- * if a per-NIC board.bin file exists, use that. This is your general "I really want to use my own per-NIC board data file."​ +  * if a per-NIC board.bin file exists, use that. This is your general "I really want to use my own per-NIC board data file."​ 
- * Assemble a search string to search for board data files - typically that includes the BMI ID out of OTP, PCI ID, PCI subdivide ID, etc +  * Assemble a search string to search for board data files - typically that includes the BMI ID out of OTP, PCI ID, PCI subdivide ID, etc 
- * Use the search string(s) to find a suitable calibration file in a board-2.bin file +  * Use the search string(s) to find a suitable calibration file in a board-2.bin file 
- * If nothing is found, use the global board.bin file +  * If nothing is found, use the global board.bin file 
- * If that isn't found, abort+  * If that isn't found, abort
  
 Then the driver will feed the calibration data and the OTP data to the firmware and .. well, magic happens. Then the driver will feed the calibration data and the OTP data to the firmware and .. well, magic happens.
en/users/drivers/ath10k/calibration.1494538837.txt.gz · Last modified: 2017/05/11 21:40 by Adrian Chadd