AM261x MCU+ SDK: icssg.h File Reference

| AM261x MCU+ SDK 26.00.00 |

Data Structures | Macros | Typedefs | Enumerations | Functions
icssg.h File Reference

## Introduction

This file contains the type definitions and helper macros for the ICSSG peripheral interface.

Go to the source code of this file.

## Data Structures
struct | Icssg_TxTsEvtCbInfo
| Icssg TX timestamp event callback info structure. This is passed to application when TX timestamp is retrieved by ICSSG driver. More...
struct | IcssgMacPort_SetQueueCtPremptModeInArgs
| Input arguments for ICSSG_MACPORT_IOCTL_SET_QUEUE_CUT_THROUGH_PREEMPT_SELECT command. More...
struct | IcssgMacPort_ConfigSpecialFramePrioInArgs
| Input arguments for ICSSG_MACPORT_IOCTL_CONFIG_SPL_FRAME_PRIO command. More...
struct | IcssgMacPort_SetPortStateInArgs
| Input args for ICSSG_MACPORT_IOCTL_SET_PORT_STATE command. More...
struct | Icssg_SetAcceptFrameCheckInArgs
| Input args for ICSSG_MACPORT_IOCTL_SET_ACCEPT_FRAME_CHECK command. More...
struct | Icssg_MacAddr
| MAC address. More...
struct | IcssgMacPort_SetMacAddressInArgs
| Input args for ICSSG_MACPORT_IOCTL_SET_MACADDR command. More...
struct | Icssg_VlanFidParams
| VLAN FID entry parameters. More...
struct | Icssg_VlanFidEntry
| VLAN FID table entry. More...
struct | Icssg_FdbEntry
| FDB entry configuration. More...
struct | Icssg_HwFdbEntry
| HW FDB table entry. More...
struct | Icssg_FdbEntry_ReadSlotInArgs
| Input arguments for ICSSG_FDB_IOCTL_READ_SLOT_ENTRIES command. More...
struct | Icssg_FdbEntry_GetSlotOutArgs
| Output arguments for ICSSG_FDB_IOCTL_GET_SLOT_ENTRIES command. More...
struct | Icssg_DfltVlanCfg
| Default VLAN configuration. More...
struct | Icssg_MacPortDfltVlanCfgInArgs
| Input arguments for ICSSG_PER_IOCTL_VLAN_SET_MACPORT_DFLT_VID command. More...
struct | Icssg_IngressRateLim
| Input arguments for ICSSG_MACPORT_IOCTL_SET_INGRESS_RATE_LIM command. More...
struct | Icssg_IngressRateLim::FT_S
union | Icssg_IngressRateLim::FT_S::FT_U
struct | Icssg_IngressRateLim::FT_S::FT_U::FT1_CONFIG_S
struct | Icssg_IngressRateLim::FT_S::FT_U::FT3_CONFIG_S
struct | Icssg_custom_Fw
| ICSSG custom firmware. More...
struct | Icssg_FwPoolMem
| ICSSG buffer pool memories. More...
struct | Icssg_MdioLinkStateChangeInfo
| PHY link status change event information. More...
struct | Icssg_mdioLinkIntCfg
struct | Icssg_portLinkIntCfg
struct | Icssg_Cfg
| ICSSG peripheral configuration parameters. More...
struct | IcssgMacPort_Cfg
| ICSSG mac port configuration parameters. More...

