AM62x MCU+ SDK  10.01.00
All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages

Introduction

The CPSW MAC port module provides additional IOCTL commands than those supported by the generic Enet MAC Port API set.

CPSW MAC port clocks:

Features:

Compile-time configuration:

Data Structures

struct  CpswMacPort_TxShortIpgCfg
 Configuration of transmit short inter packet gap feature. More...
 
struct  CpswMacPort_PortTxShortIpgCfg
 MAC port's short gap configuration. More...
 
struct  CpswMacPort_InterVlanRoutingCfg
 Port interVLAN configuration parameters. More...
 
struct  CpswMacPort_FifoStats
 FIFO related statistics of a MAC port. More...
 
struct  CpswMacPort_IpTsCfg
 Port IP configuration for time synchronization events. More...
 
struct  CpswMacPort_TsEventCfg
 Port configuration for time synchronization. More...
 
struct  CpswMacPort_EnableTsEventInArgs
 Input args for CPSW_MACPORT_IOCTL_ENABLE_CPTS_EVENT. More...
 
struct  CpswMacPort_EstTimestampCfg
 EST timestamping configuration parameters. More...
 
struct  CpswMacPort_Cfg
 MAC port module configuration parameters. More...
 

Functions

void CpswMacPort_initCfg (CpswMacPort_Cfg *macPortCfg)
 Initialize CPSW MAC port configuration parameters. More...
 

Enumerations

enum  CpswMacPort_Ioctl {
  CPSW_MACPORT_IOCTL_GET_FIFO_STATS = CPSW_MACPORT_PUBLIC_IOCTL(0U), CPSW_MACPORT_IOCTL_ENABLE_CPTS_EVENT = CPSW_MACPORT_PUBLIC_IOCTL(1U), CPSW_MACPORT_IOCTL_DISABLE_CPTS_EVENT = CPSW_MACPORT_PUBLIC_IOCTL(2U), CPSW_MACPORT_IOCTL_EST_ENABLE_TIMESTAMP = CPSW_MACPORT_PUBLIC_IOCTL(3U),
  CPSW_MACPORT_IOCTL_EST_DISABLE_TIMESTAMP = CPSW_MACPORT_PUBLIC_IOCTL(4U)
}
 CPSW MAC port IOCTL commands. More...
 
enum  CpswMacPort_InterVlanRouteId {
  CPSW_MACPORT_INTERVLAN_ROUTEID_FIRST, CPSW_MACPORT_INTERVLAN_ROUTEID_1 = CPSW_MACPORT_INTERVLAN_ROUTEID_FIRST, CPSW_MACPORT_INTERVLAN_ROUTEID_2, CPSW_MACPORT_INTERVLAN_ROUTEID_3,
  CPSW_MACPORT_INTERVLAN_ROUTEID_4, CPSW_MACPORT_INTERVLAN_ROUTEID_LAST = CPSW_MACPORT_INTERVLAN_ROUTEID_4
}
 MAC port interVLAN route identifier. More...
 
enum  CpswMacPort_EstTimestampMode { CPSW_MACPORT_EST_TIMESTAMP_ALL, CPSW_MACPORT_EST_TIMESTAMP_ONEPRI, CPSW_MACPORT_EST_TIMESTAMP_FIRST, CPSW_MACPORT_EST_TIMESTAMP_FIRST_ONEPRI }
 EST timestamping modes. More...
 

Macros

#define CPSW_MACPORT_PUBLIC_IOCTL(x)
 Helper macro to create IOCTL commands for CPSW MAC port module. More...
 
#define CPSW_MACPORT_EST_TIME_INTERVAL_MIN   (0x010U)
 EST non-zero minimum time interval, in wireside clocks. Needed to guarantee that next fetch value has time to be fetched before current fetch count is over. More...
 
#define CPSW_MACPORT_EST_TIME_INTERVAL_MAX   (0x3FFFU)
 EST maximum time interval (14-bit), in wireside clocks. More...
 
#define CPSW_MACPORT_EST_TIME_STEP_1G   (8U)
 Time interval step in nsecs for 1 Gbps link. More...
 
#define CPSW_MACPORT_EST_TIME_STEP_100M   (40U)
 Time interval step in nsecs for 100 Mbps link. More...
 
#define CPSW_MACPORT_EST_TIME_STEP_10M   (400U)
 Time interval step in nsecs for a 10 Mbps link. More...
 
#define CPSW_MACPORT_EST_TIME_MIN(speed)   (CPSW_MACPORT_EST_TIME_STEP_##speed * CPSW_MACPORT_EST_TIME_INTERVAL_MIN)
 Min time interval in nsecs for given link speed. More...
 
