bcm-v4

[Specification

G PHY ACI Control ( bool enable)

Note: The locations used to save/restore register contents must be global or static as they are used across calls.

  1. If PHY Register 0x33 is 0x0800

    1. Set tmp TRUE
  2. Otherwise
    1. Set tmp FALSE
  3. If tmp equals enable
    1. Return
  4. If enable is true
    1. Set bit 2 in aci_state

    2. Save PHY Registers 0x401 and 0x429

    3. If the PHY revision is 1
      1. Save PHY Register 0x406

    4. Otherwise
      1. Save PHY Registers 0x4C0 and 0x4C1

    5. Save PHY Registers 0x33, 0x4A7, 0x4A3, 0x4A9, 0x4AA, 0x4AC, 0x493, 0x4A1, 0x4A0, 0x4A2, 0x48A, 0x4A8, and 0x4AB

    6. If PHY revision >= 2

      1. Save PHY Register 0x4AD

      2. If PHY revision is 2
        1. Save PHY Register 0x4AE

      3. Otherwise
        1. Save PHY Registers 0x415, 0x416, and 0x417

        2. Save APHY Read Table Entry with arguments ( 0x407, 2) save table 2

        3. Save APHY Read Table Entry with arguments ( 0x407, 3) save table 3

    7. Save PHY Registers 0x42B and 0x48C

    8. Clear bit 0x1000 in PHY Register 0x401

    9. MaskSet PHY Register 0x429 with mask 0xFFFC and set with 0x0002

    10. Write 0x0800 to PHY Register 0x33

    11. Write 0x2027 to PHY Register 0x4A3

    12. Write 0x1CA8 to PHY Register 0x4A9

    13. Write 0x287A to PHY Register 0x493

    14. Write 0x1CA8 to PHY Register 0x4AA

    15. Write 0x287A to PHY Register 0x4AC

    16. MaskSet PHY Register 0x4A0 with mask 0xFFC0 and set with 0x001A

    17. Write 0x000D to PHY Register 0x4A7

    18. If PHY revision is 1
      1. Write 0xFF0D to PHY Register 0x406

    19. Else if PHY revision is 2
      1. Write 0xFFFF to PHY Register 0x4C0

      2. Write 0x00A9 to PHY Register 0x4C1

    20. Otherwise
      1. Write 0x00C1 to PHY Register 0x4C0

      2. Write 0x0059 to PHY Register 0x4C1

    21. MaskSet PHY Register 0x4A1 with mask 0xC0FF and set with 0x1800

    22. MaskSet PHY Register 0x4A1 with mask 0xFFC0 and set with 0x0015

    23. MaskSet PHY Register 0x4A8 with mask 0xCFFF and set with 0x1000

    24. MaskSet PHY Register 0x4A8 with mask 0xF0FF and set with 0x0A00

    25. MaskSet PHY Register 0x4AB with mask 0xCFFF and set with 0x1000

    26. MaskSet PHY Register 0x4AB with mask 0xF0FF and set with 0x0800

    27. MaskSet PHY Register 0x4AB with mask 0xFFCF and set with 0x0010

    28. MaskSet PHY Register 0x4AB with mask 0xFFF0 and set with 0x0005

    29. MaskSet PHY Register 0x4A8 with mask 0xFFCF and set with 0x0010

    30. MaskSet PHY Register 0x4A8 with mask 0xFFF0 and set with 0x0006

    31. MaskSet PHY Register 0x4A2 with mask 0xF0FF and set with 0x0800

    32. MaskSet PHY Register 0x4A0 with mask 0xF0FF and set with 0x0500

    33. MaskSet PHY Register 0x4A2 with mask 0xFFF0 and set with 0x000B

    34. If PHY revision <= 2

      1. Set bit 0x1000 in PHY Register 0x48A

      2. MaskSet PHY Register 0x48A with mask 0x9FFF and set with 0x2000

      3. Call mhf with arguments ( 0, 0x0800, 0x0800, 0 )

    35. Otherwise
      1. Clear bit 0x1000 in PHY Register 0x48A

      2. MaskSet PHY Register 0x415 with mask 0x8000 and set with 0x36DB

      3. MaskSet PHY Register 0x416 with mask 0x8000 and set with 0x36DB

      4. MaskSet PHY Register 0x417 with mask 0xFE00 and set with 0x016D

    36. If the PHY revision >= 2

      1. Set bit 0x0800 in PHY Register 0x42B

    37. MaskSet PHY Register 0x48C with mask 0xF0FF and set with 0x0200

    38. If the PHY revision is 2
      1. MaskSet PHY Register 0x4AE with mask 0xFF00 and set with 0x007F

      2. MaskSet PHY Register 0x4AD with mask 0x00FF and set with 0x1300

    39. Else if the PHY revision >= 6

      1. Call APHY Write Table Entry with arguments ( 0x407, 0x3, 0x7F)

      2. Call APHY Write Table Entry with arguments ( 0x407, 0x2, 0x7F)

      3. Clear bits 0xFF00 in PHY Register 0x4AD

    40. Calculate NRSSI Slope

  5. Otherwise
    1. Clear bit 2 in aci_state

    2. Restore PHY Registers 0x401, 0x429, 0x33, 0x4A3, 0x4A9, 0x493, 0x4AA, 0x4AC, 0x4A0, and 0x4A7

    3. If the PHY revision is 1
      1. Restore PHY Register 0x406

    4. Otherwise
      1. Restore PHY Registers 0x4C0 and 0x4C1

    5. Restore PHY Registers 0x4A1, 0x4AB, and 0x4A8

    6. If the PHY revision >= 2

      1. Restore PHY Register 0x4AD

      2. If the PHY revision is 2
        1. Restore PHY Register 0x4AE

      3. Otherwise
        1. Restore PHY Registers 0x415, 0x416, and 0x417

        2. Call APHY Write Table Entry using 0x407, 0x2, and save table 2 as arguments

        3. Call APHY Write Table Entry using 0x407, 0x3, and save table 3 as arguments

    7. Restore PHY Registers 0x4A2, 0x48A, 0x42B, and 0x48C

    8. Call mhf with arguments ( 0, 0x0800, 0, 0)

    9. Calculate NRSSI Slope


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