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... | |
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... | |
#define CPSW_MACPORT_PUBLIC_IOCTL | ( | x | ) |
Helper macro to create IOCTL commands for CPSW MAC port module.
#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.
#define CPSW_MACPORT_EST_TIME_INTERVAL_MAX (0x3FFFU) |
EST maximum time interval (14-bit), in wireside clocks.
#define CPSW_MACPORT_EST_TIME_STEP_1G (8U) |
Time interval step in nsecs for 1 Gbps link.
#define CPSW_MACPORT_EST_TIME_STEP_100M (40U) |
Time interval step in nsecs for 100 Mbps link.
#define CPSW_MACPORT_EST_TIME_STEP_10M (400U) |
Time interval step in nsecs for a 10 Mbps link.
#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.
#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.
#define CPSW_MACPORT_EST_ALLOWCNT_FACTOR_1G (1U) |
EST allow count scaling factor for 1 Gbps link.
#define CPSW_MACPORT_EST_ALLOWCNT_FACTOR_100M (2U) |
EST allow count scaling factor for 100 Mbps link.
#define CPSW_MACPORT_EST_ALLOWCNT_FACTOR_10M (2U) |
EST allow count scaling factor for 10 Mbps link.
#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.
#define CPSW_MACPORT_GIGABIT_IET_VERIFY_TIMEOUT_NS (10*1000*1000) |
CPSW IET Verify timeout for 1 gig mode is 10ms.
#define CPSW_MACPORT_RX_MAX_BLKS_IET (7U) |
CPSW Rx FIFO Blocks to enable IET.
#define CPSW_MACPORT_TX_MAX_BLKS_IET (13U) |
CPSW Tx FIFO Blocks to enable IET.
#define CPSW_MACPORT_RX_MAX_BLKS_DEFAULT (4U) |
CPSW default Rx FIFO Blocks for fifo_oneram.
#define CPSW_MACPORT_TX_MAX_BLKS_DEFAULT (16U) |
CPSW default Tx FIFO Blocks for fifo_oneram.
enum 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 |
MAC port interVLAN route identifier.
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. |
void CpswMacPort_initCfg | ( | CpswMacPort_Cfg * | macPortCfg | ) |
Initialize CPSW MAC port configuration parameters.
macPortCfg | Configuration parameters to be initialized |