#define CPSW_MACPORT_EST_TIME_MAX(speed)   (CPSW_MACPORT_EST_TIME_STEP_##speed * CPSW_MACPORT_EST_TIME_INTERVAL_MAX)
 Max time interval in nsecs for given link speed. More...
 
#define CPSW_MACPORT_EST_ALLOWCNT_FACTOR_1G   (1U)
 EST allow count scaling factor for 1 Gbps link. More...
 
#define CPSW_MACPORT_EST_ALLOWCNT_FACTOR_100M   (2U)
 EST allow count scaling factor for 100 Mbps link. More...
 
#define CPSW_MACPORT_EST_ALLOWCNT_FACTOR_10M   (2U)
 EST allow count scaling factor for 10 Mbps link. More...
 
#define CPSW_MACPORT_EST_GUARD_BAND(maxPktSize, speed)
 Guard band duration in nsecs for given link speed and maximum packet size in previous time interval. More...
 
#define CPSW_MACPORT_GIGABIT_IET_VERIFY_TIMEOUT_NS   (10*1000*1000)
 CPSW IET Verify timeout for 1 gig mode is 10ms. More...
 
#define CPSW_MACPORT_RX_MAX_BLKS_IET   (7U)
 CPSW Rx FIFO Blocks to enable IET. More...
 
#define CPSW_MACPORT_TX_MAX_BLKS_IET   (13U)
 CPSW Tx FIFO Blocks to enable IET. More...
 
#define CPSW_MACPORT_RX_MAX_BLKS_DEFAULT   (4U)
 CPSW default Rx FIFO Blocks for fifo_oneram. More...
 
#define CPSW_MACPORT_TX_MAX_BLKS_DEFAULT   (16U)
 CPSW default Tx FIFO Blocks for fifo_oneram. More...
 

Macro Definition Documentation

◆ CPSW_MACPORT_PUBLIC_IOCTL

#define CPSW_MACPORT_PUBLIC_IOCTL (   x)
Value:
ENET_IOCTL_MACPORT_BASE | \
ENET_IOCTL_PER_CPSW | \
ENET_IOCTL_MIN(x))

Helper macro to create IOCTL commands for CPSW MAC port module.

◆ CPSW_MACPORT_EST_TIME_INTERVAL_MIN

#define CPSW_MACPORT_EST_TIME_INTERVAL_MIN   (0x010U)

EST non-zero minimum time interval, in wireside clocks. Needed to guarantee that next fetch value has time to be fetched before current fetch count is over.

◆ CPSW_MACPORT_EST_TIME_INTERVAL_MAX

#define CPSW_MACPORT_EST_TIME_INTERVAL_MAX   (0x3FFFU)

EST maximum time interval (14-bit), in wireside clocks.

◆ CPSW_MACPORT_EST_TIME_STEP_1G

#define CPSW_MACPORT_EST_TIME_STEP_1G   (8U)

Time interval step in nsecs for 1 Gbps link.

◆ CPSW_MACPORT_EST_TIME_STEP_100M

#define CPSW_MACPORT_EST_TIME_STEP_100M   (40U)

Time interval step in nsecs for 100 Mbps link.

◆ CPSW_MACPORT_EST_TIME_STEP_10M

#define CPSW_MACPORT_EST_TIME_STEP_10M   (400U)

Time interval step in nsecs for a 10 Mbps link.

◆ CPSW_MACPORT_EST_TIME_MIN

#define CPSW_MACPORT_EST_TIME_MIN (   speed)    (CPSW_MACPORT_EST_TIME_STEP_##speed * CPSW_MACPORT_EST_TIME_INTERVAL_MIN)

Min time interval in nsecs for given link speed.

◆ CPSW_MACPORT_EST_TIME_MAX

#define CPSW_MACPORT_EST_TIME_MAX (   speed)    (CPSW_MACPORT_EST_TIME_STEP_##speed * CPSW_MACPORT_EST_TIME_INTERVAL_MAX)

Max time interval in nsecs for given link speed.

◆ CPSW_MACPORT_EST_ALLOWCNT_FACTOR_1G

#define CPSW_MACPORT_EST_ALLOWCNT_FACTOR_1G   (1U)

EST allow count scaling factor for 1 Gbps link.

◆ CPSW_MACPORT_EST_ALLOWCNT_FACTOR_100M

#define CPSW_MACPORT_EST_ALLOWCNT_FACTOR_100M   (2U)

EST allow count scaling factor for 100 Mbps link.

◆ CPSW_MACPORT_EST_ALLOWCNT_FACTOR_10M

