- Enable the Abilities register, CONFIGURATION_AN_ABILITY (0x00F8), as per the core configuration or the abilities you want to advertise. For example, write the value 0x1E06 to address 0x00F8.
- Read the CONFIGURATION_AN_CONTROL_REG1 (00E0) register. Based on the requirement, you can enable or bypass the auto-negotiation. If auto-negotiation is enabled then you need to write the nonce seed value. For example, write the value 0x16D to address 0x00E0.
- Read the CONFIGURATION_AN_CONTROL_REG2 (0x00E4) register. Based on the requirement you can enable Pause, FEC, RS-FEC, etc. by writing to address 0x00E4. For example, write the value 0x16D to address 0x00E4.
- Enable the link training option by setting the CONFIGURATION_LT_CONTROL_REG1 (0x0100) register link training control signal. For example, write the value 0x1 to address 0x0100.
- Write the CONFIGURATION_LT_SEED_REG0 (0x0110) register with some seed value. For example, write the value 0x0605 to address 0x0110.
- Write the CONFIGURATION_LT_SEED_REG1(0x0114) register with some seed valueFor example, write the value as 0x0807 to address 0x0114.
- Write the CONFIGURATION_LT_COEFFICIENT_REG0 (0x0130) register with some coefficient values for the place holder logic. For example, write the value 0x540 to address 0x0130.
- Write the CONFIGURATION_LT_COEFFICIENT_REG1 (0x0134) register with some coefficient values for the place holder logic. For example, write the value 0x555 to address 0x0134.
- Issue
sys_reset
/write1'b1
toctl_an_reset
that is, bit 28th of address 0x0004, so that the Auto-Negotiation block looks for the updated nonce seed value. - Keep reading
stat_an_autoneg_complete
, bit 2nd of address 0x0458, which indicates the successful completion of the Auto negotiation and link training.