E-Tile Transceiver PHY User Guide

ID 683723
Date 7/08/2024
Public
Document Table of Contents

D. Detailed Steps for Reconfiguring from Mission Mode to Channel Protection Mode

Use the following sequence if you want to reconfigure the channel into protection mode.
  1. If using PAM4 for mission mode, turn on Preserve Unused Transceiver Channels.
  2. Assert tx_reset or rx_reset.
  3. Wait for the tx_ready or rx_ready to deassert.
  4. Disable the PMA with PMA attribute code 0x0001.
    1. Write 0x8A[7] = 0x1 to ensure that the PMA attribute status flag (0x8A[7] for the previous attribute) is cleared before writing to registers 0x84 through 0x87 to load in the new PMA attribute.
    2. Write 0x84[7:0] = 0x00.
    3. Write 0x85[7:0] = 0x00.
    4. Write 0x86[7:0] = 0x01.
    5. Write 0x87[7:0] = 0x00.
    6. Write 0x90[0] = 1'b1.
    7. Read 0x8A[7]. It should be 1.
    8. Read 0x8B[0] until it changes to 0.
    9. Write 0x8A[7] to 1'b1 to clear the 0x8A[7] value.
    10. Wait for tx_pma_ready or rx_pma_ready to deassert.
  5. Reset the internal controller inside the PMA.
    1. Write 0x200[7:0] = 0x00.
    2. Write 0x201[7:0] = 0x00.
    3. Write 0x202[7:0] = 0x00.
    4. Write 0x203[7:0] = 0x81.
    5. Read 0x207 until it becomes 0x80. This indicates that the operation completed successfully.
  6. Set the TX and RX encoding to NRZ mode and the TX and RX width to 32 bits.
    1. Write 0x84[7:0] = 0x55.
    2. Write 0x85[7:0] = 0x00.
    3. Write 0x86[7:0] = 0x14.
    4. Write 0x87[7:0] = 0x00.
    5. Write 0x90[0] = 1'b1.
    6. Read 0x8A[7]. It should be 1.
    7. Read 0x8B[0] until it changes to 0.
    8. Write 0x8A[7] to 1'b1 to clear the 0x8A[7] value.
  7. Set the TX baud rate.
    1. Compute the desired TX reference clock multiplier as the closest valid value to 2500/refclock_freq_in_MHz. For example, if the reference clock frequency is 156.25 MHz, the computed reference clock multiplier is 16 which is a valid multiplier. Use the same value for the TX and RX reference clock multipliers.
    2. Write 0x84[7:0] = 0x10 for the decimal 16 in this example.
    3. Write 0x85[7:0] = 0x10.
    4. Write 0x86[7:0] = 0x05.
    5. Write 0x87[7:0] = 0x00.
    6. Write 0x90[0] = 1'b1.
    7. Read 0x8A[7]. It should be 1.
    8. Read 0x8B[0] until it changes to 0.
    9. Write 0x8A[7] to 1'b1 to clear the 0x8A[7] value.
  8. Set the RX baud rate.
    1. Compute the desired TX reference clock multiplier as the closest valid value to 2500/refclock_freq_in_MHz. For example, if the reference clock frequency is 156.25 MHz, the computed reference clock multiplier is 16, which is a valid multiplier. Use the same value for the TX and RX reference clock multipliers.
    2. Write 0x84[7:0] = 0x10 for the decimal 16 in this example.
    3. Write 0x85[7:0] = 0x10.
    4. Write 0x86[7:0] = 0x06.
    5. Write 0x87[7:0] = 0x00.
    6. Write 0x90[0] = 1'b1.
    7. Read 0x8A[7]. It should be 1.
    8. Read 0x8B[0] until it changes to 0.
    9. Write 0x8A[7] to 1'b1 to clear the 0x8A[7] value.
  9. Set the PRBS control to PRBS7.
    1. Write 0x84[7:0] = 0x20.
    2. Write 0x85[7:0] = 0x01.
    3. Write 0x86[7:0] = 0x02.
    4. Write 0x87[7:0] = 0x00.
    5. Write 0x90[0] = 1'b1.
    6. Read 0x8A[7]. It should be 1.
    7. Read 0x8B[0] until it changes to 0.
    8. Write 0x8A[7] to 1'b1 to clear the 0x8A[7] value.
  10. Set the PMA to internal serial loopback.
    1. Write 0x84[7:0] = 0x01.
    2. Write 0x85[7:0] = 0x01.
    3. Write 0x86[7:0] = 0x08.
    4. Write 0x87[7:0] = 0x00.
    5. Write 0x90[0] = 1'b1.
    6. Read 0x8A[7]. It should be 1.
    7. Read 0x8B[0] until it changes to 0.
    8. Write 0x8A[7] to 1'b1 to clear the 0x8A[7] value.
  11. Before entering channel protection mode, save the mission mode settings for the mission mode channels with values from addresses 0x05, 0x07, and 0x38.
  12. Set up the transceiver interface DCC. Use read-modify-write to change only bits 1:0.
    1. Write 0x38[1:0] = 2'b01.
  13. Set up the RX clocks. Use read-modify-write to set only bits 7 and 1.
    1. Write 0x07[7]=1'b0.
    2. Write 0x07[1]=1'b0.
  14. Set up the TX clocks. Use read-modify-write to change only bits 7:2.
    1. Write 0x05[7:2]=6'b000010.
  15. Enable the TX and RX of the PMA with PMA attribute code 0x0001. This disables the TX driver for this channel.
    1. Write 0x84[7:0] = 0x03.
    2. Write 0x85[7:0] = 0x00.
    3. Write 0x86[7:0] = 0x01.
    4. Write 0x87[7:0] = 0x00.
    5. Write 0x90[0] = 1'b1.
    6. Read 0x8A[7]. It should be 1.
    7. Read 0x8B[0] until it changes to 0.
    8. Write 0x8A[7] to 1'b1 to clear the 0x8A[7] value.
    9. Wait for tx_pma_ready or rx_pma_ready to assert.
  16. Run initial adaptation.