bcm-v4

[Specification

N PHY TX Power Ctrl Coeff Setup

  1. Establish a 7-element u16 array named buffer
  2. If phyhang_avoid

    1. Call N PHY Stay in Carrier Search with 1 as argument

  3. Read an N PHY Table with ID 15, length 7, offset 80, width 16, and data pointer buffer
  4. Loop 2 times with index i
    1. If i is zero
      1. Set tmp to ((buffer[0] & 0x3FF) << 10) | (buffer[1] & 0x3FF)

    2. Otherwise
      1. Set tmp to ((buffer[2] & 0x3FF) << 10) | (buffer[3] & 0x3FF)

    3. Write (i + 26) << 10) | 320 to PHY Register 0x72

    4. Loop 128 times with j as index
      1. Write ((tmp >> 16) & 0xFFFF) to PHY Register 0x74

      2. Write (tmp & 0xFFFF) to PHY Register 0x73

  5. Loop 2 times with index i
    1. Set tmp to buffer[5] (i is 0) or buffer[6] (i is 1)
    2. Set real_part to (tmp >> 8) & 0xFF

    3. Set imag_part to (tmp & 0xFF

    4. Write (((i + 26) << 10) | 448) to PHY Register 0x72

    5. Loop 128 times with j as index
      1. If PHY Revision >= 3

        1. Set cur_real to real_part
        2. Set cur_imag to imag_part
      2. Otherwise
        1. Set cur_real to (real_part * loscale[j] + 128) >> 8

        2. Set cur_imag to (imag_part * loscale[j] + 128) >> 8

      3. Set tmp32 to ((cur_real & 0xFF) << 8) | (cur_imag & 0xFF)

      4. Write ((tmp32 >> 16) & 0xFFFF) to PHY Register 0x74

      5. Write (tmp32 & 0xFFFF) to PHY Register 0x73

  6. If PHY Revision < 2

    1. Write 0xFFFF to shared memory locations 0x708 and 0x70E
  7. If phyhang_avoid

    1. Call N PHY Stay in Carrier Search with 0 as argument

loscale

256

256

271

271

287

256

256

271

271

287

287

304

304

256

256

271

271

287

287

304

304

322

322

341

341

362

362

383

383

256

256

271

271

287

287

304

304

322

322

256

256

271

271

287

287

304

304

322

322

341

341

362

362

256

256

271

271

287

287

304

304

322

322

256

256

271

271

287

287

304

304

322

322

341

341

362

362

256

256

271

271

287

287

304

304

322

322

341

341

362

362

383

383

406

406

430

430

455

455

482

482

511

511

541

541

573

573

607

607

643

643

681

681

722

722

764

764

810

810

858

858

908

908

962

962

1019

1019

256


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