PHY CALIBRATION ROUTINES(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

PHY Calibration routines

Kernel API Manual check, bestie β€” this whole page is the 9 section energy, and we're about to get into the PHY calibration routines. It's giving "hardware self-care checklist," ngl. βœ¨πŸ’…

πŸŽ€ Noise floor calibration πŸŽ€

Okay so when we tell the hardware to perform a noise floor calibration by setting the AR5K_PHY_AGCCTL_NF bit on AR5K_PHY_AGCCTL, it will periodically sample-and-hold the minimum noise level seen at the antennas. That value is then stored in a ring buffer of recently measured noise floor values, so we have a moving window of the last few samples. The median of the values in the history is then loaded into the hardware for its own use for RSSI and CCA measurements. This type of calibration doesn't interfere with traffic. slay, no drama. πŸ’–

πŸ¦‹ AGC calibration πŸ¦‹

When we tell the hardware to perform an AGC (Automatic Gain Control) calibration by setting AR5K_PHY_AGCCTL_CAL, hw disconnects the antennas and does a calibration on the DC offsets of ADCs. During this period rx/tx gets disabled, so we have to deal with it on the driver part. lowkey a big deal β€” the driver part is not just vibing, it has to handle that window. 😭

🌸 I/Q calibration 🌸

When we tell the hardware to perform an I/Q calibration, it tries to correct I/Q imbalance and fix QAM constellation by sampling data from rxed frames. It doesn't interfere with traffic. iconic behavior, honestly. 🫢

For more infos on AGC and I/Q calibration check out patent doc #03/094463. πŸ“„βœ¨

🌈 SEE ALSO 🌈


source/version: ./drivers/net/wireless/ath/ath5k Β· date: October 2026 Β· page: PHY Calibration routines(9) β€” bye bestie, hydrate and calibrate responsibly πŸ’–βœ¨πŸ¦‹

πŸ“¦ where this page comes from