bcm-v4

[Specification

N PHY Run Samples (u16 samps, u16 loops, u16 wait, u8 iqmode, u8 dac_test)

  1. If phyhang_avoid is TRUE

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

  2. If nphy_bb_mult_save & 0x80000000 is zero

    1. Read the N PHY Table with ID 15, length 1, offset 87, width 16, and tmp as data pointer
    2. Set nphy_bb_mult_save to (tmp & 0xFFFF) | 0x80000000

  3. If the band width is 40 MHz
    1. Set tmp to 71 << 8 + 71

  4. Otherwise
    1. Set tmp to 100 << 8 + 100

  5. Write N PHY Table with ID 15, length 1, offset 87, width 16, and data tmp
  6. If phyhang_avoid is TRUE

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

  7. Write samps - 1 to PHY Register 0xC6
  8. If loops not equal to 0xFFFF
    1. Write loops - 1 to PHY Register 0xC4
  9. Otherwise
    1. Write loops to PHY Register 0xC4
  10. Write wait to PHY Register 0xC5
  11. Save the contents of PHY Register 0xA1
  12. Set bit 1 in PHY Register 0xA1
  13. If iqmode not equal to 0
    1. Mask PHY Register 0xC2 with mask 0x7FFF
    2. Set bit 0x8000 in PHY Register 0xC2
  14. Otherwise
    1. If dac_test is equal to 1
      1. Write 5 to PHY Register 0xC3
    2. Otherwise
      1. Write 1 to PHY Register 0xC3
  15. Spin Wait on bit 1 set in PHY Register 0xA4, wait for a maximum of 1000 usec, test every 10 usec
  16. Restore the original contents of PHY Register 0xA1

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