## Macros
#define | ICSSG_CFG_DEFAULT_AGING_PERIOD_MS (0x6FC23AC00)
#define | ICSSG_IEP_DFLT_CYCLE_TIME_NSECS (1000000U)
#define | ICSSG_PUBLIC_IOCTL(x)
| Helper macro to create IOCTL commands for ICSSG per. More...
#define | ICSSG_PORT_NUM (3U)
| Number of supported ports (host port, physical ports 1 and 2). More...
#define | ICSSG_MAC_PORT_MAX (ICSSG_PORT_NUM - 1U)
| Maximum number of MAC ports per ICSSG instance. More...
#define | ICSSG_PER_DUALMAC_PORT_MAX (1U)
| Maximum number of MAC ports in a ICSSG peripheral in Dual-MAC mode. Note that each port in Dual-MAC is handled as a separate Enet peripheral. More...
#define | ICSSG_PER_SWITCH_PORT_MAX (ICSSG_MAC_PORT_MAX)
| Maximum number of MAC ports in a ICSSG peripheral in Switch mode. More...
#define | ICSSG_INSTANCE_NUM (2U)
| Number of supported icssg instances. More...
#define | ICSSG_MAX_NUM_BUFFER_POOLS (24U)
| Max number of buffer pools. More...
#define | ICSSG_DUALMAC_TX_CH_NUM (ENET_CFG_RM_TX_CH_MAX)
| Number of TX channels per slice in Dual-MAC mode. More...
#define | ICSSG_DUALMAC_RX_FLOW_NUM (ENET_CFG_RM_RX_CH_MAX / 2)
| Number of RX flows per slice in Dual-MAC mode. More...
#define | ICSSG_SWITCH_TX_CH_NUM (ENET_CFG_RM_TX_CH_MAX)
| Number of TX channels in Switch mode. More...
#define | ICSSG_SWITCH_RX_FLOW_NUM (ENET_CFG_RM_RX_CH_MAX)
| Number of RX flows in Switch mode. More...
#define | ICSSG_DUALMAC_PORT_BUFFER_POOL_NUM (0U)
| Number of port buffer pools required for Dual-MAC. More...
#define | ICSSG_DUALMAC_HOST_EGRESS_QUEUE_NUM (2U)
| Number of host egress queues required for Dual-MAC. More...
#define | ICSSG_SWITCH_PORT_BUFFER_POOL_NUM (8U)
| Number of port buffer pools required for Dual-MAC. This value can be modified if required from 1 to 8. More...
#define | ICSSG_SWITCH_PORT_BUFFER_POOL_NUM_MAX (8U)
| Maximum number of port buffer pools. This offset used for Host pool init config. More...
#define | ICSSG_SWITCH_HOST_OWN_BUFFER_POOL_MAX_OFFSET (16U)
| Maximum number of Host OWN buffer pools. This offset used for Host pool init config. More...
#define | ICSSG_SWITCH_HOST_EGRESS_QUEUE_NUM (2U)
| Number of host egress queues required for Dual-MAC. More...
#define | ICSSG_HOST_EGRESS_BUFFER_PADDING (2048U)
| Host egress queue padding size. More...
#define | ICSSG_SCRATCH_BUFFER_SIZE (ENET_UTILS_ALIGN((2048U), ICSSG_CACHELINE_ALIGNMENT))
| Size of the scratch buffer used for error frames and large frames. More...
#define | ICSSG_RATE_SRC_SEL_FT1_MATCH0 (0U)
#define | ICSSG_RATE_SRC_SEL_FT1_MATCH1 (1U)
#define | ICSSG_RATE_SRC_SEL_FT1_MATCH2 (2U)
#define | ICSSG_RATE_SRC_SEL_FT1_MATCH3 (3U)
#define | ICSSG_RATE_SRC_SEL_FT1_MATCH4 (4U)
#define | ICSSG_RATE_SRC_SEL_FT1_MATCH5 (5U)
#define | ICSSG_RATE_SRC_SEL_FT1_MATCH6 (6U)
#define | ICSSG_RATE_SRC_SEL_FT1_MATCH7 (7U)
#define | ICSSG_RATE_SRC_SEL_FT3_MATCH0 (8U)
#define | ICSSG_RATE_SRC_SEL_FT3_MATCH1 (9U)
#define | ICSSG_RATE_SRC_SEL_FT3_MATCH2 (10U)
#define | ICSSG_RATE_SRC_SEL_FT3_MATCH3 (11U)
#define | ICSSG_RATE_SRC_SEL_FT3_MATCH4 (12U)
#define | ICSSG_RATE_SRC_SEL_FT3_MATCH5 (13U)
#define | ICSSG_RATE_SRC_SEL_FT3_MATCH6 (14U)
#define | ICSSG_RATE_SRC_SEL_FT3_MATCH7 (15U)
#define | ICSSG_RATE_SRC_SEL_FT3_MATCH8 (16U)
#define | ICSSG_RATE_SRC_SEL_FT3_MATCH9 (17U)
#define | ICSSG_RATE_SRC_SEL_FT3_MATCH10 (18U)
#define | ICSSG_RATE_SRC_SEL_FT3_MATCH11 (19U)
#define | ICSSG_RATE_SRC_SEL_FT3_MATCH12 (20U)
#define | ICSSG_RATE_SRC_SEL_FT3_MATCH13 (21U)
#define | ICSSG_RATE_SRC_SEL_FT3_MATCH14 (22U)
#define | ICSSG_RATE_SRC_SEL_FT3_MATCH15 (23U)
#define | ICSSG_RATE_SRC_SEL_FT_RX_UC (24U)
#define | ICSSG_RATE_SRC_SEL_FT_RX_MC (25U)
#define | ICSSG_RATE_SRC_SEL_FT_RX_BC (26U)
#define | ICSSG_RATE_SRC_SEL_FT_RX_SAV (27U)
#define | ICSSG_RATE_SRC_SEL_FT_RX_FWD (28U)
#define | ICSSG_RATE_SRC_SEL_FT_RX_RCV (29U)
#define | ICSSG_RATE_SRC_SEL_FT_RX_VLAN (30U)
#define | ICSSG_RATE_SRC_SEL_FT_RX_DA_P (31U)
#define | ICSSG_RATE_SRC_SEL_FT_RX_DA_I (32U)
#define | ICSSG_RATE_SRC_SEL_RX_CLASS_RAW0 (33U)
#define | ICSSG_RATE_SRC_SEL_RX_CLASS_RAW1 (34U)
#define | ICSSG_RATE_SRC_SEL_RX_CLASS_RAW2 (35U)
#define | ICSSG_RATE_SRC_SEL_RX_CLASS_RAW3 (36U)
#define | ICSSG_RATE_SRC_SEL_RX_CLASS_RAW4 (37U)
#define | ICSSG_RATE_SRC_SEL_RX_CLASS_RAW5 (38U)
#define | ICSSG_RATE_SRC_SEL_RX_CLASS_RAW6 (39U)
#define | ICSSG_RATE_SRC_SEL_RX_CLASS_RAW7 (40U)
#define | ICSSG_RATE_SRC_SEL_RX_CLASS_RAW8 (41U)
#define | ICSSG_RATE_SRC_SEL_RX_CLASS_RAW9 (42U)
#define | ICSSG_RATE_SRC_SEL_RX_CLASS_RAW10 (43U)
#define | ICSSG_RATE_SRC_SEL_RX_CLASS_RAW11 (44U)
#define | ICSSG_RATE_SRC_SEL_RX_CLASS_RAW12 (45U)
#define | ICSSG_RATE_SRC_SEL_RX_CLASS_RAW13 (46U)
#define | ICSSG_RATE_SRC_SEL_RX_CLASS_RAW14 (47U)
#define | ICSSG_RATE_SRC_SEL_RX_CLASS_RAW15 (48U)
#define | ICCSG_RX_CLASS_DATA_FT3_MATCH0 (0U)
#define | ICCSG_RX_CLASS_DATA_FT3_MATCH1 (1U)
#define | ICCSG_RX_CLASS_DATA_FT3_MATCH2 (2U)
#define | ICCSG_RX_CLASS_DATA_FT3_MATCH3 (3U)
#define | ICCSG_RX_CLASS_DATA_FT3_MATCH4 (4U)
#define | ICCSG_RX_CLASS_DATA_FT3_MATCH5 (5U)
#define | ICCSG_RX_CLASS_DATA_FT3_MATCH6 (6U)
#define | ICCSG_RX_CLASS_DATA_FT3_MATCH7 (7U)
#define | ICCSG_RX_CLASS_DATA_FT3_MATCH8 (8U)
#define | ICCSG_RX_CLASS_DATA_FT3_MATCH9 (9U)
#define | ICCSG_RX_CLASS_DATA_FT3_MATCH10 (10U)
#define | ICCSG_RX_CLASS_DATA_FT3_MATCH11 (11U)
#define | ICCSG_RX_CLASS_DATA_FT3_MATCH12 (12U)
#define | ICCSG_RX_CLASS_DATA_FT3_MATCH13 (13U)
#define | ICCSG_RX_CLASS_DATA_FT3_MATCH14 (14U)
#define | ICCSG_RX_CLASS_DATA_FT3_MATCH15 (15U)
#define | ICCSG_RX_CLASS_DATA_FT1_MATCH0 (16U)
#define | ICCSG_RX_CLASS_DATA_FT1_MATCH1 (17U)
#define | ICCSG_RX_CLASS_DATA_FT1_MATCH2 (18U)
#define | ICCSG_RX_CLASS_DATA_FT1_MATCH3 (19U)
#define | ICCSG_RX_CLASS_DATA_FT1_MATCH4 (20U)
#define | ICCSG_RX_CLASS_DATA_FT1_MATCH5 (21U)
#define | ICCSG_RX_CLASS_DATA_FT1_MATCH6 (22U)
#define | ICCSG_RX_CLASS_DATA_FT1_MATCH7 (23U)
#define | ICCSG_RX_CLASS_DATA_FT_RX_DA_I (24U)
#define | ICCSG_RX_CLASS_DATA_FT_RX_DA_P (25U)
#define | ICCSG_RX_CLASS_DATA_FT_RX_VLAN (26U)
#define | ICCSG_RX_CLASS_DATA_FT_RX_RCV (27U)
#define | ICCSG_RX_CLASS_DATA_FT_RX_FWD (28U)
#define | ICCSG_RX_CLASS_DATA_FT_RX_BC (29U)
#define | ICCSG_RX_CLASS_DATA_FT_RX_MC (30U)
#define | ICCSG_RX_CLASS_DATA_FT_RX_SAV (31U)
#define | ICSSG_TAS_MIN_CYCLE_TIME_NS (1000000)
| Minimum cycle time supported by implementation (in ns). More...
#define | ICSSG_TAS_MIN_WINDOW_DURATION_NS (10000)
| Minimum TAS window duration supported by implementation (in ns). More...
ICSSG FDB entry fields.
#define | ICSSG_FDB_ENTRY_P0_MEMBERSHIP (ENET_BIT(0U))
| Host port membership. More...
#define | ICSSG_FDB_ENTRY_P1_MEMBERSHIP (ENET_BIT(1U))
| Physical port 1 membership. More...
#define | ICSSG_FDB_ENTRY_P2_MEMBERSHIP (ENET_BIT(2U))
| Physical port 2 membership. More...
#define | ICSSG_FDB_ENTRY_AGEABLE (ENET_BIT(3U))
| Ageable bit. More...
#define | ICSSG_FDB_ENTRY_BLOCK (ENET_BIT(4U))
| Block bit. More...
#define | ICSSG_FDB_ENTRY_SECURE (ENET_BIT(5U))
| Secure bit. More...
#define | ICSSG_FDB_ENTRY_TOUCHED (ENET_BIT(6U))
| Touched bit. More...
#define | ICSSG_FDB_ENTRY_VALID (ENET_BIT(7U))
| Valid bit. More...