#define CPSW_MACPORT_EST_ALLOWCNT_FACTOR_10M   (2U)

EST allow count scaling factor for 10 Mbps link.

◆ CPSW_MACPORT_EST_GUARD_BAND

#define CPSW_MACPORT_EST_GUARD_BAND (   maxPktSize,
  speed 
)
Value:
(((((maxPktSize) + 4U) * \
CPSW_MACPORT_EST_ALLOWCNT_FACTOR_##speed) + 292U) * \
CPSW_MACPORT_EST_TIME_STEP_##speed)

Guard band duration in nsecs for given link speed and maximum packet size in previous time interval.

◆ CPSW_MACPORT_GIGABIT_IET_VERIFY_TIMEOUT_NS

#define CPSW_MACPORT_GIGABIT_IET_VERIFY_TIMEOUT_NS   (10*1000*1000)

CPSW IET Verify timeout for 1 gig mode is 10ms.

◆ CPSW_MACPORT_RX_MAX_BLKS_IET

#define CPSW_MACPORT_RX_MAX_BLKS_IET   (7U)

CPSW Rx FIFO Blocks to enable IET.

◆ CPSW_MACPORT_TX_MAX_BLKS_IET

#define CPSW_MACPORT_TX_MAX_BLKS_IET   (13U)

CPSW Tx FIFO Blocks to enable IET.

◆ CPSW_MACPORT_RX_MAX_BLKS_DEFAULT

#define CPSW_MACPORT_RX_MAX_BLKS_DEFAULT   (4U)

CPSW default Rx FIFO Blocks for fifo_oneram.

◆ CPSW_MACPORT_TX_MAX_BLKS_DEFAULT

#define CPSW_MACPORT_TX_MAX_BLKS_DEFAULT   (16U)

CPSW default Tx FIFO Blocks for fifo_oneram.

Enumeration Type Documentation

◆ CpswMacPort_Ioctl

CPSW MAC port IOCTL commands.

Enumerator
CPSW_MACPORT_IOCTL_GET_FIFO_STATS 

Get MAC port FIFO statistics.

IOCTL parameters:

CPSW_MACPORT_IOCTL_ENABLE_CPTS_EVENT 

Enable Ethernet port CPTS event.

IOCTL parameters:

CPSW_MACPORT_IOCTL_DISABLE_CPTS_EVENT 

Disable Ethernet port CPTS event.

IOCTL parameters:

CPSW_MACPORT_IOCTL_EST_ENABLE_TIMESTAMP 

Enable EST packet timestamping functionality.

Once enabled, timestamps can be retrieved using CPSW CPTS IOCTLs.

IOCTL parameters: inArgs: CpswMacPort_EstTimestampCfg outArgs: None

CPSW_MACPORT_IOCTL_EST_DISABLE_TIMESTAMP 

Disable EST packet timestamping functionality.

IOCTL parameters: inArgs: EnetMacPort_GenericInArgs outArgs: None

◆ CpswMacPort_InterVlanRouteId

MAC port interVLAN route identifier.

Enumerator
CPSW_MACPORT_INTERVLAN_ROUTEID_FIRST 

First interVLAN route Id

CPSW_MACPORT_INTERVLAN_ROUTEID_1 

InterVLAN route Id 1

CPSW_MACPORT_INTERVLAN_ROUTEID_2 

InterVLAN route Id 2

CPSW_MACPORT_INTERVLAN_ROUTEID_3 

InterVLAN route Id 3

CPSW_MACPORT_INTERVLAN_ROUTEID_4 

InterVLAN route Id 4

CPSW_MACPORT_INTERVLAN_ROUTEID_LAST 

Last interVLAN route Id

◆ CpswMacPort_EstTimestampMode

EST timestamping modes.

Enumerator
CPSW_MACPORT_EST_TIMESTAMP_ALL 

Timestamp all express packets on any priority.

CPSW_MACPORT_EST_TIMESTAMP_ONEPRI 

Timestamp only express packets of a given priority.

CPSW_MACPORT_EST_TIMESTAMP_FIRST 

Timestamp the first express packet in each time interval.

CPSW_MACPORT_EST_TIMESTAMP_FIRST_ONEPRI 

Timestamp the first express packet of a given priority in the time interval.

Function Documentation

◆ CpswMacPort_initCfg()

void CpswMacPort_initCfg ( CpswMacPort_Cfg macPortCfg)

Initialize CPSW MAC port configuration parameters.

Parameters
macPortCfgConfiguration parameters to be initialized
ENET_IOCTL_TYPE_PUBLIC
@ ENET_IOCTL_TYPE_PUBLIC
Definition: enet_ioctl.h:216