Visible to Intel only — GUID: nuk1663192635766
Ixiasoft
Visible to Intel only — GUID: nuk1663192635766
Ixiasoft
4.5.2.1. Dynamic Reconfiguration Flow in 100G Ethernet Dynamic Reconfiguration Example Design
The following provides a general sequential flow for the dynamic reconfiguration transition that takes place within this 100G Ethernet Dynamic Reconfiguration design. When a dynamic reconfiguration transition is triggered through the run_test_dr_sw procedure, it executes the underlying dr_calib_switch procedure with the following sequential flow:
- Disable Serdes (through PMA attribute code 0x0001). For more information, refer to the E-Tile Transceiver PHY User Guide .
- Write 0x6 to Ethernet register 0x310 to assert TX and RX soft reset signals.
- Perform PMA Analog Reset. For more information, refer to the E-Tile Transceiver PHY User Guide.
- To load initial PMA configuration, write 0x01 to transceiver register 0x91 for every transceiver channel.
- Perform dynamic reconfiguration transition based on the arguments passed in through the run_test_dr_sw function. The function arguments determines the values of the dynamic reconfiguration registers. With that, the firmware processes the register space modifications accordingly for the Ethernet, Transceiver and RS-FEC configuration register space.
- Enable Serdes (through PMA attribute code 0x0001). For more information, refer to the E-Tile Transceiver PHY User Guide.
- Perform dynamic reconfiguration reset (assert and de-assert) through dynamic reconfiguration register 0xE.
- Write 0x6 to Ethernet register 0x310 to continue asserting RX soft reset signals.
- Enable internal serial loopback.
- Trigger PMA adaptation by enabling initial adaptation, check initial adaptation.
- Write 0x0 to Ethernet register 0x310 to release TX and RX soft reset signals.
To learn more about the modification performed by the firmware on the Ethernet, Transceiver and RS-FEC registers for various modes, refer to the dynamic_reconfig.cpp file generated in the IP folder.
After you compile the 100G Ethernet E-Tile Dynamic Reconfiguration Design Example and configure it on your device, you can use the procedures to program the IP core.
Command Setting | Description |
---|---|
start_random_pkt_gen_4ch | Starts the packet generator in a random size mode for all four channel lanes. Example: %start_random_pkt_gen_4ch |
stop_pkt_gen_4ch | Immediately stops the packet generator for all four channel lanes. |
chkmac_stats $ch | Checks the mac stats counter for the specified channel.
Example:
|
run_test_dr | Switches between all available modes and performs the traffic test for each reconfiguration. In 25GE mode, performs four traffic tests, one per each lane. |
run_test_dr_sw $elb $mode_curr $mode_target |
Switches to a specified mode and performs the traffic test in a loopback mode.
$mode_target options: $more_curr variable supports all target modes.
Note: $mode_curr is not a required parameter.
Example:
In 100GE mode, use this command to switch to 4x25GE:
run_test_dr_sw $elb "100g_rsfec" "4x25G_nofec" In 25GE mode, use this command to switch to 4x25GE: run_test_dr_sw 0 "" "4x25G_nofec" as
Note: $mode_curr is not required.
|
dr_calib_switch $elb $mode_curr $mode_target | Reconfigures to a different mode based on the configuration and a $mode_target variable. Performs the PMA adaptation for the specific mode. $more_curr variable supports all target modes.
Note: $mode_curr is not a required parameter.
Example:
|
dr_reset | Resets all signals except the PMA and E-tile Hard IP for Ethernet CSRs. |
Below tables describe dr_reset sequence. You need to assert the 4-bit register in a step pattern: 0x8 > 0xC > 0xE > 0xF > 0xE > 0xC > 0x8 > 0x0. Assume 1 ms delay between each step.
Assertion Sequence | dr_reset[3:0]={Channel3, Channe2, Channe1, Channel0} | |||
---|---|---|---|---|
Channel 3 |
Channel 2 |
Channel 1 |
Channel 0 (Master Channel) |
|
1 | 1 | 0 | 0 | 0 |
2 | 1 | 1 | 0 | 0 |
3 | 1 | 1 | 1 | 0 |
4 | 1 | 1 | 1 | 1 |
Assertion Sequence | dr_reset[3:0]={Channel3, Channe2, Channe1, Channel0} | |||
---|---|---|---|---|
Channel 3 |
Channel 2 |
Channel 1 |
Channel 0 (Master Channel) |
|
1 | 1 | 1 | 1 | 1 |
2 | 1 | 1 | 1 | 0 |
3 | 1 | 1 | 0 | 0 |
4 | 0 | 0 | 0 | 0 |