## Typedefs
typedef void(* | Icssg_MdioLinkStateChangeCb) (Icssg_MdioLinkStateChangeInfo *info, void *appArg)
| Icssg PHY link state change callback function. More...
typedef void(* | Icssg_portLinkStateChangeCb) (Enet_MacPort macPort, bool isLinkUp, void *appArg)

## Enumerations
enum | Icssg_Instance_Num { ICSSG_INSTANCE_NUM_0, ICSSG_INSTANCE_NUM_1, ICSSG_INSTANCE_NUM_2 }
| ICSSG instance numbers. More...
enum | Icssg_Ioctl { ICSSG_MACPORT_IOCTL_ENABLE_PROMISC_MODE = ICSSG_PUBLIC_IOCTL(0U), ICSSG_MACPORT_IOCTL_DISABLE_PROMISC_MODE = ICSSG_PUBLIC_IOCTL(1U), ICSSG_PER_IOCTL_VLAN_RESET_TABLE = ICSSG_PUBLIC_IOCTL(2U), ICSSG_PER_IOCTL_VLAN_SET_ENTRY = ICSSG_PUBLIC_IOCTL(3U), ICSSG_PER_IOCTL_VLAN_GET_ENTRY = ICSSG_PUBLIC_IOCTL(4U), ICSSG_PER_IOCTL_SET_PORT_STATE = ICSSG_PUBLIC_IOCTL(5U), ICSSG_FDB_IOCTL_ADD_ENTRY = ICSSG_PUBLIC_IOCTL(6U), ICSSG_FDB_IOCTL_REMOVE_ENTRY = ICSSG_PUBLIC_IOCTL(7U), ICSSG_FDB_IOCTL_REMOVE_ALL_ENTRIES = ICSSG_PUBLIC_IOCTL(8U), ICSSG_FDB_IOCTL_REMOVE_AGEABLE_ENTRIES = ICSSG_PUBLIC_IOCTL(9U), ICSSG_FDB_IOCTL_READ_SLOT_ENTRIES = ICSSG_PUBLIC_IOCTL(10U), ICSSG_FDB_IOCTL_GET_SLOT_ENTRIES = ICSSG_PUBLIC_IOCTL(11U), ICSSG_MACPORT_IOCTL_SET_MACADDR = ICSSG_PUBLIC_IOCTL(12U), ICSSG_HOSTPORT_IOCTL_SET_MACADDR = ICSSG_PUBLIC_IOCTL(13U), ICSSG_PER_IOCTL_TAS_TRIGGER = ICSSG_PUBLIC_IOCTL(14U), ICSSG_PER_IOCTL_TAS_ENABLE = ICSSG_PUBLIC_IOCTL(15U), ICSSG_PER_IOCTL_TAS_DISABLE = ICSSG_PUBLIC_IOCTL(16U), ICSSG_PER_IOCTL_TAS_RESET = ICSSG_PUBLIC_IOCTL(17U), ICSSG_PER_IOCTL_VLAN_SET_HOSTPORT_DFLT_VID = ICSSG_PUBLIC_IOCTL(18U), ICSSG_PER_IOCTL_VLAN_SET_MACPORT_DFLT_VID = ICSSG_PUBLIC_IOCTL(19U), ICSSG_FDB_IOCTL_SET_AGING_PERIOD = ICSSG_PUBLIC_IOCTL(20U), ICSSG_MACPORT_IOCTL_ENABLE_UCAST_FLOOD = ICSSG_PUBLIC_IOCTL(21U), ICSSG_MACPORT_IOCTL_DISABLE_UCAST_FLOOD = ICSSG_PUBLIC_IOCTL(22U), ICSSG_MACPORT_IOCTL_ENABLE_MCAST_FLOOD = ICSSG_PUBLIC_IOCTL(23U), ICSSG_MACPORT_IOCTL_DISABLE_MCAST_FLOOD = ICSSG_PUBLIC_IOCTL(24U), ICSSG_MACPORT_IOCTL_SET_ACCEPT_FRAME_CHECK = ICSSG_PUBLIC_IOCTL(25U), ICSSG_MACPORT_IOCTL_SET_INGRESS_RATE_LIM = ICSSG_PUBLIC_IOCTL(26U), ICSSG_MACPORT_IOCTL_SET_QUEUE_CUT_THROUGH_PREEMPT_SELECT = ICSSG_PUBLIC_IOCTL(27U), ICSSG_MACPORT_IOCTL_CONFIG_SPL_FRAME_PRIO = ICSSG_PUBLIC_IOCTL(28U), ICSSG_ENABLE_PROTOCOL_SPECIFIC_TAG_IOCTL = ICSSG_PUBLIC_IOCTL(29U), ICSSG_DISABLE_PROTOCOL_SPECIFIC_TAG_IOCTL = ICSSG_PUBLIC_IOCTL(30U), ICSSG_INTERNAL_IOCTL_REGISTER_HANDLER = ICSSG_PUBLIC_IOCTL(31U) }
| ICSSG IOCTL commands. More...
enum | Icssg_QueuePreemptMode { ICSSG_QUEUE_PREEMPT_MODE_EXPRESS, ICSSG_QUEUE_PREEMPT_MODE_PREEMPT }
| Queue preemptive mode: express or preemptive. More...
enum | Icssg_QueueForwardMode { ICSSG_QUEUE_FORWARD_MODE_STOREANDFWD, ICSSG_QUEUE_FORWARD_MODE_CUTTHROUGH }
| Queue forward mode: cut-through or store-and-forward. More...
enum | Icssg_PortState { ICSSG_PORT_STATE_DISABLED, ICSSG_PORT_STATE_BLOCKING, ICSSG_PORT_STATE_FORWARD, ICSSG_PORT_STATE_FORWARD_WO_LEARNING, ICSSG_PORT_STATE_TAS_TRIGGER, ICSSG_PORT_STATE_TAS_ENABLE, ICSSG_PORT_STATE_TAS_RESET, ICSSG_PORT_STATE_TAS_DISABLE }
| Port states. More...
enum | Icssg_AcceptFrameCheck { ICSSG_ACCEPT_ONLY_VLAN_TAGGED, ICSSG_ACCEPT_ONLY_UNTAGGED_PRIO_TAGGED, ICSSG_ACCEPT_ALL }
| Acceptable frame check criteria. More...

## Functions
const Icssg_FwPoolMem * | EnetCb_GetFwPoolMem (Enet_Type enetType, uint32_t instId)
| ICSSG memory pool callback function. More...
void | IcssgMacPort_initCfg (IcssgMacPort_Cfg *macPortCfg)
| Initialises Mac Port COnfiguration. More...
uint32_t | Icssg_getSliceNum (Enet_Type enetType, uint32_t instId, Enet_MacPort macPort)
| ICSSG memory pool callback function. More...