bcm-v4

[Specification

N PHY RX Core Set State (u8 maskbits)

  1. Establish a 16-element u16 buffer
  2. Set phyrxchain to maskbits

  3. If clk is zero

    1. Return
  4. Suspend the MAC
  5. If phyhang_avoid

    1. Call N PHY staying in carrier search with argument 1

  6. Maskset PHY Register 0xA2 with 0xFF0F and set with (maskbits & 0x3) << 4

  7. If maskbits & 3 not equal to 3

    1. Write 1 to PHY Register 0x20E
    2. If PHY Revision >= 3

      1. If rx2tx_biasentry equals -1

        1. Read the N PHY table with ID 7, length 16, offset 80, width 16, and the buffer as data pointer
        2. Loop 16 times with i as the loop index
          1. If the i'th entry in the table buffer is 0xF
            1. Set rx2tx_biasentry to i

            2. Write the N PHY table with ID 7, length 1, offset i, width 16, and data 0
            3. break
          2. Else if the i'th entry in the table buffer is 0x1F
            1. Break
  8. Otherwise
    1. Write 0x001E to PHY Register 0x20E
    2. If PHY Revision >= 3

      1. If rx2tx_biasentry not equal to -1

        1. Write the N PHY table with ID 7, length 1, offset rx2tx_biasentry, width 16, and data 0xF

      2. Set rx2tx_biasentry to -1

  9. Call N PHY Force RF Sequence with argument 2

  10. If phyhang_avoid

    1. Call N PHY staying in carrier search with argument 0

  11. Enable the MAC

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