bcm-specs

[Specification

Accessing the NRSSI Lookup Table

The NRSSI Table is accessed through PHYRegisters 0x803 and 0x804, there are 64 entries. To read a value back from the table, put the position you'd like to read from in PHYRegister 0x803 and read back the value by reading PHYRegister 0x804. You can also write values to the table by writing the position to write to PHYRegister 0x803 and writing the value to PHYRegister 0x804. Note that these are all signed 6 bit values which are read and written as 16 bit values, so be careful with the sign.

There appears to be a second NRSSI Lookup Table in memory, it is also 64 entries long. Each value is initialized with its position value.

Updating the NRSSI Lookup Table (In hardware table)

  1. Loop over each entry
    1. Subtract the update amount from the value
    2. Clamp the value to a valid 6 bit value (range [-32..31])
    3. Write the 6 bit NRSSI value back to the table

Update NRSSI Lookup Table (In memory table)

  1. The delta value is 0x1F - the first saved NRSSI value
  2. Loop over each entry
    1. Take the position of this entry in the table (not the value), subtract the delta and multiply by the NRSSI Slope (this is a s32)
    2. divide this value by 0x10000 and add 0x3A
    3. Clamp the value between 0 and 0x3F and store the value back into the table.

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