bcm-v4

[Specification

N PHY Save Cal

  1. If phyhang_avoid

    1. Call N PHY Stay in Carrier Search with 1 as argument

  2. If the band is 2 GHz
    1. Call N PHY RX IQ Coeffs with 0, calibration_cache.rxcal_coeffs_2G as arguments

    2. If PHY Revision >= 3

      1. Read Radio Register 0x2021 and store in calibration_cache.txcal_radio_regs_2G[0]

      2. Read Radio Register 0x2022 and store in calibration_cache.txcal_radio_regs_2G[1]

      3. Read Radio Register 0x3021 and store in calibration_cache.txcal_radio_regs_2G[2]

      4. Read Radio Register 0x3022 and store in calibration_cache.txcal_radio_regs_2G[3]

      5. Read Radio Register 0x2023 and store in calibration_cache.txcal_radio_regs_2G[4]

      6. Read Radio Register 0x2024 and store in calibration_cache.txcal_radio_regs_2G[5]

      7. Read Radio Register 0x3023 and store in calibration_cache.txcal_radio_regs_2G[6]

      8. Read Radio Register 0x3024 and store in calibration_cache.txcal_radio_regs_2G[7]

    3. Otherwise
      1. Read Radio Register 0x8B and store in calibration_cache.txcal_radio_regs_2G[0]

      2. Read Radio Register 0xBA and store in calibration_cache.txcal_radio_regs_2G[1]

      3. Read Radio Register 0x8D and store in calibration_cache.txcal_radio_regs_2G[2]

      4. Read Radio Register 0xBC and store in calibration_cache.txcal_radio_regs_2G[3]

    4. Set nphy_iqcal_chanspec_2G to radio_chanspec Note: b43 does not implement chanspecs.

    5. Set a table data pointer to calibration_cache.txcal_coeffs_2G

  3. Otherwise
    1. Call N PHY RX IQ Coeffs with 0, calibration_cache.rxcal_coeffs_5G as arguments

    2. If PHY Revision >= 3

      1. Read Radio Register 0x2021 and store in calibration_cache.txcal_radio_regs_5G[0]

      2. Read Radio Register 0x2022 and store in calibration_cache.txcal_radio_regs_5G[1]

      3. Read Radio Register 0x3021 and store in calibration_cache.txcal_radio_regs_5G[2]

      4. Read Radio Register 0x3022 and store in calibration_cache.txcal_radio_regs_5G[3]

      5. Read Radio Register 0x2023 and store in calibration_cache.txcal_radio_regs_5G[4]

      6. Read Radio Register 0x2024 and store in calibration_cache.txcal_radio_regs_5G[5]

      7. Read Radio Register 0x3023 and store in calibration_cache.txcal_radio_regs_5G[6]

      8. Read Radio Register 0x3024 and store in calibration_cache.txcal_radio_regs_5G[7]

    3. Otherwise
      1. Read Radio Register 0x8B and store in calibration_cache.txcal_radio_regs_5G[0]

      2. Read Radio Register 0xBA and store in calibration_cache.txcal_radio_regs_5G[1]

      3. Read Radio Register 0x8D and store in calibration_cache.txcal_radio_regs_5G[2]

      4. Read Radio Register 0xBC and store in calibration_cache.txcal_radio_regs_5G[3]

    4. Set nphy_iqcal_chanspec_5G to radio_chanspec Same note as above.

    5. Set a table data pointer to calibration_cache.txcal_coeffs_5G

  4. Read an N PHY Table with ID 15, length 8, offset 80, width 16, and the data pointer from above
  5. If phyhang_avoid

    1. Call N PHY Stay in Carrier Search with 0 as argument


Exported/Archived from the wiki to HTML on 2016-10-27