Skip to content
This repository was archived by the owner on Feb 27, 2025. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
65 changes: 65 additions & 0 deletions docs/source/api_ref/hlapiv1/port/freya/anlt/an.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
Auto-Negotiation
=========================

Abilities
---------

Return supported technology abilities, supported FEC modes, and supported pause modes.

.. code-block:: python

resp = await port.l1.anlt.an.abilities.get()
resp.fec_modes_supported
resp.tech_abilities_supported
resp.pause_modes_supported


Configuration
-------------

Configure the advertised technology abilities, FEC modes, and pause modes.

.. code-block:: python

await port.l1.anlt.an.abilities.set(<advertised_tech_abilities>, <advertised_fec_abilities>, <advertised_pause_mode>)


Status
---------

Returns received technology abilities, FEC abilities, pause abilities, HCD technology ability, FEC mode result, and pause mode result.

.. code-block:: python

resp = await port.l1.anlt.an.status.get()
resp.mode
resp.autoneg_state
resp.received_tech_abilities
resp.received_fec_abilities
resp.received_pause_mode
resp.tech_ability_hcd_status
resp.tech_ability_hcd_value
resp.fec_mode_result
resp.pause_mode_result

Info
---------

Get L1 auto-negotiation information.

.. code-block:: python

resp = await port.l1.anlt.an.info.get()
resp.rx_link_codeword_count
resp.rx_next_page_message_count
resp.rx_next_page_unformatted_count
resp.tx_link_codeword_count
resp.tx_next_page_message_count
resp.tx_next_page_unformatted_count
resp.negotiation_hcd_fail_count
resp.negotiation_fec_fail_count
resp.negotiation_loss_of_sync_count
resp.negotiation_timeout_count
resp.negotiation_success_count
resp.duration_us

13 changes: 13 additions & 0 deletions docs/source/api_ref/hlapiv1/port/freya/anlt/ctrl.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
Control
=======

Enable/disable AN and LT

.. code-block:: python

await port.l1.anlt.ctrl.enable_an_lt_auto()
await port.l1.anlt.ctrl.disable_anlt()
await port.l1.anlt.ctrl.enable_an_lt_interactive()
await port.l1.anlt.ctrl.enable_an_only()
await port.l1.anlt.ctrl.enable_an_lt_auto()
await port.l1.anlt.ctrl.enable_lt_interactive_only()
7 changes: 7 additions & 0 deletions docs/source/api_ref/hlapiv1/port/freya/anlt/index.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
ANLT
=====

.. toctree::
:glob:

*
9 changes: 9 additions & 0 deletions docs/source/api_ref/hlapiv1/port/freya/anlt/log.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
Log
===========================

Get ANLT log trace. The log trace is a JSON string.

.. code-block:: python

resp = await port.l1.anlt.log.get()
resp.log_string
186 changes: 186 additions & 0 deletions docs/source/api_ref/hlapiv1/port/freya/anlt/lt.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,186 @@
Link Training
=========================

Configuration
-------------------------

Configuration LT out-of-sync preset and timeout

.. code-block:: python

await port.l1.anlt.lt_config.set(oos_preset=enums.FreyaOutOfSyncPreset.CURRENT, timeout_mode=enums.TimeoutMode.DEFAULT)
await port.l1.anlt.lt_config.set(oos_preset=enums.FreyaOutOfSyncPreset.CURRENT, timeout_mode=enums.TimeoutMode.DISABLED)
await port.l1.anlt.lt_config.set(oos_preset=enums.FreyaOutOfSyncPreset.IEEE, timeout_mode=enums.TimeoutMode.DEFAULT)
await port.l1.anlt.lt_config.set(oos_preset=enums.FreyaOutOfSyncPreset.IEEE, timeout_mode=enums.TimeoutMode.DISABLED)

Status
------

Get link training status.

.. code-block:: python

resp = await port.l1.serdes[0].lt_status.get()
resp.failure
resp.mode
resp.status

Info
-----

Get link training result info.

.. code-block:: python

