bcm-v4

[Specification

N PHY Set Chanspec (u16 chanspec)

  1. Create a struct chan_info_nphy_rev3 pointer named chan_info_ptr and set to NULL
  2. Set channel to chanspec & 0x00FF

  3. If PHY Revision >= 3

    1. If PHY Revision is 3
      1. Set chan_info_ptr to PHY Revision 3 Table

    2. Else if PHY Revision is 4
      1. Set chan_info_ptr to PHY Revision 4 Table

    3. Otherwise
      1. If the Radio Revision is 5
        1. Set chan_info_ptr to PHY Revision 5 Table

      2. Else if the Radio Revision is 6
        1. Set chan_info_ptr to PHY Revision 6 Table

      3. Else if the Radio Revision is 7 or 9
        1. Set chan_info_ptr to PHY Revision 7 Table

      4. Else if the Radio Revision is 8
        1. Set chan_info_ptr to PHY Revision 8 Table

    4. Find the entry in the table that matches channel, let i be that index
    5. Return if not found
  4. Otherwise
    1. Save a pointer to the PHY Revision 2 Table

    2. Find the entry in the table that matches the channel, let i be that index
    3. Return if not found
  5. Set radio_chanspec to chanspec

  6. Extract the band width from chanspec and save as bw
  7. If bw not equal to bw

    1. Call BMAC BW Set with bw as argument

  8. If chanspec indicates 40 MHz band width
    1. If an upper control sideband is indicated
      1. Set bit 0x0010 in PHY Register 0xA0
    2. Otherwise
      1. Clear bit 0x0010 in PHY Register 0xA0
  9. If the PHY Revision >= 3

    1. If chanspec indicates a 5 GHz band
      1. Set tmp to 4
    2. Otherwise
      1. Set tmp to 0
    3. Maskset Radio Register 0x08 with mask 0xFFFB and set with tmp
    4. Call PHY Radio2056 Setup with chan_info_ptr[i] as argument

    5. Call N PHY Chanspec Setup with chan_info_ptr[i] data for PHY Register 0x1CE and chanspec as arguments

  10. Otherwise
    1. If chanspec indicates a 5 GHz band
      1. Set tmp to 0x20
    2. Otherwise
      1. Set tmp to 0x50
    3. Maskset Radio Register 0x11 with mask 0xFF8F and set with tmp
    4. Call PHY Radio2055 Setup with the Rev 2 pointer[i] as argument

    5. Call N PHY Chanspec Setup with the Rev 2 pointer[i] data for PHY Register 0x1CE and chanspec as arguments


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