bcm-v4

[Specification

N PHY Workarounds Gain Control 2057 Rev6

  1. Set bit 1 << 13 in PHY Regtister 0x1C

  2. Set bit 1 << 13 in PHY Regtister 0x32

  3. Read PHY Register 0x09 amd mask with 1
  4. If the result is 0
    1. Write an N PHY Table with ID 0, length 4, offset 8, width 8, and data 9, 14, 19, 24
    2. Write an N PHY Table with ID 1, length 4, offset 8, width 8, and data 9, 14, 19, 24
    3. Maskset PHY Register 0x283 with mask 0xFF00 and set 0x40
    4. If this is a 40 MHz channel
      1. Maskset PHY Register 0x280 with mask 0xFF00 and set 0x3E
      2. Maskset PHY Register 0x283 with mask 0xFF00 and set 0x3E
    5. Maskset PHY Register 0x289 with mask 0xFF00 and set 0x46
    6. If the BW is 20 MHz
      1. Maskset PHY Register 0x300 with mask 0xFFC0 and set 0xD
      2. Maskset PHY Register 0x301 with mask 0xFFC0 and set 0xD
  5. Otherwise
    1. Set init_gaincode to 0x9e
    2. Set clip1hi_gaincode to 0x9e
    3. Set clip1md_gaincode_B to 0x24
    4. Set clip1lo_gaincode to 0x8a
    5. Set clip1lo_gaincode_B to 8
    6. Set rfseq_init_gain to 0x624f, 0x624f
    7. Set tia_gain_db to -9, -6, -3, 0, 3, 3, 3, 3, 3, 3
    8. Set tia_gainbits to 0, 1, 2, 3, 4, 4, 4, 4, 4, 4
    9. Set freq to the frequency of the channel
    10. If the BW is 20 MHz
      1. Set w1clip_th to 25
      2. Set clip1md_gaincode to 0x82
      3. If freq <= 5080 or freq == 5825

        1. Set lna1_gain_db to 11, 16, 20, 24
        2. Set lna1_gain_db_2 to 11, 17, 22, 25
        3. Set lna2_gain_db to -1, 6, 10, 14
        4. Set crsminu_th to 0x3e
      4. Else if freq >= 5500 and freq <= 5700

        1. Set lna1_gain_db to 11, 17, 21, 25
        2. Set lna1_gain_db_2 to 12, 18, 22, 26
        3. Set lna2_gain_db to 1, 8, 12, 16
        4. Set crsminu_th to 0x45
        5. Set clip1md_gaincode_B to 0x14
        6. Set nbclip_th to 0xff
        7. Set chg_nbclip_th to 1
      5. Otherwise
        1. Set lna1_gain_db to 12, 18, 22, 26
        2. Set lna1_gain_db_2 to 12, 18, 22, 26
        3. Set lna2_gain_db to -1, 6, 10, 14
        4. Set crsminu_th to 0x41
      6. If freq <= 4920

        1. Set nvar_baseline_offset0 to 5
        2. Set nvar_baseline_offset1 to 5
      7. Else if (freq > 4920) && (freq <= 5320)

        1. Set nvar_baseline_offset0 to 3
        2. Set nvar_baseline_offset1 to 5
      8. Else if (freq > 5320) && (freq <= 5700)

        1. Set nvar_baseline_offset0 to 3
        2. Set nvar_baseline_offset1 to 2
      9. Otherwise
        1. Set nvar_baseline_offset0 to 4
        2. Set nvar_baseline_offset1 to 0
    11. Otherwise
      1. Set crsminu_th to 0x3a
      2. Set crsminl_th to 0x3a
      3. Set w1clip_th to 20
      4. If (freq >= 4920) && (freq <= 5320)

        1. Set nvar_baseline_offset0 to 4
        2. Set nvar_baseline_offset1 to 5
      5. Else if (freq > 5320) && (freq <= 5550)

        1. Set nvar_baseline_offset0 to 4
        2. Set nvar_baseline_offset1 to 2
      6. Otherwise
        1. Set nvar_baseline_offset0 to 5
        2. Set nvar_baseline_offset1 to 3
    12. Write init_gaincode to PHY Register 0x20
    13. Write init_gaincode to PHY Register 0x2A7
    14. Write an N PHY Table with ID 7, length 2, offset 0x106, width 16, and data from rfseq_init_gain
    15. Write clip1hi_gaincode to PHY Register 0x22
    16. Write clip1hi_gaincode to PHY Register 0x2A9
    17. Write clip1md_gaincode_B to PHY Register 0x36
    18. Write clip1md_gaincode_B to PHY Register 0x2AC
    19. Write clip1lo_gaincode to PHY Register 0x37
    20. Write clip1lo_gaincode to PHY Register 0x2AD
    21. Write clip1lo_gaincode_B to PHY Register 0x38
    22. Write clip1lo_gaincode_B to PHY Register 0x2AE
    23. Write an N PHY Table with ID 0, length 10, offset 0x20, width 8, and data from tia_gain_db
    24. Write an N PHY Table with ID 1, length 10, offset 0x20, width 8, and data from tia_gain_db
    25. Write an N PHY Table with ID 2, length 10, offset 0x20, width 8, and data from tia_gainbits
    26. Write an N PHY Table with ID 3, length 10, offset 0x20, width 8, and data from tia_gainbits
    27. Maskset PHY Register 0x283 with mask 0xFF00 and set with crsminu_th
    28. If chg_nbclip_th == 1
      1. Write nbclip_th to PHY Register 0x2B
      2. Write nbclip_th to PHY Register 0x41
    29. Maskset PHY Register 0x300 with mask 0xFFC0 and set with w1clip_th
    30. Maskset PHY Register 0x301 with mask 0xFFC0 and set with w1clip_th
    31. Maskset PHY Register 0x2E4 with mask 0xFFC0 and set with nvar_baseline_offset0
    32. Maskset PHY Register 0x2E4 with mask 0xF03F and set with nvar_baseline_offset1 << 6

    33. If BW is 20 MHz
      1. Write an N PHY Table with ID 0, length 4, offset 8, width 8, and data from lna1_gain_db
      2. Write an N PHY Table with ID 1, length 4, offset 8, width 8, and data from lna1_gain_db_2
      3. Write an N PHY Table with ID 0, length 4, offset 16, width 8, and data from lna2_gain_db
      4. Write an N PHY Table with ID 1, length 4, offset 16, width 8, and data from lna2_gain_db_2
      5. Write clip1md_gaincode to PHY Register 0x24
      6. Write clip1md_gaincode to PHY Register 0x2AB
    34. Otherwise
      1. Maskset PHY Register 0x280 with mask 0xFF00 and set with crsminl_th

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