![]() |
![]() |
Functions | |
CSL_IDEF_INLINE CSL_SERDES_RESULT | CSL_SrioSerdesInit (uint32_t base_addr, CSL_SERDES_REF_CLOCK ref_clock, CSL_SERDES_LINK_RATE rate) |
CSL_IDEF_INLINE void | CSL_SrioSerdesLaneConfig (uint32_t base_addr, CSL_SERDES_REF_CLOCK ref_clock, CSL_SERDES_LINK_RATE rate, uint32_t lane_num) |
CSL_IDEF_INLINE void | CSL_SrioSerdesComEnable (uint32_t base_addr) |
CSL_IDEF_INLINE CSL_SERDES_LANE_ENABLE_STATUS | CSL_SrioSerdesLaneEnable (uint32_t base_addr, uint32_t lane_num, CSL_SERDES_LINK_RATE link_rate, CSL_SERDES_LOOPBACK loopback_mode, CSL_SERDES_LANE_CTRL_RATE lane_ctrl_rate) |
CSL_IDEF_INLINE void | CSL_SrioSerdesLaneDisable (uint32_t base_addr, uint32_t lane_num) |
CSL_IDEF_INLINE void | CSL_SrioSerdesLaneReset (uint32_t base_addr, uint32_t lane_num) |
CSL_IDEF_INLINE void | CSL_SrioSerdesPllEnable (uint32_t base_addr) |
CSL_IDEF_INLINE CSL_SERDES_STATUS | CSL_SrioSerdesGetStatus (uint32_t base_addr, uint32_t num_lanes) |
CSL_IDEF_INLINE CSL_SERDES_STATUS | CSL_SrioSerdesGetPLLStatus (uint32_t base_addr) |
CSL_IDEF_INLINE CSL_SERDES_STATUS | CSL_SrioSerdesGetLaneStatus (uint32_t base_addr, uint32_t lane_num) |
CSL_IDEF_INLINE void | CSL_SrioSerdesShutdown (uint32_t base_addr) |
============================================================================
This module deals with setting up SERDES configuration for SRIO. The API flow should be as follows:
CSL_SrioSerdesInit (base_addr, ref_clock, rate);
CSL_SrioSerdesLaneConfig (base_addr, ref_clock, rate, lane_num);
CSL_SrioSerdesComEnable (base_addr);
CSL_SrioSerdesLaneEnable (base_addr, lane_num, link_rate, loopback_mode, lane_ctrl_rate);
CSL_SrioSerdesPllEnable (base_addr);
CSL_SrioSerdesGetStatus (base_addr, num_lanes);
OR
CSL_SrioSerdesGetPLLStatus (base_addr);
CSL_SrioSerdesGetLaneStatus (base_addr, lane_num); For individual lane status
============================================================================
CSL_IDEF_INLINE void CSL_SrioSerdesComEnable | ( | uint32_t | base_addr | ) |
============================================================================
CSL_SrioSerdesComEnable
Description
This API enables the Serdes CMU and COMLANE
Arguments base_addr
Return Value None
Pre Condition
None
Post Condition
None
Reads
None
Usage Constraints:
None
Example
CSL_SrioSerdesComEnable(CSL_SRIO_SERDES_CFG_REGS);
===========================================================================
CSL_IDEF_INLINE CSL_SERDES_STATUS CSL_SrioSerdesGetLaneStatus | ( | uint32_t | base_addr, |
uint32_t | lane_num | ||
) |
============================================================================
CSL_SrioSerdesGetLaneStatus
Description
This API returns the status of the Lanes
Arguments base_addr, lane_num
Return Value CSL_SERDES_STATUS
Pre Condition
None
Post Condition
None
Reads
None
Usage Constraints:
None
Example
CSL_SrioSerdesGetLaneStatus(CSL_SRIO_SERDES_CFG_REGS, 0);
===========================================================================
CSL_IDEF_INLINE CSL_SERDES_STATUS CSL_SrioSerdesGetPLLStatus | ( | uint32_t | base_addr | ) |
============================================================================
CSL_SrioSerdesGetPLLStatus
Description
This API returns the status of the PLL lock
Arguments base_addr
Return Value CSL_SERDES_STATUS
Pre Condition
None
Post Condition
None
Reads
None
Usage Constraints:
None
Example
CSL_SrioSerdesGetPLLStatus(CSL_SRIO_SERDES_CFG_REGS);
===========================================================================
CSL_IDEF_INLINE CSL_SERDES_STATUS CSL_SrioSerdesGetStatus | ( | uint32_t | base_addr, |
uint32_t | num_lanes | ||
) |
============================================================================
CSL_SrioSerdesGetStatus
Description
This API returns the status of the PLL lock
Arguments base_addr, num_lanes
Return Value CSL_SERDES_STATUS
Pre Condition
None
Post Condition
None
Reads
None
Usage Constraints:
None
Example
CSL_SrioSerdesGetStatus(CSL_SRIO_SERDES_CFG_REGS, 4);
===========================================================================
CSL_IDEF_INLINE CSL_SERDES_RESULT CSL_SrioSerdesInit | ( | uint32_t | base_addr, |
CSL_SERDES_REF_CLOCK | ref_clock, | ||
CSL_SERDES_LINK_RATE | rate | ||
) |
============================================================================
CSL_SrioSerdesInit
Description
This API initializes the Serdes CMU and COMLANE registers.
Arguments base_addr, ref_clock, rate
Return Value CSL_SERDES_RESULT
Pre Condition
None
Post Condition
None
Reads
None
Usage Constraints:
None
Example
csl_retval = CSL_SrioSerdesInit(CSL_SRIO_SERDES_CFG_REGS, CSL_SERDES_REF_CLOCK_156p25M, CSL_SERDES_LINK_RATE_5G);
===========================================================================
CSL_IDEF_INLINE void CSL_SrioSerdesLaneConfig | ( | uint32_t | base_addr, |
CSL_SERDES_REF_CLOCK | ref_clock, | ||
CSL_SERDES_LINK_RATE | rate, | ||
uint32_t | lane_num | ||
) |
============================================================================
CSL_SrioSerdesLaneConfig
Description
This API configures the Serdes Lanes
Arguments base_addr, ref_clock, rate, lane_num
Return Value None
Pre Condition
None
Post Condition
None
Reads
None
Usage Constraints:
None
Example
CSL_SrioSerdesLaneConfig(CSL_SRIO_SERDES_CFG_REGS, CSL_SERDES_REF_CLOCK_156p25M, CSL_SERDES_LINK_RATE_5G, 1);
===========================================================================
CSL_IDEF_INLINE void CSL_SrioSerdesLaneDisable | ( | uint32_t | base_addr, |
uint32_t | lane_num | ||
) |
============================================================================
CSL_SrioSerdesLaneDisable
Description
This API disables the Serdes Lanes
Arguments base_addr, lane_num
Return Value None
Pre Condition
None
Post Condition
None
Reads
None
Usage Constraints:
None
Example
CSL_SrioSerdesLaneDisable(CSL_SRIO_SERDES_CFG_REGS, 0);
===========================================================================
CSL_IDEF_INLINE CSL_SERDES_LANE_ENABLE_STATUS CSL_SrioSerdesLaneEnable | ( | uint32_t | base_addr, |
uint32_t | lane_num, | ||
CSL_SERDES_LINK_RATE | link_rate, | ||
CSL_SERDES_LOOPBACK | loopback_mode, | ||
CSL_SERDES_LANE_CTRL_RATE | lane_ctrl_rate | ||
) |
============================================================================
CSL_SrioSerdesLaneEnable
Description
This API enables the Serdes CMU and COMLANE
Arguments base_addr, lane_num, link_rate, loopback_mode, lane_ctrl_rate
Return Value CSL_SERDES_LANE_ENABLE_STATUS
Pre Condition
None
Post Condition
None
Reads
None
Usage Constraints:
CSL_SERDES_LANE_FULL_RATE is not supported for CSL_SERDES_LINK_RATE_6p25G
Example
CSL_SrioSerdesLaneEnable(CSL_SRIO_SERDES_CFG_REGS, 0, CSL_SERDES_LINK_RATE_5G, CSL_SERDES_LOOPBACK_DISABLED, CSL_SERDES_LANE_FULL_RATE);
===========================================================================
CSL_IDEF_INLINE void CSL_SrioSerdesLaneReset | ( | uint32_t | base_addr, |
uint32_t | lane_num | ||
) |
============================================================================
CSL_SrioSerdesLaneReset
Description
This API resets the Serdes Lanes
Arguments base_addr, lane_num
Return Value None
Pre Condition
None
Post Condition
None
Reads
None
Usage Constraints:
None
Example
CSL_SrioSerdesLaneReset(CSL_SRIO_SERDES_CFG_REGS, 0);
===========================================================================
CSL_IDEF_INLINE void CSL_SrioSerdesPllEnable | ( | uint32_t | base_addr | ) |
============================================================================
CSL_SrioSerdesPllEnable
Description
This API enables the PLL
Arguments base_addr
Return Value None
Pre Condition
None
Post Condition
None
Reads
None
Usage Constraints:
None
Example
CSL_SrioSerdesPllEnable(CSL_SRIO_SERDES_CFG_REGS);
===========================================================================
CSL_IDEF_INLINE void CSL_SrioSerdesShutdown | ( | uint32_t | base_addr | ) |
============================================================================
CSL_SrioSerdesShutdown
Description
This API shuts down the Serdes by Disabling and Resetting the Serdes
Arguments base_addr
Return Value None
Pre Condition
None
Post Condition
None
Reads
None
Usage Constraints:
None
Example
CSL_SrioSerdesShutdown(CSL_SRIO_SERDES_CFG_REGS);
===========================================================================