Forward error correction (FEC) is available on the PHYs of the MRMAC port. FEC can be enabled or disabled on a per-port basis.
The FEC_CONFIGURATION_REG needs to be configured appropriately for the FEC to work. For example, the Clause 49 flag should be set to 1 for modes which require Clause 49 transcoding (25GE, 50GE, Fibre Channel) and set to 0 for modes which require Clause 82 transcoding (100GE). CTL_TX_FEC_FOUR_LANE_PMD needs to set to 1 for 100CAUI-4 with RSFEC (it should be set to 0 100GAUI-2 and other modes). For additional details, refer to the Register description sheet of MRMAC Register document.
The various FEC operating modes are selected through the ctl_fec_mode
field of the FEC_CONFIGURATION_REG configuration
register. A change in the FEC_CONFIGURATION_REG of the port requires a reset being driven to
that port after configuration is complete.
For a 50G configuration, the alignment marker spacing changes depending on whether RSFEC is enabled. The 50G alignment marker spacing should be set to 0x3FFF when RSFEC is disabled and 0x4FFF when RSFEC is enabled, via ctl_tx_vl_length_minus1_50ge_0/2 and ctl_rx_vl_length_minus1_50ge_0/2.
MRMAC Port | Operating Rate | ctl_fec_mode_<N>[3:0] | Description |
---|---|---|---|
0 | All rates | 'b0000 | FEC Disabled |
100GE | 'b1000 | IEEE 802.3 RS(528,514) FEC | |
'b1010 | IEEE P802.3cd/D3.5 CL91 RS(544,514) FEC | ||
'b1011 | ITU-T FlexEO RS(544,514) FEC | ||
50GE | 'b0100 | 25G/50G Ethernet Consortium RS(528,517) FEC | |
'b0101 | IEEE P802.3cd/D3.5 CL134 RS(544,514) FEC | ||
'b1111 | IEEE 802.3 CL74 FEC | ||
40GE | 'b1101 | IEEE 802.3 CL74 FEC | |
25GE | 'b0010 | 25G/50G Ethernet Consortium RS(528,514) FEC | |
'b0011 | IEEE 802.3 CL108 RS(528,514) FEC | ||
'b1110 | IEEE 802.3 CL74 FEC | ||
10GE | 'b1100 | IEEE 802.3 CL74 FEC | |
32GFEC | 'b0001 | 32GFEC (Valid only for Flex Interface) | |
1 | All rates | 'b0000 | FEC Disabled |
25GE | 'b0010 | 25G/50G Ethernet Consortium RS(528,514) FEC | |
'b0011 | IEEE 802.3 CL108 RS(528,514) FEC | ||
'b1110 | IEEE 802.3 CL74 FEC | ||
10GE | 'b1100 | IEEE 802.3 CL74 FEC | |
32GFEC | 'b0001 | 32GFEC (Valid only for Flex Interface) | |
2 | All rates | 'b0000 | FEC Disabled |
50GE | 'b0100 | 25G/50G Ethernet Consortium RS(528,514) FEC | |
'b0101 | IEEE P802.3cd/D3.5 CL134 RS(544,514) FEC | ||
'b1111 | IEEE CL74 25/50GE Ethernet Consortium | ||
25GE | 'b0010 | 25G/50G Ethernet Consortium RS(528,514) FEC | |
'b0011 | IEEE 802.3 CL108 RS(528,514) FEC | ||
'b1110 | IEEE 802.3 CL74 FEC | ||
10GE | 'b1100 | IEEE 802.3 CL74 FEC | |
32GFEC | 'b0001 | 32GFEC (Valid only for Flex Interface) | |
3 | All rates | 'b0000 | FEC Disabled |
25GE | 'b0010 | 25G/50G Ethernet Consortium RS(528,514) FEC | |
'b0011 | IEEE 802.3 CL108 RS(528,514) FEC | ||
'b1110 | IEEE 802.3 CL74 FEC | ||
10GE | 'b1100 | IEEE 802.3 CL74 FEC | |
32GFEC | 'b0001 | 32GFEC (Valid only for Flex Interface) |