Ethernet Subsystem Intel® FPGA IP User Guide

ID 773413
Date 12/08/2023
Public
Document Table of Contents

4.3.1.18. Ncsi_get_link_status

Ncsi_get_link_status SAL command is intended to provide software abstraction for obtaining all the necessary status in single command to comply with get link status CSR requirement in NCSI specification. Users use this command to obtain the ethernet link status per the following table.
Table 26.  Register Description for E-Tile
HSSI Read Data Fields ANLT enable ANLT disable
[31:22] Reserved 0 N/A (Return 0) N/A (Return 0)
[21:21] OEM Link Speed Valid 0b = OEM link settings are invalid.

1b = OEM link settings are valid

N/A (Return 0) N/A (Return 0)
[20:20] SerDes Link

SerDes status (see 4.18")

0b = SerDes not used

1b = SerDes used

This field is mandatory

0x322 tx_pcs_ready AND 0x326 rx_aligned

0x1084 rx_aligned

0x322 tx_pcs_ready AND 0x326 rx_aligned

0x1084 rx_aligned

[19:18] Link Partner Advertised Flow Control

00b = Link partner is not pause capable.

01b = Link partner supports symmetric pause.

10b = Link partner supports asymmetric pause toward link partner.

11b = Link partner supports both symmetric and asymmetric pause.

Valid when: SerDes Flag = 0b

Auto-Negotiate = 1b

Auto-Negotiate Complete = 1b

This field is mandatory

0xCB an_lP_adv_pause[29:28] [28] = PAUSE as defined in Annex 28B [29] = ASM_DIR as defined in Annex 28B

0
[17:17] Rx Flow Control Flag

0b = Reception of Pause frames by the NC from the external network interface is disabled.

1b = Reception of Pause frames by the NC from the external network interface is enabled.

This field is mandatory.

Rx Flow Control Flag

1'b1 = 0x705 en_rx_pause (non zero)

1'b0 = 0x705 en_rx_pause (all zero))

Rx Flow Control Flag

1'b1 = 0x705 en_rx_pause (non zero)

1'b0 = 0x705 en_rx_pause (all zero)

[16:16] TX Flow Control Flag

0b = Transmission of Pause frames by the NC onto the external network interface is disabled.

1b = Transmission of Pause frames by the NC onto the external network interface is enabled.

This field is mandatory interface.

This field is mandatory.

TX Flow Control Flags

1'b1 = 0x605 en_pfc_port (non zero)

1'b0 = 0x605 en_pfc_port (all zero)

Tx Flow Control Flags

1'b1 = 0x605 en_pfc_port (non zero)

1'b0 = 0x605 en_pfc_port (all zero)

[15:15] Link Partner Advertised Speed and Duplex 10THD

1b = Link Partner is 10BASE-T half-duplex capable.

Valid when:

SerDes Flag = 0b

Auto-Negotiate Flag = 1b

Auto-Negotiate Complete = 1b

This field is mandatory.

0 0
[14:14] Link Partner Advertised Speed and Duplex 10TFD

1b = Link Partner is 10BASE-T full-duplex capable.

Valid when:

SerDes Flag = 0b

Auto-Negotiate Flag = 1b

Auto-Negotiate Complete = 1b

This field is mandatory.

0 0
[13:13] Link Partner Advertised Speed and Duplex 100TXHD

1b = Link Partner is 100BASE-TX half-duplex capable.

Valid when:

SerDes Flag = 0b

Auto-Negotiate Flag = 1b

Auto-Negotiate Complete = 1b

This field is mandatory.

0 0
[12:12] Link Partner Advertised Speed and Duplex 100TXFD

1b = Link Partner is 100BASE-TX full-duplex capable.

Valid when:

SerDes Flag = 0b

Auto-Negotiate Flag = 1b

Auto-Negotiate Complete = 1b

This field is mandatory

0 0
[11:11] Link Partner Advertised Speed and Duplex 100T4

1b = Link Partner is 100BASE-T4 capable.

Valid when:

SerDes Flag = 0b

Auto-Negotiate Flag = 1b

Auto-Negotiate Complete = 1b

This field is mandatory

0 0
[10:10] Link Partner Advertised Speed and Duplex 1000THD

1b = Link Partner is 1000BASE-T half-duplex capable.

Valid when:

SerDes Flag = 0b

Auto-Negotiate Flag = 1b

Auto-Negotiate Complete = 1b

This field is mandatory.

0 0
[9:9] Link Partner Advertised Speed and Duplex 1000TFD

1b = Link Partner is 1000BASE-T full-duplex capable.

Valid when:

SerDes Flag = 0b

Auto-Negotiate Flag = 1b

Auto-Negotiate Complete = 1b

This field is mandatory.

0 0
[8:8] Reserved None 0 0
[7:7] Parallel Detection Flag

1b = Link partner did not support auto-negotiation and parallel detection was used to get link.

This field contains 0b if Parallel Detection was not used to obtain link.

0xC2 [7:7] an_lp_apability 0
[6:6] Auto Negotiate Complete

1b = Auto-negotiation has completed.

This includes if auto-negotiation was completed using Parallel

Detection. Always returns 0b if auto-negotiation is not supported or is not enabled.

This field is mandatory if the Auto Negotiate Flag is supported.

0xC2 [2:2] an_complete 0
[5:5] Auto Negotiate Flag

1b = Auto-negotiation is enabled.

This field always returns 0b if auto-negotiation is not supported.

This field is mandatory if supported by the controller.

0xC0 [0:0] enable_an 0
[4:1] Speed and duplex

0x0 = Auto-negotiate not complete [per IEEE 802.3], SerDes

Flag = 1b, or no Highest Common Denominator (HCD) from the following options (0x1 through 0x8) was found.

0x1 = 10BASE-T half-duplex

0x2 = 10BASE-T full-duplex

0x3 = 100BASE-TX half-duplex

0x4 = 100BASE-T4

0x5 = 100BASE-TX full-duplex

0x6 = 1000BASE-T half-duplex

0x7 = 1000BASE-T full-duplex

0x8 = 10G-BASE-T support

0x9 = 20 Gbps (optional for NC-SI 1.1, RESERVED for NCSI 1.0)

0xA = 25 Gbps (optional for NC-SI 1.1, RESERVED for NCSI 1.0)

0xB = 40 Gbps (optional for NC-SI 1.1, RESERVED for NCSI 1.0)

0xC = 50 Gbps (optional for NC-SI 1.1, RESERVED for NCSI 1.0)

0xD = 100 Gbps (optional for NC-SI 1.1, RESERVED for NCSI 1.0)

0xE = 2.5 Gbps (optional for NC-SI 1.1, RESERVED for NCSI 1.0)

0xF = Use values defined in Enhanced Speed and Duplex field starting at bit 24 (optional for NC-SI 1.1, RESERVED for NC-SI 1.0)

Except when SerDes = 1b, the value may reflect forced link setting.

0x0 = 0x308 (Bit [11:11] negotiation_faiilure = 1)

0xA = 0x308 (Bit 17 = 1 or Bit 18 = 1)

0xB = 0x308 (Bit 13 = 1 or Bit 14 = 1)

0xC = 0x308 (Bit 19 = 1)

0xD = 0x308 (Bit 15 or Bit 16 or Bit 20 or Bit 22 = 1)

Remaining all 0xF
0
[0:0] Link Flag

0b = Link is down

1b = Link is up

This field is mandatory.

0xC2 [6:6] an_status

0x322 tx_pcs_ready AND 0x326 rx_aligned

Table 27.  Register Description for F-Tile
HSSI Read Data Fields ANLT enable ANLT disable
[31:22] Reserved 0 N/A (Return 0) N/A (Return 0)
[21:21] OEM Link Speed Valid 0b = OEM link settings are invalid.

1b = OEM link settings are valid

N/A (Return 0) N/A (Return 0)
[20:20] SerDes Link

SerDes status (see 4.18")

0b = SerDes not used

1b = SerDes used

This field is mandatory

0x118 tx_lanes_stable AND

0x1084 rx_aligned

0x118 tx_lanes_stable AND

0x1084 rx_aligned

[19:18] Link Partner Advertised Flow Control

00b = Link partner is not pause capable.

01b = Link partner supports symmetric pause.

10b = Link partner supports asymmetric pause toward link partner.

11b = Link partner supports both symmetric and asymmetric pause.

Valid when: SerDes Flag = 0b

Auto-Negotiate = 1b

Auto-Negotiate Complete = 1b

This field is mandatory

0x31C Link partner PAUSE bits[12:10] (bit 12 - not defined)

00b = 0x31C (bit 10 and bit 11 = 0)

01b = 0x31C (bit 10 = 1)

10b = 0x31C (bit 11 = 1)

11b = 0x31C (bit 10 or bit 11 = 1)

0
[17:17] Rx Flow Control Flag

0b = Reception of Pause frames by the NC from the external network interface is disabled.

1b = Reception of Pause frames by the NC from the external network interface is enabled.

This field is mandatory.

Rx Flow Control Flag

1'b1 = 0x1260 en_rx_pause (non zero)

1'b0 = 0x1260 en_rx_pause (all zero)

Rx Flow Control Flag

1'b1 = 0x1260 en_rx_pause (non zero)

1'b0 = 0x1260 en_rx_pause (all zero)

[16:16] Tx Flow Control Flag

0b = Transmission of Pause frames by the NC onto the external network interface is disabled.

1b = Transmission of Pause frames by the NC onto the external network interface is enabled.

This field is mandatory interface.

This field is mandatory.

Tx Flow Control Flags

1'b1 = 0x122c en_pfc_port (non zero)

1'b0 = 0x122c en_pfc_port (all zero)

Tx Flow Control Flags

1'b1 = 0x122c en_pfc_port (non zero)

1'b0 = 0x122c en_pfc_port (all zero)

[15:15] Link Partner Advertised Speed and Duplex 10THD

1b = Link Partner is 10BASE-T half-duplex capable.

Valid when:

SerDes Flag = 0b

Auto-Negotiate Flag = 1b

Auto-Negotiate Complete = 1b

This field is mandatory.

0 0
[14:14] Link Partner Advertised Speed and Duplex 10TFD

1b = Link Partner is 10BASE-T full-duplex capable.

Valid when:

SerDes Flag = 0b

Auto-Negotiate Flag = 1b

Auto-Negotiate Complete = 1b

This field is mandatory.

0 0
[13:13] Link Partner Advertised Speed and Duplex 100TXHD

1b = Link Partner is 100BASE-TX half-duplex capable.

Valid when:

SerDes Flag = 0b

Auto-Negotiate Flag = 1b

Auto-Negotiate Complete = 1b

This field is mandatory.

0 0
[12:12] Link Partner Advertised Speed and Duplex 100TXFD

1b = Link Partner is 100BASE-TX full-duplex capable.

Valid when:

SerDes Flag = 0b

Auto-Negotiate Flag = 1b

Auto-Negotiate Complete = 1b

This field is mandatory

0 0
[11:11] Link Partner Advertised Speed and Duplex 100T4

1b = Link Partner is 100BASE-T4 capable.

Valid when:

SerDes Flag = 0b

Auto-Negotiate Flag = 1b

Auto-Negotiate Complete = 1b

This field is mandatory

0 0
[10:10] Link Partner Advertised Speed and Duplex 1000THD

1b = Link Partner is 1000BASE-T half-duplex capable.

Valid when:

SerDes Flag = 0b

Auto-Negotiate Flag = 1b

Auto-Negotiate Complete = 1b

This field is mandatory.

0 0
[9:9] Link Partner Advertised Speed and Duplex 1000TFD

1b = Link Partner is 1000BASE-T full-duplex capable.

Valid when:

SerDes Flag = 0b

Auto-Negotiate Flag = 1b

Auto-Negotiate Complete = 1b

This field is mandatory.

0 0
[8:8] Reserved None 0 0
[7:7] Parallel Detection Flag

1b = Link partner did not support auto-negotiation and parallel detection was used to get link.

This field contains 0b if Parallel Detection was not used to obtain link.

0x308 [7:7] an_lp_apability 0
[6:6] Auto Negotiate Complete

1b = Auto-negotiation has completed.

This includes if auto-negotiation was completed using Parallel

Detection. Always returns 0b if auto-negotiation is not supported or is not enabled.

This field is mandatory if the Auto Negotiate Flag is supported.

0x308 [2:2] an_complete 0
[5:5] Auto Negotiate Flag

1b = Auto-negotiation is enabled.

This field always returns 0b if auto-negotiation is not supported.

This field is mandatory if supported by the controller.

0x300 [0:0] enable_an 0
[4:1] Speed and duplex

0x0 = Auto-negotiate not complete [per IEEE 802.3], SerDes

Flag = 1b, or no Highest Common Denominator (HCD) from the following options (0x1 through 0x8) was found.

0x1 = 10BASE-T half-duplex

0x2 = 10BASE-T full-duplex

0x3 = 100BASE-TX half-duplex

0x4 = 100BASE-T4

0x5 = 100BASE-TX full-duplex

0x6 = 1000BASE-T half-duplex

0x7 = 1000BASE-T full-duplex

0x8 = 10G-BASE-T support

0x9 = 20 Gbps (optional for NC-SI 1.1, RESERVED for NCSI 1.0)

0xA = 25 Gbps (optional for NC-SI 1.1, RESERVED for NCSI 1.0)

0xB = 40 Gbps (optional for NC-SI 1.1, RESERVED for NCSI 1.0)

0xC = 50 Gbps (optional for NC-SI 1.1, RESERVED for NCSI 1.0)

0xD = 100 Gbps (optional for NC-SI 1.1, RESERVED for NCSI 1.0)

0xE = 2.5 Gbps (optional for NC-SI 1.1, RESERVED for NCSI 1.0)

0xF = Use values defined in Enhanced Speed and Duplex field starting at bit 24 (optional for NC-SI 1.1, RESERVED for NC-SI 1.0)

Except when SerDes = 1b, the value may reflect forced link setting.

0x0 = 0x308 (Bit [11:11] negotiation_faiilure = 1) negotiation_faiilure

0xA = C2 (Bit 17 = 1 or Bit 18 = 1)

0xB = C2 (Bit 13 = 1 or Bit 14 = 1)

0xC = C2 (Bit 19 = 1)

0xD = C2 (Bit 15 or Bit 16 or Bit 20 or Bit 22 = 1)

Remaining all zero

0
[0:0] Link Flag

0b = Link is down

1b = Link is up

This field is mandatory.

0x308 [6:6] an_status

0x118 tx_lanes_stable AND 0x1084 rx_aligned