 |
AM64x MCU+ SDK
12.01.00
|
|
Go to the documentation of this file.
55 #include <drivers/hw_include/csl_types.h>
56 #include "icss_emac_ver.h"
67 #define ICSS_EMAC_MAX_PORTS_PER_INSTANCE (2)
68 #ifdef BUILD_HSR_PRP_MII
70 #define ICSS_EMAC_FW_LEARNING_EN (2U)
72 #define ICSS_EMAC_LOW_PRIORITY (1U)
74 #define ICSS_EMAC_HIGH_PRIORITY (2U)
84 #define ICSS_EMAC_MODE_MAC1 (1U)
86 #define ICSS_EMAC_MODE_MAC2 (2U)
88 #define ICSS_EMAC_MODE_SWITCH (3U)
90 #define ICSS_EMAC_MODE_DUALMAC (4U)
100 #define ICSS_EMAC_MII_MODE (0U)
102 #define ICSS_EMAC_RGMII_MODE (1U)
112 #define ICSS_EMAC_LEARNING_DISABLE (0U)
114 #define ICSS_EMAC_LEARNING_ENABLE (1U)
124 #define ICSS_EMAC_ENABLE_PACING (0)
126 #define ICSS_EMAC_DISABLE_PACING (1)
136 #define ICSS_EMAC_INTR_PACING_MODE1 (0)
146 #define ICSS_EMAC_QUEUE1 ((uint32_t)0U)
148 #define ICSS_EMAC_QUEUE2 ((uint32_t)1U)
150 #define ICSS_EMAC_QUEUE3 ((uint32_t)2U)
152 #define ICSS_EMAC_QUEUE4 ((uint32_t)3U)
154 #define ICSS_EMAC_QUEUE5 ((uint32_t)4U)
156 #define ICSS_EMAC_QUEUE6 ((uint32_t)5U)
158 #define ICSS_EMAC_QUEUE7 ((uint32_t)6U)
160 #define ICSS_EMAC_QUEUE8 ((uint32_t)7U)
162 #define ICSS_EMAC_QUEUE9 ((uint32_t)8U)
164 #define ICSS_EMAC_QUEUE10 ((uint32_t)9U)
166 #define ICSS_EMAC_QUEUE11 ((uint32_t)10U)
168 #define ICSS_EMAC_QUEUE12 ((uint32_t)11U)
170 #define ICSS_EMAC_QUEUE13 ((uint32_t)12U)
172 #define ICSS_EMAC_QUEUE14 ((uint32_t)13U)
174 #define ICSS_EMAC_QUEUE15 ((uint32_t)14U)
176 #define ICSS_EMAC_QUEUE16 ((uint32_t)15U)
178 #define ICSS_EMAC_COLQUEUE ((uint32_t)16U)
181 #ifdef BUILD_HSR_PRP_MII
183 #define ICSS_EMAC_SET_TX_OCCUPIED (1U)
185 #define ICSS_EMAC_CLR_TX_OCCUPIED (0U)
187 #define ICSS_EMAC_SCAN_PORT1_HIGH_FIRST (0U)
189 #define ICSS_EMAC_SCAN_PORT2_HIGH_FIRST (1U)
192 #define ICSS_EMAC_NUMQUEUES ((uint32_t)17U)
201 #define ICSS_EMAC_SWITCH_ERROR_BASE ((uint32_t)0x21Fu)
203 #define ICSS_EMAC_SWITCH_ERROR_CODE (ICSS_EMAC_SWITCH_ERROR_BASE)
205 #define ICSS_EMAC_SWITCH_ERROR_INFO (ICSS_EMAC_SWITCH_ERROR_CODE)
207 #define ICSS_EMAC_SWITCH_ERROR_WARNING (ICSS_EMAC_SWITCH_ERROR_CODE | 0x1000u)
209 #define ICSS_EMAC_SWITCH_ERROR_MINOR (ICSS_EMAC_SWITCH_ERROR_CODE | 0x2000u)
211 #define ICSS_EMAC_SWITCH_ERROR_MAJOR (ICSS_EMAC_SWITCH_ERROR_CODE | 0x3000u)
213 #define ICSS_EMAC_SWITCH_ERROR_CRITICAL (ICSS_EMAC_SWITCH_ERROR_CODE | 0x4000u)
216 #define ICSS_EMAC_SWITCH_SUCCESS (0u)
218 #define ICSS_EMAC_PORT1_TX_ERROR_MASK (0xFFFFu)
220 #define ICSS_EMAC_PORT2_TX_ERROR_MASK (0xFFFF0000u)
224 #define ICSS_EMAC_ERR_DEV_NOT_INSTANTIATED (ICSS_EMAC_SWITCH_ERROR_MAJOR + 1u)
226 #define ICSS_EMAC_ERR_SWITCH_INVALID_PARAM (ICSS_EMAC_SWITCH_ERROR_MAJOR + 2u)
228 #define ICSS_EMAC_ERR_CH_INVALID (ICSS_EMAC_SWITCH_ERROR_CRITICAL + 3u)
230 #define ICSS_EMAC_ERR_CH_ALREADY_INIT (ICSS_EMAC_SWITCH_ERROR_MAJOR + 4u)
232 #define ICSS_EMAC_ERR_TX_CH_ALREADY_CLOSED (ICSS_EMAC_SWITCH_ERROR_MAJOR + 5u)
234 #define ICSS_EMAC_ERR_TX_CH_NOT_OPEN (ICSS_EMAC_SWITCH_ERROR_MAJOR + 6u)
236 #define ICSS_EMAC_ERR_TX_NO_LINK (ICSS_EMAC_SWITCH_ERROR_MAJOR + 7u)
238 #define ICSS_EMAC_ERR_TX_OUT_OF_BD (ICSS_EMAC_SWITCH_ERROR_MAJOR + 8u)
240 #define ICSS_EMAC_ERR_RX_CH_INVALID (ICSS_EMAC_SWITCH_ERROR_CRITICAL + 9u)
242 #define ICSS_EMAC_ERR_RX_CH_ALREADY_INIT (ICSS_EMAC_SWITCH_ERROR_MAJOR + 10u)
244 #define ICSS_EMAC_ERR_RX_CH_ALREADY_CLOSED (ICSS_EMAC_SWITCH_ERROR_MAJOR + 11u)
246 #define ICSS_EMAC_ERR_RX_CH_NOT_OPEN (ICSS_EMAC_SWITCH_ERROR_MAJOR + 12u)
248 #define ICSS_EMAC_ERR_DEV_ALREADY_CREATED (ICSS_EMAC_SWITCH_ERROR_MAJOR + 13u)
250 #define ICSS_EMAC_ERR_DEV_NOT_OPEN (ICSS_EMAC_SWITCH_ERROR_MAJOR + 14u)
252 #define ICSS_EMAC_ERR_DEV_ALREADY_CLOSED (ICSS_EMAC_SWITCH_ERROR_MAJOR + 15u)
254 #define ICSS_EMAC_ERR_DEV_ALREADY_OPEN (ICSS_EMAC_SWITCH_ERROR_MAJOR + 16u)
256 #define ICSS_EMAC_ERR_RX_BUFFER_ALLOC_FAIL (ICSS_EMAC_SWITCH_ERROR_CRITICAL + 17u)
258 #define ICSS_EMAC_SWITCH_INTERNAL_FAILURE (ICSS_EMAC_SWITCH_ERROR_MAJOR + 18u)
260 #define ICSS_EMAC_SWITCH_VLAN_UNAWARE_MODE (ICSS_EMAC_SWITCH_ERROR_MAJOR + 19u)
262 #define ICSS_EMAC_SWITCH_ALE_TABLE_FULL (ICSS_EMAC_SWITCH_ERROR_MAJOR + 20u)
264 #define ICSS_EMAC_SWITCH_ADDR_NOTFOUND (ICSS_EMAC_SWITCH_ERROR_MAJOR + 21u)
266 #define ICSS_EMAC_SWITCH_INVALID_VLANID (ICSS_EMAC_SWITCH_ERROR_MAJOR + 22u)
268 #define ICSS_EMAC_SWITCH_INVALID_PORT (ICSS_EMAC_SWITCH_ERROR_MAJOR + 23u)
270 #define ICSS_EMAC_SWITCH_BD_ALLOC_FAIL (ICSS_EMAC_SWITCH_ERROR_MAJOR + 24u)
272 #define ICSS_EMAC_ERR_BADPACKET (ICSS_EMAC_SWITCH_ERROR_MAJOR + 25u)
274 #define ICSS_EMAC_ERR_COLLISION_FAIL (ICSS_EMAC_SWITCH_ERROR_MAJOR + 26u)
276 #define ICSS_EMAC_ERR_MACFATAL (ICSS_EMAC_SWITCH_ERROR_CRITICAL + 26u)
280 #define ICSS_EMAC_MAXMTU (1518U)
282 #define ICSS_EMAC_MINMTU (14U)
287 #define ICSS_EMAC_PORT_0 (0)
292 #define ICSS_EMAC_PORT_1 (1U)
297 #define ICSS_EMAC_PORT_2 (2U)
302 #define ICSS_EMAC_IOCTL_PORT_CTRL_DISABLE (0u)
305 #define ICSS_EMAC_IOCTL_PORT_CTRL_ENABLE (1u)
314 #define ICSS_EMAC_STORM_PREV_CTRL_ENABLE (0u)
316 #define ICSS_EMAC_STORM_PREV_CTRL_DISABLE (1u)
318 #define ICSS_EMAC_STORM_PREV_CTRL_SET_CREDITS (2u)
320 #define ICSS_EMAC_STORM_PREV_CTRL_INIT (3u)
322 #define ICSS_EMAC_STORM_PREV_CTRL_RESET (4u)
324 #define ICSS_EMAC_STORM_PREV_CTRL_ENABLE_BC (5u)
326 #define ICSS_EMAC_STORM_PREV_CTRL_DISABLE_BC (6u)
328 #define ICSS_EMAC_STORM_PREV_CTRL_SET_CREDITS_BC (7u)
330 #define ICSS_EMAC_STORM_PREV_CTRL_INIT_BC (8u)
332 #define ICSS_EMAC_STORM_PREV_CTRL_RESET_BC (9u)
334 #define ICSS_EMAC_STORM_PREV_CTRL_ENABLE_MC (10u)
336 #define ICSS_EMAC_STORM_PREV_CTRL_DISABLE_MC (11u)
338 #define ICSS_EMAC_STORM_PREV_CTRL_SET_CREDITS_MC (12u)
340 #define ICSS_EMAC_STORM_PREV_CTRL_INIT_MC (13u)
342 #define ICSS_EMAC_STORM_PREV_CTRL_RESET_MC (14u)
344 #define ICSS_EMAC_STORM_PREV_CTRL_ENABLE_UC (15u)
346 #define ICSS_EMAC_STORM_PREV_CTRL_DISABLE_UC (16u)
348 #define ICSS_EMAC_STORM_PREV_CTRL_SET_CREDITS_UC (17u)
350 #define ICSS_EMAC_STORM_PREV_CTRL_INIT_UC (18u)
352 #define ICSS_EMAC_STORM_PREV_CTRL_RESET_UC (19u)
362 #define ICSS_EMAC_LEARN_CTRL_UPDATE_TABLE (0u)
364 #define ICSS_EMAC_LEARN_CTRL_CLR_TABLE (1u)
366 #define ICSS_EMAC_LEARN_CTRL_AGEING (2u)
368 #define ICSS_EMAC_LEARN_CTRL_FIND_MAC (3u)
370 #define ICSS_EMAC_LEARN_CTRL_REMOVE_MAC (4u)
372 #define ICSS_EMAC_LEARN_CTRL_INC_COUNTER (5u)
374 #define ICSS_EMAC_LEARN_CTRL_INIT_TABLE (6u)
376 #define ICSS_EMAC_LEARN_CTRL_SET_PORTSTATE (7u)
386 #define ICSS_EMAC_IOCTL_STAT_CTRL_GET (0u)
388 #define ICSS_EMAC_IOCTL_STAT_CTRL_CLEAR (1u)
398 #define ICSS_EMAC_IOCTL_PORT_CTRL (0u)
400 #define ICSS_EMAC_IOCTL_LEARNING_CTRL (1u)
402 #define ICSS_EMAC_IOCTL_STORM_PREV_CTRL (2u)
404 #define ICSS_EMAC_IOCTL_STATS_CTRL (3u)
406 #define ICSS_EMAC_IOCTL_PROMISCUOUS_CTRL (4u)
408 #define ICSS_EMAC_IOCTL_MULTICAST_FILTER_CTRL (5u)
410 #define ICSS_EMAC_IOCTL_VLAN_FILTER_CTRL (6u)
412 #define ICSS_EMAC_IOCTL_PORT_FLUSH_CTRL (7u)
414 #define ICSS_EMAC_IOCTL_SPECIAL_UNICAST_MAC_CTRL (8u)
416 #define ICSS_EMAC_IOCTL_PORT_FWD_CTRL (9u)
426 #define ICSS_EMAC_IOCTL_MULTICAST_FILTER_CTRL_ENABLE (0u)
428 #define ICSS_EMAC_IOCTL_MULTICAST_FILTER_CTRL_DISABLE (1u)
430 #define ICSS_EMAC_IOCTL_MULTICAST_FILTER_CTRL_OVERRIDE_HASHMASK (2u)
432 #define ICSS_EMAC_IOCTL_MULTICAST_FILTER_CTRL_ADD_MACID (3u)
434 #define ICSS_EMAC_IOCTL_MULTICAST_FILTER_CTRL_REMOVE_MACID (4u)
436 #define ICSS_EMAC_IOCTL_MULTICAST_FILTER_CTRL_GET_DROPPED (5u)
446 #define ICSS_EMAC_IOCTL_VLAN_FILTER_CTRL_ENABLE_CMD (0u)
448 #define ICSS_EMAC_IOCTL_VLAN_FILTER_CTRL_DISABLE_CMD (1u)
450 #define ICSS_EMAC_IOCTL_VLAN_FILTER_CTRL_UNTAG_HOST_RCV_ALL_CMD (2u)
452 #define ICSS_EMAC_IOCTL_VLAN_FILTER_CTRL_UNTAG_HOST_RCV_NAL_CMD (3u)
454 #define ICSS_EMAC_IOCTL_VLAN_FILTER_CTRL_PRIOTAG_HOST_RCV_ALL_CMD (4u)
456 #define ICSS_EMAC_IOCTL_VLAN_FILTER_CTRL_PRIOTAG_HOST_RCV_NAL_CMD (5u)
458 #define ICSS_EMAC_IOCTL_VLAN_FILTER_CTRL_ADD_VID_CMD (6u)
460 #define ICSS_EMAC_IOCTL_VLAN_FILTER_CTRL_REMOVE_VID_CMD (7u)
470 #define ICSS_EMAC_IOCTL_SPECIAL_UNICAST_MAC_CTRL_DISABLE_CMD (0u)
472 #define ICSS_EMAC_IOCTL_SPECIAL_UNICAST_MAC_CTRL_ENABLE_CMD (1u)
483 #define ICSS_EMAC_IOCTL_PORT_FWD_CTRL_ENABLE_CMD (0u)
485 #define ICSS_EMAC_IOCTL_PORT_FWD_CTRL_DISABLE_CMD (1u)
493 #define ICSS_EMAC_LEARNING_PORT_STATE_LEARNING (0U)
494 #define ICSS_EMAC_LEARNING_PORT_STATE_NOT_LEARNING (1U)
495 #define ICSS_EMAC_LEARNING_PORT_STATE_LOCKED (2U)
497 #define ICSS_EMAC_OBJECT_SIZE_IN_BYTES (42000U)
499 #ifdef BUILD_HSR_PRP_MII
501 #define ICSS_EMAC_BD_FDB_LOOKUP_SUCCESS_MASK ((uint32_t)0x00000040U)
504 #define ICSS_EMAC_BD_FDB_LOOKUP_SUCCESS_SHIFT ((uint32_t)6U)
507 #define ICSS_EMAC_BD_FW_FLOOD_MASK ((uint32_t)0x00000080U)
510 #define ICSS_EMAC_BD_FW_FLOOD_SHIFT ((uint32_t)7U)
541 typedef struct ICSS_EMAC_FwStaticMmap_s
571 typedef struct ICSS_EMAC_FwDynamicMmap_s
594 typedef struct ICSS_EMAC_FwVlanFilterParams_s
607 typedef struct ICSS_EMAC_FwMulticastFilterParams_s
626 typedef struct ICSS_EMAC_Attrs_s
698 #ifdef BUILD_HSR_PRP_MII
711 typedef struct ICSS_EMAC_InternalObject_t
721 typedef struct ICSS_EMAC_Config_s
736 typedef struct ICSS_EMAC_CallBackConfig_s
751 typedef struct ICSS_EMAC_CallBackObject_s
789 typedef struct ICSS_EMAC_Params_s
822 typedef struct ICSS_EMAC_RxArgument_s
834 #ifdef BUILD_HSR_PRP_MII
835 uint32_t host_recv_flag;
844 typedef struct ICSS_EMAC_TxArgument_s
861 typedef struct ICSS_EMAC_IoctlCmd_s
871 typedef struct ICSS_EMAC_PruStatistics_s
996 uint32_t ioctlCommand,
1028 int32_t *portNumber,
1029 int32_t *queueNumber);
volatile uint32_t tx128_255byte
Definition: icss_emac.h:890
uint8_t portMask
Definition: icss_emac.h:663
uint8_t hostQueueIsolationMode
Definition: icss_emac.h:694
uint32_t p0ColBufferOffset
Definition: icss_emac.h:583
uint8_t intrPacingMode
Definition: icss_emac.h:648
uint32_t p0ColQueueDescOffset
Definition: icss_emac.h:558
uint32_t rxTaskPriority
Definition: icss_emac.h:688
Tx packet processing information block that needs to passed into call to ICSS_EMAC_txPacket.
Definition: icss_emac.h:845
ICSS_EMAC_CallBackConfig rxNRTCallBack
Definition: icss_emac.h:757
struct ICSS_EMAC_Config_s * ICSS_EMAC_Handle
Alias for ICSS EMAC Handle containing base addresses and modules.
Definition: icss_emac.h:515
uint32_t portMacAddr
Definition: icss_emac.h:553
volatile uint32_t rxBcast
Definition: icss_emac.h:883
volatile uint32_t defTx
Definition: icss_emac.h:914
uint8_t learningEnable
Definition: icss_emac.h:659
Rx packet processing information block that needs to passed into call to ICSS_EMAC_RxPktGet.
Definition: icss_emac.h:823
volatile uint32_t rxUcast
Definition: icss_emac.h:885
volatile uint32_t TXqueueLevel
Definition: icss_emac.h:926
uint32_t portStatusOffset
Definition: icss_emac.h:551
volatile uint32_t droppedPackets
Definition: icss_emac.h:920
uint32_t p1Q1SwitchTxContextOffset
Definition: icss_emac.h:585
@ RESET_ISOLATION_DISABLED
Definition: icss_emac.h:520
uint8_t queueNumber
Definition: icss_emac.h:828
uint32_t p0QueueDescOffset
Definition: icss_emac.h:557
ICSS_EMAC_pruRstIsoState pruRstIsoStatusParams
Definition: icss_emac.h:814
int32_t ICSS_EMAC_txPacket(const ICSS_EMAC_TxArgument *txArg, void *userArg)
API to queue a frame which has to be transmitted on the specified port queue.
uint8_t port
Definition: icss_emac.h:830
uint32_t l3OcmcBaseAddr
Definition: icss_emac.h:682
uint32_t p0ColBufferDescOffset
Definition: icss_emac.h:580
void ICSS_EMAC_Params_init(ICSS_EMAC_Params *params)
Initialize the parmeters data structure with defaults.
uint32_t ctrlUntagHostRcvAllowBit
Definition: icss_emac.h:598
#define ICSS_EMAC_NUMQUEUES
Total Queues available.
Definition: icss_emac.h:192
uint32_t overrideStatusOffset
Definition: icss_emac.h:613
uint32_t stormPreventionOffsetBC
Definition: icss_emac.h:549
volatile uint32_t rxUnderSizedFrames
Definition: icss_emac.h:917
int32_t ICSS_EMAC_ioctl(ICSS_EMAC_Handle icssEmacHandle, uint32_t ioctlCommand, uint8_t portNo, void *ioctlParams)
IOCTL Function for ICSS EMAC.
volatile uint32_t tx64byte
Definition: icss_emac.h:888
uint32_t l3OcmcSize
Definition: icss_emac.h:684
uint32_t collisionQueueSize
Definition: icss_emac.h:578
uint32_t hostQ1RxContextOffset
Definition: icss_emac.h:584
uint8_t txInterruptEnable
Definition: icss_emac.h:668
uint32_t more
Definition: icss_emac.h:832
uint32_t txIntNum
Definition: icss_emac.h:679
#define ICSS_EMAC_OBJECT_SIZE_IN_BYTES
Definition: icss_emac.h:497
ICSS_EMAC_CallBackConfig learningExCallBack
Definition: icss_emac.h:767
uint32_t transmitQueuesBufferOffset
Definition: icss_emac.h:582
uint16_t pacingThreshold
Definition: icss_emac.h:652
volatile uint32_t rxOctets
Definition: icss_emac.h:886
uint16_t lengthOfPacket
Definition: icss_emac.h:854
uint8_t portNumber
Definition: icss_emac.h:850
uint32_t maskInitVal
Definition: icss_emac.h:611
volatile uint32_t rx512_1023byte
Definition: icss_emac.h:899
@ RESET_ISOLATION_ENABLED
Definition: icss_emac.h:521
uint32_t emacTtsConfigBaseOffset
Definition: icss_emac.h:559
volatile uint32_t sqeTestError
Definition: icss_emac.h:925
volatile uint32_t singleColl
Definition: icss_emac.h:903
volatile uint32_t macRxError
Definition: icss_emac.h:911
uint32_t p0Q1BufferDescOffset
Definition: icss_emac.h:579
void ICSS_EMAC_init(void)
This function initializes the ICSS_EMAC module.
uint32_t ctrlOffset
Definition: icss_emac.h:609
ICSS EMAC Dynamic Firmware Memory Map offsets.
Definition: icss_emac.h:572
uint8_t command
Definition: icss_emac.h:863
ICSS_EMAC_CallBackConfig port0LinkCallBack
Definition: icss_emac.h:753
void * object
Definition: icss_emac.h:723
int32_t(* ICSS_EMAC_CallBack)(void *arg0, void *arg1, void *arg2)
Definition for a generic callback function used in ICSS-EMAC. While calling this,...
Definition: icss_emac.h:531
volatile uint32_t tx65_127byte
Definition: icss_emac.h:889
volatile uint32_t CSError
Definition: icss_emac.h:927
uint32_t specialUnicastMACAddressFeatureEnableOffset
Definition: icss_emac.h:564
uint32_t ctrlEnableBit
Definition: icss_emac.h:597
uint32_t statisticsOffset
Definition: icss_emac.h:547
uint32_t filterTableBaseAddress
Definition: icss_emac.h:600
const PRUICSS_IntcInitData * pruicssIntcInitData
Definition: icss_emac.h:793
uint32_t phySpeedOffset
Definition: icss_emac.h:550
void * ioctlVal
Definition: icss_emac.h:864
uint32_t hostRcvAllowedValue
Definition: icss_emac.h:619
uint32_t p0Q1BufferOffset
Definition: icss_emac.h:581
volatile uint32_t lateColl
Definition: icss_emac.h:902
void * userArg
Definition: icss_emac.h:740
uint32_t colStatusAddr
Definition: icss_emac.h:561
uint32_t maskOverrideSetValue
Definition: icss_emac.h:617
uint32_t portControlAddr
Definition: icss_emac.h:552
uint32_t rxInterruptStatusOffset
Definition: icss_emac.h:554
volatile uint32_t rx65_127byte
Definition: icss_emac.h:896
uint32_t stormPreventionOffsetUC
Definition: icss_emac.h:556
int32_t ICSS_EMAC_rxPktGet(ICSS_EMAC_RxArgument *rxArg, void *userArg)
Retrieves a frame from a host queue and copies it in the allocated stack buffer.
volatile uint32_t rx64byte
Definition: icss_emac.h:895
uint32_t maskOffset
Definition: icss_emac.h:612
uint8_t emacMode
Definition: icss_emac.h:628
uint32_t futureFeatureOffset
Definition: icss_emac.h:546
uint8_t portPrioritySelection
Definition: icss_emac.h:696
uint32_t versionOffset
Definition: icss_emac.h:543
ICSS_EMAC_FwDynamicMmap * fwDynamicMMap
Definition: icss_emac.h:797
volatile uint32_t rxOverSizedFrames
Definition: icss_emac.h:916
volatile uint32_t multiColl
Definition: icss_emac.h:904
uint32_t ctrlBitmapOffset
Definition: icss_emac.h:596
ICSS_EMAC_FwMulticastFilterParams * fwMulticastFilterParams
Definition: icss_emac.h:801
ICSS EMAC VLAN Filtering Parameters.
Definition: icss_emac.h:595
volatile uint32_t txOverFlow
Definition: icss_emac.h:923
uint32_t q1EmacTxContextOffset
Definition: icss_emac.h:587
ICSS_EMAC_Handle ICSS_EMAC_open(uint32_t idx, const ICSS_EMAC_Params *params)
API to initialize and configure ICSS in MAC/Switch Mode.
uint32_t txTaskPriority
Definition: icss_emac.h:690
volatile uint32_t txUcast
Definition: icss_emac.h:880
Statistics structure for capturing statistics on PRU.
Definition: icss_emac.h:872
volatile uint32_t txUnderFlow
Definition: icss_emac.h:924
uint8_t ethPrioQueue
Definition: icss_emac.h:654
volatile uint32_t rx1024byte
Definition: icss_emac.h:900
volatile uint32_t excessColl
Definition: icss_emac.h:905
uint32_t numQueues
Definition: icss_emac.h:588
uint32_t interfaceMacAddrOffset
Definition: icss_emac.h:560
ICSS_EMAC_CallBackConfig rxRTCallBack
Definition: icss_emac.h:761
ICSS_EMAC_CallBackConfig customRxCallBack
Definition: icss_emac.h:773
uint32_t tableOffset
Definition: icss_emac.h:614
volatile uint32_t rxCRCFrames
Definition: icss_emac.h:918
const uint8_t * srcAddress
Definition: icss_emac.h:848
uint16_t reserved
Definition: tisci_boardcfg_rm.h:2
uint32_t maskOverrideNotSetValue
Definition: icss_emac.h:618
volatile uint32_t stormPrevCounter
Definition: icss_emac.h:908
void ICSS_EMAC_close(ICSS_EMAC_Handle icssEmacHandle)
API to stop MAC/Switch Mode.
uint32_t ctrlEnabledValue
Definition: icss_emac.h:615
ICSS_EMAC_CallBackConfig customTxCallBack
Definition: icss_emac.h:769
const ICSS_EMAC_Attrs * attrs
Definition: icss_emac.h:725
PRUICSS Interrupt controller initialisation data structure.
Definition: pruicss/g_v0/pruicss.h:274
uint32_t linkIntNum
Definition: icss_emac.h:675
int32_t ICSS_EMAC_rxPktInfo(ICSS_EMAC_Handle icssEmacHandle, int32_t *portNumber, int32_t *queueNumber)
API to retrieve the information about the received frame which is then used to dequeue the frame from...
volatile uint32_t txOctets
Definition: icss_emac.h:881
void ICSS_EMAC_deinit(void)
This function de-initializes the ICSS_EMAC module.
uint8_t phyToMacInterfaceMode
Definition: icss_emac.h:635
uint32_t destAddress
Definition: icss_emac.h:826
uint32_t maskSizeBytes
Definition: icss_emac.h:610
volatile uint32_t rx256_511byte
Definition: icss_emac.h:898
volatile uint32_t macTxError
Definition: icss_emac.h:915
uint8_t halfDuplexEnable
Definition: icss_emac.h:639
volatile uint32_t SFDError
Definition: icss_emac.h:913
uint32_t featureOffset
Definition: icss_emac.h:545
uint32_t vidMaxValue
Definition: icss_emac.h:601
uint32_t splitQueue
Definition: icss_emac.h:692
volatile uint32_t stormPrevCounterMC
Definition: icss_emac.h:909
uint32_t linkTaskPriority
Definition: icss_emac.h:686
Different callbacks which can be registered. While calling the function set in ICSS_EMAC_CallBack,...
Definition: icss_emac.h:752
uint32_t hostRcvNotAllowedValue
Definition: icss_emac.h:620
uint32_t queueSizeOffset
Definition: icss_emac.h:573
volatile uint32_t rxMisAlignmentFrames
Definition: icss_emac.h:907
uint32_t ctrlPriotagHostRcvAllowBit
Definition: icss_emac.h:599
volatile uint32_t txBcast
Definition: icss_emac.h:878
volatile uint32_t txMcast
Definition: icss_emac.h:879
uint8_t enableIntrPacing
Definition: icss_emac.h:644
ICSS EMAC Static Firmware Memory Map offsets. These are offsets for PRU0 and PRU1 DRAM memory.
Definition: icss_emac.h:542
Opaque ICSS EMAC driver object.
Definition: icss_emac.h:712
ICSS_EMAC_CallBackConfig txCallBack
Definition: icss_emac.h:765
ICSS_EMAC_pruRstIsoState
Definition: icss_emac.h:519
uint32_t ctrlDisabledValue
Definition: icss_emac.h:616
ICSS_EMAC_CallBack callBack
Definition: icss_emac.h:738
Definition: icss_emac.h:627
volatile uint32_t stormPrevCounterUC
Definition: icss_emac.h:910
ICSS EMAC Multicast Filtering Parameters.
Definition: icss_emac.h:608
@ RESET_ISOLATION_NOT_SUPPORTED
Definition: icss_emac.h:522
volatile uint32_t tx256_511byte
Definition: icss_emac.h:891
ICSS_EMAC_pruRstIsoState ICSS_EMAC_getResetIsolationStatus(ICSS_EMAC_Handle emacHandle)
Gets the reset isolation status from the ICSS_EMAC handle.
ICSS_EMAC Parameters.
Definition: icss_emac.h:790
volatile uint32_t rx128_255byte
Definition: icss_emac.h:897
uint32_t rxIntNum
Definition: icss_emac.h:677
Generic callback configuration for protocol specific callbacks. ICSS_EMAC_CallBack is the function ...
Definition: icss_emac.h:737
uint32_t version2Offset
Definition: icss_emac.h:544
void * ETHPHY_Handle
Handle to the ETHPHY driver returned by ETHPHY_open()
Definition: ethphy.h:173
IOCTL command members for configuring switch/EMAC.
Definition: icss_emac.h:862
uint8_t enableHostQueueIsolation
Definition: icss_emac.h:812
ICSS_EMAC_CallBackObject callBackObject
Definition: icss_emac.h:803
uint32_t specialUnicastMACAddrOffset
Definition: icss_emac.h:563
volatile uint32_t tx512_1023byte
Definition: icss_emac.h:892
uint32_t queueOffset
Definition: icss_emac.h:574
uint32_t portForwardStatusOffset
Definition: icss_emac.h:565
PRUICSS_Handle pruicssHandle
Definition: icss_emac.h:791
uint32_t stormPreventionOffsetMC
Definition: icss_emac.h:555
struct PRUICSS_Config_s * PRUICSS_Handle
A handle that is returned from a PRUICSS_open() call. This handle is required for calling other APIs.
Definition: pruicss/g_v0/pruicss.h:235
ICSS_EMAC_CallBackConfig port1LinkCallBack
Definition: icss_emac.h:755
uint32_t promiscuousModeOffset
Definition: icss_emac.h:562
ICSS_EMAC_Handle icssEmacHandle
Definition: icss_emac.h:846
uint32_t statisticsSize
Definition: icss_emac.h:548
uint8_t queuePriority
Definition: icss_emac.h:852
volatile uint32_t rxMcast
Definition: icss_emac.h:884
uint32_t portQueueDescOffset
Definition: icss_emac.h:586
volatile uint32_t tx1024byte
Definition: icss_emac.h:893
ICSS_EMAC_FwStaticMmap * fwStaticMMap
Definition: icss_emac.h:795
#define ICSS_EMAC_MAX_PORTS_PER_INSTANCE
Maximum number of Ports in a single ICSS
Definition: icss_emac.h:67
ICSS_EMAC_FwVlanFilterParams * fwVlanFilterParams
Definition: icss_emac.h:799
uint32_t queueDescriptorOffset
Definition: icss_emac.h:575
Base EMAC handle containing pointers to all modules required for driver to work.
Definition: icss_emac.h:722
ICSS_EMAC_Handle icssEmacHandle
Definition: icss_emac.h:824