resp = await port.l1.serdes[0].lt_info.get()
resp.duration_us
"""duration of the auto-negotiation process in microseconds, from autoneg is enabled on the port to the negotiation is finished."""
resp.lock_lost_count:
"""number of lost locks on auto-neg."""
resp.pre1_current_level:
"""c(-1) current level."""
resp.pre1_rx_increment_req_count:
"""c(-1) received number of increment requests."""
resp.pre1_rx_decrement_req_count:
"""c(-1) received number of decrement requests."""
resp.pre1_rx_coeff_eq_limit_reached_count:
"""c(-1) received number of maximum limits of coefficient and equalization requests reached."""
resp.pre1_rx_eq_limit_reached_count:
"""c(-1) received number of maximum limits of equalization requests reached."""
resp.pre1_rx_coeff_not_supported_count:
"""c(-1) received number of coefficients not supported."""
resp.pre1_rx_coeff_at_limit_count:
"""c(-1) received number of coefficients at limit."""
resp.pre1_tx_increment_req_count:
"""c(-1) transmitted number of increment requests."""
resp.pre1_tx_decrement_req_count:
"""c(-1) transmitted number of decrement requests."""
resp.pre1_tx_coeff_eq_limit_reached_count:
"""c(-1) transmitted number of maximum limits of coefficient and equalization requests reached."""
resp.pre1_tx_eq_limit_reached_count:
"""c(-1) transmitted number of maximum limits of equalization requests reached."""
resp.pre1_tx_coeff_not_supported_count:
"""c(-1) transmitted number of coefficients not supported."""
resp.pre1_tx_coeff_at_limit_count:
"""c(-1) transmitted number of coefficients at limit."""
resp.main_current_level:
"""c(0) current level."""
resp.main_rx_increment_req_count:
"""c(0) received number of increment requests."""
resp.main_rx_decrement_req_count:
"""c(0) received number of decrement requests."""
resp.main_rx_coeff_eq_limit_reached_count:
"""c(0) received number of maximum limits of coefficient and equalization requests reached."""
resp.main_rx_eq_limit_reached_count:
"""c(0) received number of maximum limits of equalization requests reached."""
resp.main_rx_coeff_not_supported_count:
"""c(0) received number of coefficients not supported."""
resp.main_rx_coeff_at_limit_count:
"""c(0) received number of coefficients at limit."""
resp.main_tx_increment_req_count:
"""c(0) transmitted number of increment requests."""
resp.main_tx_decrement_req_count:
"""c(0) transmitted number of decrement requests."""
resp.main_tx_coeff_eq_limit_reached_count:
"""c(0) transmitted number of maximum limits of coefficient and equalization requests reached."""
resp.main_tx_eq_limit_reached_count:
"""c(0) transmitted number of maximum limits of equalization requests reached."""
resp.main_tx_coeff_not_supported_count:
"""c(0) transmitted number of coefficients not supported."""
resp.main_tx_coeff_at_limit_count:
"""c(0) transmitted number of coefficients at limit."""
resp.post1_current_level:
"""c(1) current level."""
resp.post1_rx_increment_req_count:
"""c(1) received number of increment requests."""
resp.post1_rx_decrement_req_count:
"""c(1) received number of decrement requests."""
resp.post1_rx_coeff_eq_limit_reached_count:
"""c(1) received number of maximum limits of coefficient and equalization requests reached."""
resp.post1_rx_eq_limit_reached_count:
"""c(1) received number of maximum limits of equalization requests reached."""
resp.post1_rx_coeff_not_supported_count:
"""c(1) received number of coefficients not supported."""
resp.post1_rx_coeff_at_limit_count:
"""c(1) received number of coefficients at limit."""
resp.post1_tx_increment_req_count:
"""c(1) transmitted number of increment requests."""
resp.post1_tx_decrement_req_count:
"""c(1) transmitted number of decrement requests."""
resp.post1_tx_coeff_eq_limit_reached_count:
"""c(1) transmitted number of maximum limits of coefficient and equalization requests reached."""
resp.post1_tx_eq_limit_reached_count:
"""c(1) transmitted number of maximum limits of equalization requests reached."""
resp.post1_tx_coeff_not_supported_count:
"""c(1) transmitted number of coefficients not supported."""
resp.post1_tx_coeff_at_limit_count:
"""c(1) transmitted number of coefficients at limit."""
resp.pre2_current_level:
"""c(-2) current level."""
resp.pre2_rx_increment_req_count:
"""c(-2) received number of increment requests."""
resp.pre2_rx_decrement_req_count:
"""c(-2) received number of decrement requests."""
resp.pre2_rx_coeff_eq_limit_reached_count:
"""c(-2) received number of maximum limits of coefficient and equalization requests reached."""
resp.pre2_rx_eq_limit_reached_count:
"""c(-2) received number of maximum limits of equalization requests reached."""
resp.pre2_rx_coeff_not_supported_count:
"""c(-2) received number of coefficients not supported."""
resp.pre2_rx_coeff_at_limit_count:
"""c(-2) received number of coefficients at limit."""
resp.pre2_tx_increment_req_count:
"""c(-2) transmitted number of increment requests."""
resp.pre2_tx_decrement_req_count:
"""c(-2) transmitted number of decrement requests."""
resp.pre2_tx_coeff_eq_limit_reached_count:
"""c(-2) transmitted number of maximum limits of coefficient and equalization requests reached."""
resp.pre2_tx_eq_limit_reached_count:
"""c(-2) transmitted number of maximum limits of equalization requests reached."""
resp.pre2_tx_coeff_not_supported_count:
"""c(-2) transmitted number of coefficients not supported."""
resp.pre2_tx_coeff_at_limit_count:
"""c(-2) transmitted number of coefficients at limit."""
resp.pre3_current_level:
"""c(-3) current level."""
resp.pre3_rx_increment_req_count:
"""c(-3) received number of increment requests."""
resp.pre3_rx_decrement_req_count:
"""c(-3) received number of decrement requests."""
resp.pre3_rx_coeff_eq_limit_reached_count:
"""c(-3) received number of maximum limits of coefficient and equalization requests reached."""
resp.pre3_rx_eq_limit_reached_count:
"""c(-3) received number of maximum limits of equalization requests reached."""
resp.pre3_rx_coeff_not_supported_count:
"""c(-3) received number of coefficients not supported."""
resp.pre3_rx_coeff_at_limit_count:
"""c(-3) received number of coefficients at limit."""
resp.pre3_tx_increment_req_count:
"""c(-3) transmitted number of increment requests."""
resp.pre3_tx_decrement_req_count:
"""c(-3) transmitted number of decrement requests."""
resp.pre3_tx_coeff_eq_limit_reached_count:
"""c(-3) transmitted number of maximum limits of coefficient and equalization requests reached."""
resp.pre3_tx_eq_limit_reached_count:
"""c(-3) transmitted number of maximum limits of equalization requests reached."""
resp.pre3_tx_coeff_not_supported_count:
"""c(-3) transmitted number of coefficients not supported."""
resp.pre3_tx_coeff_at_limit_count:
"""c(-3) transmitted number of coefficients at limit."""
resp.prbs_total_bits_high:
"""PRBS total bits (most significant 32-bit)."""
resp.prbs_total_bits_low:
"""PRBS total bits (least significant 32-bit)."""
resp.prbs_total_error_bits_high:
"""PRBS total error bits (most significant 32-bit, only bit 15-0 should be used)."""
resp.prbs_total_error_bits_low:
"""PRBS total error bits (least significant 32-bit)."""
resp.frame_lock
"""frame lock status of the local end."""
resp.emote_frame_lock
"""frame lock status of the remote end."""
resp.num_frame_errors
resp.num_overruns
resp.last_ic_received
resp.last_ic_sent

12 changes: 12 additions & 0 deletions docs/source/api_ref/hlapiv1/port/freya/index.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
Freya L1
===============

.. toctree::
:glob:

*
anlt/index
medium/index
pcs/index
pma/index
prbs/index
7 changes: 7 additions & 0 deletions docs/source/api_ref/hlapiv1/port/freya/medium/index.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
Medium
=======

.. toctree::
:glob:

*
14 changes: 14 additions & 0 deletions docs/source/api_ref/hlapiv1/port/freya/medium/retune.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
Tap Retune
===========

Trigger a new retuning of the receive equalizer on the PHY for one of the 25G
serdes. Useful if e.g. a direct attached copper cable or loop transceiver does
not go into sync after insertion. Note that the retuning will cause disruption
of the traffic on all serdes.

Corresponding CLI command: ``PP_PHYRETUNE``

.. code-block:: python

# TX Tap Retune
await port.serdes[0].phy.retune.set(dummy=1)
Loading