AM261x MCU+ SDK  11.00.00
icss_emac.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2021 Texas Instruments Incorporated
3  *
4  * Redistribution and use in source and binary forms, with or without
5  * modification, are permitted provided that the following conditions
6  * are met:
7  *
8  * Redistributions of source code must retain the above copyright
9  * notice, this list of conditions and the following disclaimer.
10  *
11  * Redistributions in binary form must reproduce the above copyright
12  * notice, this list of conditions and the following disclaimer in the
13  * documentation and/or other materials provided with the
14  * distribution.
15  *
16  * Neither the name of Texas Instruments Incorporated nor the names of
17  * its contributors may be used to endorse or promote products derived
18  * from this software without specific prior written permission.
19  *
20  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
22  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
23  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
24  * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
25  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
26  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
27  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
28  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
29  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
30  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31  */
32 
33 #ifndef ICSS_EMAC_H_
34 #define ICSS_EMAC_H_
35 
47 /* ========================================================================== */
48 /* Include Files */
49 /* ========================================================================== */
50 
51 #include <stdint.h>
52 #include <kernel/dpl/SystemP.h>
53 #include <drivers/pruicss.h>
54 #include <board/ethphy.h>
55 #include <drivers/hw_include/csl_types.h>
56 
57 #ifdef __cplusplus
58 extern "C" {
59 #endif
60 
61 /* ========================================================================== */
62 /* Macros & Typedefs */
63 /* ========================================================================== */
64 
66 #define ICSS_EMAC_MAX_PORTS_PER_INSTANCE (2)
67 #ifdef BUILD_HSR_PRP_MII
68 
69 #define ICSS_EMAC_FW_LEARNING_EN (2U)
70 
71 #define ICSS_EMAC_LOW_PRIORITY (1U)
72 
73 #define ICSS_EMAC_HIGH_PRIORITY (2U)
74 #endif
75 
83 #define ICSS_EMAC_MODE_MAC1 (1U)
84 
85 #define ICSS_EMAC_MODE_MAC2 (2U)
86 
87 #define ICSS_EMAC_MODE_SWITCH (3U)
88 
89 #define ICSS_EMAC_MODE_DUALMAC (4U)
90 
99 #define ICSS_EMAC_MII_MODE (0U)
100 
101 #define ICSS_EMAC_RGMII_MODE (1U)
102 
111 #define ICSS_EMAC_LEARNING_DISABLE (0U)
112 
113 #define ICSS_EMAC_LEARNING_ENABLE (1U)
114 
123 #define ICSS_EMAC_ENABLE_PACING (0)
124 
125 #define ICSS_EMAC_DISABLE_PACING (1)
126 
135 #define ICSS_EMAC_INTR_PACING_MODE1 (0)
136 
145 #define ICSS_EMAC_QUEUE1 ((uint32_t)0U)
146 
147 #define ICSS_EMAC_QUEUE2 ((uint32_t)1U)
148 
149 #define ICSS_EMAC_QUEUE3 ((uint32_t)2U)
150 
151 #define ICSS_EMAC_QUEUE4 ((uint32_t)3U)
152 
153 #define ICSS_EMAC_QUEUE5 ((uint32_t)4U)
154 
155 #define ICSS_EMAC_QUEUE6 ((uint32_t)5U)
156 
157 #define ICSS_EMAC_QUEUE7 ((uint32_t)6U)
158 
159 #define ICSS_EMAC_QUEUE8 ((uint32_t)7U)
160 
161 #define ICSS_EMAC_QUEUE9 ((uint32_t)8U)
162 
163 #define ICSS_EMAC_QUEUE10 ((uint32_t)9U)
164 
165 #define ICSS_EMAC_QUEUE11 ((uint32_t)10U)
166 
167 #define ICSS_EMAC_QUEUE12 ((uint32_t)11U)
168 
169 #define ICSS_EMAC_QUEUE13 ((uint32_t)12U)
170 
171 #define ICSS_EMAC_QUEUE14 ((uint32_t)13U)
172 
173 #define ICSS_EMAC_QUEUE15 ((uint32_t)14U)
174 
175 #define ICSS_EMAC_QUEUE16 ((uint32_t)15U)
176 
177 #define ICSS_EMAC_COLQUEUE ((uint32_t)16U)
178 
180 #ifdef BUILD_HSR_PRP_MII
181 
182 #define ICSS_EMAC_SET_TX_OCCUPIED (1U)
183 
184 #define ICSS_EMAC_CLR_TX_OCCUPIED (0U)
185 
186 #define ICSS_EMAC_SCAN_PORT1_HIGH_FIRST (0U)
187 
188 #define ICSS_EMAC_SCAN_PORT2_HIGH_FIRST (1U)
189 #endif
190 
191 #define ICSS_EMAC_NUMQUEUES ((uint32_t)17U)
192 
200 #define ICSS_EMAC_SWITCH_ERROR_BASE ((uint32_t)0x21Fu)
201 
202 #define ICSS_EMAC_SWITCH_ERROR_CODE (ICSS_EMAC_SWITCH_ERROR_BASE)
203 
204 #define ICSS_EMAC_SWITCH_ERROR_INFO (ICSS_EMAC_SWITCH_ERROR_CODE)
205 
206 #define ICSS_EMAC_SWITCH_ERROR_WARNING (ICSS_EMAC_SWITCH_ERROR_CODE | 0x1000u)
207 
208 #define ICSS_EMAC_SWITCH_ERROR_MINOR (ICSS_EMAC_SWITCH_ERROR_CODE | 0x2000u)
209 
210 #define ICSS_EMAC_SWITCH_ERROR_MAJOR (ICSS_EMAC_SWITCH_ERROR_CODE | 0x3000u)
211 
212 #define ICSS_EMAC_SWITCH_ERROR_CRITICAL (ICSS_EMAC_SWITCH_ERROR_CODE | 0x4000u)
213 
215 #define ICSS_EMAC_SWITCH_SUCCESS (0u)
216 
217 #define ICSS_EMAC_PORT1_TX_ERROR_MASK (0xFFFFu)
218 
219 #define ICSS_EMAC_PORT2_TX_ERROR_MASK (0xFFFF0000u)
220 
223 #define ICSS_EMAC_ERR_DEV_NOT_INSTANTIATED (ICSS_EMAC_SWITCH_ERROR_MAJOR + 1u)
224 
225 #define ICSS_EMAC_ERR_SWITCH_INVALID_PARAM (ICSS_EMAC_SWITCH_ERROR_MAJOR + 2u)
226 
227 #define ICSS_EMAC_ERR_CH_INVALID (ICSS_EMAC_SWITCH_ERROR_CRITICAL + 3u)
228 
229 #define ICSS_EMAC_ERR_CH_ALREADY_INIT (ICSS_EMAC_SWITCH_ERROR_MAJOR + 4u)
230 
231 #define ICSS_EMAC_ERR_TX_CH_ALREADY_CLOSED (ICSS_EMAC_SWITCH_ERROR_MAJOR + 5u)
232 
233 #define ICSS_EMAC_ERR_TX_CH_NOT_OPEN (ICSS_EMAC_SWITCH_ERROR_MAJOR + 6u)
234 
235 #define ICSS_EMAC_ERR_TX_NO_LINK (ICSS_EMAC_SWITCH_ERROR_MAJOR + 7u)
236 
237 #define ICSS_EMAC_ERR_TX_OUT_OF_BD (ICSS_EMAC_SWITCH_ERROR_MAJOR + 8u)
238 
239 #define ICSS_EMAC_ERR_RX_CH_INVALID (ICSS_EMAC_SWITCH_ERROR_CRITICAL + 9u)
240 
241 #define ICSS_EMAC_ERR_RX_CH_ALREADY_INIT (ICSS_EMAC_SWITCH_ERROR_MAJOR + 10u)
242 
243 #define ICSS_EMAC_ERR_RX_CH_ALREADY_CLOSED (ICSS_EMAC_SWITCH_ERROR_MAJOR + 11u)
244 
245 #define ICSS_EMAC_ERR_RX_CH_NOT_OPEN (ICSS_EMAC_SWITCH_ERROR_MAJOR + 12u)
246 
247 #define ICSS_EMAC_ERR_DEV_ALREADY_CREATED (ICSS_EMAC_SWITCH_ERROR_MAJOR + 13u)
248 
249 #define ICSS_EMAC_ERR_DEV_NOT_OPEN (ICSS_EMAC_SWITCH_ERROR_MAJOR + 14u)
250 
251 #define ICSS_EMAC_ERR_DEV_ALREADY_CLOSED (ICSS_EMAC_SWITCH_ERROR_MAJOR + 15u)
252 
253 #define ICSS_EMAC_ERR_DEV_ALREADY_OPEN (ICSS_EMAC_SWITCH_ERROR_MAJOR + 16u)
254 
255 #define ICSS_EMAC_ERR_RX_BUFFER_ALLOC_FAIL (ICSS_EMAC_SWITCH_ERROR_CRITICAL + 17u)
256 
257 #define ICSS_EMAC_SWITCH_INTERNAL_FAILURE (ICSS_EMAC_SWITCH_ERROR_MAJOR + 18u)
258 
259 #define ICSS_EMAC_SWITCH_VLAN_UNAWARE_MODE (ICSS_EMAC_SWITCH_ERROR_MAJOR + 19u)
260 
261 #define ICSS_EMAC_SWITCH_ALE_TABLE_FULL (ICSS_EMAC_SWITCH_ERROR_MAJOR + 20u)
262 
263 #define ICSS_EMAC_SWITCH_ADDR_NOTFOUND (ICSS_EMAC_SWITCH_ERROR_MAJOR + 21u)
264 
265 #define ICSS_EMAC_SWITCH_INVALID_VLANID (ICSS_EMAC_SWITCH_ERROR_MAJOR + 22u)
266 
267 #define ICSS_EMAC_SWITCH_INVALID_PORT (ICSS_EMAC_SWITCH_ERROR_MAJOR + 23u)
268 
269 #define ICSS_EMAC_SWITCH_BD_ALLOC_FAIL (ICSS_EMAC_SWITCH_ERROR_MAJOR + 24u)
270 
271 #define ICSS_EMAC_ERR_BADPACKET (ICSS_EMAC_SWITCH_ERROR_MAJOR + 25u)
272 
273 #define ICSS_EMAC_ERR_COLLISION_FAIL (ICSS_EMAC_SWITCH_ERROR_MAJOR + 26u)
274 
275 #define ICSS_EMAC_ERR_MACFATAL (ICSS_EMAC_SWITCH_ERROR_CRITICAL + 26u)
276 
279 #define ICSS_EMAC_MAXMTU (1518U)
280 
281 #define ICSS_EMAC_MINMTU (14U)
282 
286 #define ICSS_EMAC_PORT_0 (0)
287 
291 #define ICSS_EMAC_PORT_1 (1U)
292 
296 #define ICSS_EMAC_PORT_2 (2U)
297 
301 #define ICSS_EMAC_IOCTL_PORT_CTRL_DISABLE (0u)
302 
304 #define ICSS_EMAC_IOCTL_PORT_CTRL_ENABLE (1u)
305 
313 #define ICSS_EMAC_STORM_PREV_CTRL_ENABLE (0u)
314 
315 #define ICSS_EMAC_STORM_PREV_CTRL_DISABLE (1u)
316 
317 #define ICSS_EMAC_STORM_PREV_CTRL_SET_CREDITS (2u)
318 
319 #define ICSS_EMAC_STORM_PREV_CTRL_INIT (3u)
320 
321 #define ICSS_EMAC_STORM_PREV_CTRL_RESET (4u)
322 
323 #define ICSS_EMAC_STORM_PREV_CTRL_ENABLE_BC (5u)
324 
325 #define ICSS_EMAC_STORM_PREV_CTRL_DISABLE_BC (6u)
326 
327 #define ICSS_EMAC_STORM_PREV_CTRL_SET_CREDITS_BC (7u)
328 
329 #define ICSS_EMAC_STORM_PREV_CTRL_INIT_BC (8u)
330 
331 #define ICSS_EMAC_STORM_PREV_CTRL_RESET_BC (9u)
332 
333 #define ICSS_EMAC_STORM_PREV_CTRL_ENABLE_MC (10u)
334 
335 #define ICSS_EMAC_STORM_PREV_CTRL_DISABLE_MC (11u)
336 
337 #define ICSS_EMAC_STORM_PREV_CTRL_SET_CREDITS_MC (12u)
338 
339 #define ICSS_EMAC_STORM_PREV_CTRL_INIT_MC (13u)
340 
341 #define ICSS_EMAC_STORM_PREV_CTRL_RESET_MC (14u)
342 
343 #define ICSS_EMAC_STORM_PREV_CTRL_ENABLE_UC (15u)
344 
345 #define ICSS_EMAC_STORM_PREV_CTRL_DISABLE_UC (16u)
346 
347 #define ICSS_EMAC_STORM_PREV_CTRL_SET_CREDITS_UC (17u)
348 
349 #define ICSS_EMAC_STORM_PREV_CTRL_INIT_UC (18u)
350 
351 #define ICSS_EMAC_STORM_PREV_CTRL_RESET_UC (19u)
352 
361 #define ICSS_EMAC_LEARN_CTRL_UPDATE_TABLE (0u)
362 
363 #define ICSS_EMAC_LEARN_CTRL_CLR_TABLE (1u)
364 
365 #define ICSS_EMAC_LEARN_CTRL_AGEING (2u)
366 
367 #define ICSS_EMAC_LEARN_CTRL_FIND_MAC (3u)
368 
369 #define ICSS_EMAC_LEARN_CTRL_REMOVE_MAC (4u)
370 
371 #define ICSS_EMAC_LEARN_CTRL_INC_COUNTER (5u)
372 
373 #define ICSS_EMAC_LEARN_CTRL_INIT_TABLE (6u)
374 
375 #define ICSS_EMAC_LEARN_CTRL_SET_PORTSTATE (7u)
376 
385 #define ICSS_EMAC_IOCTL_STAT_CTRL_GET (0u)
386 
387 #define ICSS_EMAC_IOCTL_STAT_CTRL_CLEAR (1u)
388 
397 #define ICSS_EMAC_IOCTL_PORT_CTRL (0u)
398 
399 #define ICSS_EMAC_IOCTL_LEARNING_CTRL (1u)
400 
401 #define ICSS_EMAC_IOCTL_STORM_PREV_CTRL (2u)
402 
403 #define ICSS_EMAC_IOCTL_STATS_CTRL (3u)
404 
405 #define ICSS_EMAC_IOCTL_PROMISCUOUS_CTRL (4u)
406 
407 #define ICSS_EMAC_IOCTL_MULTICAST_FILTER_CTRL (5u)
408 
409 #define ICSS_EMAC_IOCTL_VLAN_FILTER_CTRL (6u)
410 
411 #define ICSS_EMAC_IOCTL_PORT_FLUSH_CTRL (7u)
412 
413 #define ICSS_EMAC_IOCTL_SPECIAL_UNICAST_MAC_CTRL (8u)
414 
423 #define ICSS_EMAC_IOCTL_MULTICAST_FILTER_CTRL_ENABLE (0u)
424 
425 #define ICSS_EMAC_IOCTL_MULTICAST_FILTER_CTRL_DISABLE (1u)
426 
427 #define ICSS_EMAC_IOCTL_MULTICAST_FILTER_CTRL_OVERRIDE_HASHMASK (2u)
428 
429 #define ICSS_EMAC_IOCTL_MULTICAST_FILTER_CTRL_ADD_MACID (3u)
430 
431 #define ICSS_EMAC_IOCTL_MULTICAST_FILTER_CTRL_REMOVE_MACID (4u)
432 
433 #define ICSS_EMAC_IOCTL_MULTICAST_FILTER_CTRL_GET_DROPPED (5u)
434 
443 #define ICSS_EMAC_IOCTL_VLAN_FILTER_CTRL_ENABLE_CMD (0u)
444 
445 #define ICSS_EMAC_IOCTL_VLAN_FILTER_CTRL_DISABLE_CMD (1u)
446 
447 #define ICSS_EMAC_IOCTL_VLAN_FILTER_CTRL_UNTAG_HOST_RCV_ALL_CMD (2u)
448 
449 #define ICSS_EMAC_IOCTL_VLAN_FILTER_CTRL_UNTAG_HOST_RCV_NAL_CMD (3u)
450 
451 #define ICSS_EMAC_IOCTL_VLAN_FILTER_CTRL_PRIOTAG_HOST_RCV_ALL_CMD (4u)
452 
453 #define ICSS_EMAC_IOCTL_VLAN_FILTER_CTRL_PRIOTAG_HOST_RCV_NAL_CMD (5u)
454 
455 #define ICSS_EMAC_IOCTL_VLAN_FILTER_CTRL_ADD_VID_CMD (6u)
456 
457 #define ICSS_EMAC_IOCTL_VLAN_FILTER_CTRL_REMOVE_VID_CMD (7u)
458 
467 #define ICSS_EMAC_IOCTL_SPECIAL_UNICAST_MAC_CTRL_DISABLE_CMD (0u)
468 
469 #define ICSS_EMAC_IOCTL_SPECIAL_UNICAST_MAC_CTRL_ENABLE_CMD (1u)
470 
476 #define ICSS_EMAC_LEARNING_PORT_STATE_LEARNING (0U)
477 #define ICSS_EMAC_LEARNING_PORT_STATE_NOT_LEARNING (1U)
478 #define ICSS_EMAC_LEARNING_PORT_STATE_LOCKED (2U)
479 
480 #define ICSS_EMAC_OBJECT_SIZE_IN_BYTES (42000)
481 
482 #ifdef BUILD_HSR_PRP_MII
483 
484 #define ICSS_EMAC_BD_FDB_LOOKUP_SUCCESS_MASK ((uint32_t)0x00000040U)
485 
487 #define ICSS_EMAC_BD_FDB_LOOKUP_SUCCESS_SHIFT ((uint32_t)6U)
488 
490 #define ICSS_EMAC_BD_FW_FLOOD_MASK ((uint32_t)0x00000080U)
491 
493 #define ICSS_EMAC_BD_FW_FLOOD_SHIFT ((uint32_t)7U)
494 #endif
495 
498 typedef struct ICSS_EMAC_Config_s *ICSS_EMAC_Handle;
499 
506 typedef int32_t (*ICSS_EMAC_CallBack)(void *arg0, void *arg1, void *arg2);
507 
508 /* ========================================================================== */
509 /* Structure Declarations */
510 /* ========================================================================== */
511 
516 typedef struct ICSS_EMAC_FwStaticMmap_s
517 {
518  uint32_t versionOffset;
519  uint32_t version2Offset;
520  uint32_t featureOffset;
522  uint32_t statisticsOffset;
523  uint32_t statisticsSize;
525  uint32_t phySpeedOffset;
526  uint32_t portStatusOffset;
527  uint32_t portControlAddr;
528  uint32_t portMacAddr;
532  uint32_t p0QueueDescOffset;
536  uint32_t colStatusAddr;
541 
545 typedef struct ICSS_EMAC_FwDynamicMmap_s
546 {
547  uint32_t queueSizeOffset;
548  uint32_t queueOffset;
550  uint32_t txQueueSize[ICSS_EMAC_NUMQUEUES-1U];
551  uint32_t rxHostQueueSize[ICSS_EMAC_NUMQUEUES - 1U];
555  uint32_t p0Q1BufferOffset;
557  uint32_t p0ColBufferOffset;
562  uint32_t numQueues;
564 
568 typedef struct ICSS_EMAC_FwVlanFilterParams_s
569 {
571  uint32_t ctrlEnableBit;
575  uint32_t vidMaxValue;
577 
581 typedef struct ICSS_EMAC_FwMulticastFilterParams_s
582 {
583  uint32_t ctrlOffset;
584  uint32_t maskSizeBytes;
585  uint32_t maskInitVal;
586  uint32_t maskOffset;
588  uint32_t tableOffset;
596 
597 /*
598 * \brief ICSS EMAC Init Configuration Structure
599 */
600 typedef struct ICSS_EMAC_Attrs_s
601 {
602  uint8_t emacMode;
622  uint8_t intrPacingMode;
626  uint16_t pacingThreshold;
628  uint8_t ethPrioQueue;
633  uint8_t learningEnable;
637  uint8_t portMask;
649  uint32_t linkIntNum;
650  /* Link interrupt number on R5F*/
651  uint32_t rxIntNum;
652  /* Receive Packet interrupt number on R5F*/
653  uint32_t txIntNum;
654  /* Transmit completion interrupt number on R5F.
655  Valid only if txInterruptEnable is set to 1 */
656  uint32_t l3OcmcBaseAddr;
658  uint32_t l3OcmcSize;
662  uint32_t rxTaskPriority;
664  uint32_t txTaskPriority;
666  uint32_t splitQueue;
672 #ifdef BUILD_HSR_PRP_MII
673  uint8_t pktPriority;
676  int8_t txOccupied;
678  uint8_t pingPong;
679 #endif
681 
685 typedef struct ICSS_EMAC_InternalObject_t
686 {
687  uint32_t reserved[ICSS_EMAC_OBJECT_SIZE_IN_BYTES/sizeof(uint32_t)];
690 
695 typedef struct ICSS_EMAC_Config_s
696 {
697  void *object;
702 
710 typedef struct ICSS_EMAC_CallBackConfig_s
711 {
714  void *userArg;
717 
725 typedef struct ICSS_EMAC_CallBackObject_s
726 {
752 
763 typedef struct ICSS_EMAC_Params_s
764 {
784  uint8_t macId[6];
789 
794 typedef struct ICSS_EMAC_RxArgument_s
795 {
798  uint32_t destAddress;
800  uint8_t queueNumber;
802  uint8_t port;
804  uint32_t more;
806 #ifdef BUILD_HSR_PRP_MII
807  uint32_t host_recv_flag;
808  /*Returns the packet flag whether it is valid for host or not */
809 #endif
811 
816 typedef struct ICSS_EMAC_TxArgument_s
817 {
820  const uint8_t *srcAddress;
822  uint8_t portNumber;
824  uint8_t queuePriority;
826  uint16_t lengthOfPacket;
829 
833 typedef struct ICSS_EMAC_IoctlCmd_s
834 {
835  uint8_t command;
836  void *ioctlVal;
838 
843 typedef struct ICSS_EMAC_PruStatistics_s
844 {
845 /* The fields here are aligned here so that it's consistent
846  with the memory layout in PRU DRAM, this is to facilitate easy
847  memcpy or DMA transfer. Don't change the order of fields without
848  modifying the order of fields in PRU DRAM. For details refer to guide
849 */
850  volatile uint32_t txBcast;
851  volatile uint32_t txMcast;
852  volatile uint32_t txUcast;
853  volatile uint32_t txOctets;
855  volatile uint32_t rxBcast;
856  volatile uint32_t rxMcast;
857  volatile uint32_t rxUcast;
858  volatile uint32_t rxOctets;
860  volatile uint32_t tx64byte;
861  volatile uint32_t tx65_127byte;
862  volatile uint32_t tx128_255byte;
863  volatile uint32_t tx256_511byte;
864  volatile uint32_t tx512_1023byte;
865  volatile uint32_t tx1024byte;
867  volatile uint32_t rx64byte;
868  volatile uint32_t rx65_127byte;
869  volatile uint32_t rx128_255byte;
870  volatile uint32_t rx256_511byte;
871  volatile uint32_t rx512_1023byte;
872  volatile uint32_t rx1024byte;
874  volatile uint32_t lateColl;
875  volatile uint32_t singleColl;
876  volatile uint32_t multiColl;
877  volatile uint32_t excessColl;
879  volatile uint32_t rxMisAlignmentFrames;
880  volatile uint32_t stormPrevCounter;
881  volatile uint32_t stormPrevCounterMC;
882  volatile uint32_t stormPrevCounterUC;
883  volatile uint32_t macRxError;
885  volatile uint32_t SFDError;
886  volatile uint32_t defTx;
887  volatile uint32_t macTxError;
888  volatile uint32_t rxOverSizedFrames;
889  volatile uint32_t rxUnderSizedFrames;
890  volatile uint32_t rxCRCFrames;
892  volatile uint32_t droppedPackets;
893 /* Debug variables, these are not part of standard MIB. Useful for debugging */
894 /* Reserved for future Use */
895  volatile uint32_t txOverFlow;
896  volatile uint32_t txUnderFlow;
897  volatile uint32_t sqeTestError;
898  volatile uint32_t TXqueueLevel;
899  volatile uint32_t CSError;
901 /* ========================================================================== */
902 /* Function Declarations */
903 /* ========================================================================== */
904 
908 void ICSS_EMAC_init(void);
909 
913 void ICSS_EMAC_deinit(void);
914 
921 
930 ICSS_EMAC_Handle ICSS_EMAC_open(uint32_t idx, const ICSS_EMAC_Params *params);
931 
938 void ICSS_EMAC_close(ICSS_EMAC_Handle icssEmacHandle);
939 
967 int32_t ICSS_EMAC_ioctl(ICSS_EMAC_Handle icssEmacHandle,
968  uint32_t ioctlCommand,
969  uint8_t portNo,
970  void *ioctlParams);
971 
985 int32_t ICSS_EMAC_rxPktGet(ICSS_EMAC_RxArgument *rxArg, void *userArg);
986 
999 int32_t ICSS_EMAC_rxPktInfo(ICSS_EMAC_Handle icssEmacHandle,
1000  int32_t *portNumber,
1001  int32_t *queueNumber);
1002 
1024 int32_t ICSS_EMAC_txPacket(const ICSS_EMAC_TxArgument *txArg, void *userArg);
1025 
1026 /* ========================================================================== */
1027 /* Global Variables */
1028 /* ========================================================================== */
1029 
1030 #ifdef __cplusplus
1031 }
1032 #endif
1033 
1036 #endif /* #ifndef ICSS_EMAC_H_ */
ICSS_EMAC_PruStatistics::tx128_255byte
volatile uint32_t tx128_255byte
Definition: icss_emac.h:862
ICSS_EMAC_Attrs::portMask
uint8_t portMask
Definition: icss_emac.h:637
ICSS_EMAC_Attrs::hostQueueIsolationMode
uint8_t hostQueueIsolationMode
Definition: icss_emac.h:668
ICSS_EMAC_FwDynamicMmap::p0ColBufferOffset
uint32_t p0ColBufferOffset
Definition: icss_emac.h:557
ICSS_EMAC_Attrs::intrPacingMode
uint8_t intrPacingMode
Definition: icss_emac.h:622
ICSS_EMAC_FwStaticMmap::p0ColQueueDescOffset
uint32_t p0ColQueueDescOffset
Definition: icss_emac.h:533
ICSS_EMAC_Attrs::rxTaskPriority
uint32_t rxTaskPriority
Definition: icss_emac.h:662
ICSS_EMAC_TxArgument
Tx packet processing information block that needs to passed into call to ICSS_EMAC_txPacket.
Definition: icss_emac.h:817
ICSS_EMAC_CallBackObject::rxNRTCallBack
ICSS_EMAC_CallBackConfig rxNRTCallBack
Definition: icss_emac.h:731
ICSS_EMAC_Handle
struct ICSS_EMAC_Config_s * ICSS_EMAC_Handle
Alias for ICSS EMAC Handle containing base addresses and modules.
Definition: icss_emac.h:498
ICSS_EMAC_FwStaticMmap::portMacAddr
uint32_t portMacAddr
Definition: icss_emac.h:528
ICSS_EMAC_PruStatistics::rxBcast
volatile uint32_t rxBcast
Definition: icss_emac.h:855
ICSS_EMAC_PruStatistics::defTx
volatile uint32_t defTx
Definition: icss_emac.h:886
ICSS_EMAC_Attrs::learningEnable
uint8_t learningEnable
Definition: icss_emac.h:633
ICSS_EMAC_RxArgument
Rx packet processing information block that needs to passed into call to ICSS_EMAC_RxPktGet.
Definition: icss_emac.h:795
ICSS_EMAC_PruStatistics::rxUcast
volatile uint32_t rxUcast
Definition: icss_emac.h:857
ICSS_EMAC_PruStatistics::TXqueueLevel
volatile uint32_t TXqueueLevel
Definition: icss_emac.h:898
ICSS_EMAC_FwStaticMmap::portStatusOffset
uint32_t portStatusOffset
Definition: icss_emac.h:526
ICSS_EMAC_PruStatistics::droppedPackets
volatile uint32_t droppedPackets
Definition: icss_emac.h:892
ICSS_EMAC_FwDynamicMmap::p1Q1SwitchTxContextOffset
uint32_t p1Q1SwitchTxContextOffset
Definition: icss_emac.h:559
ICSS_EMAC_RxArgument::queueNumber
uint8_t queueNumber
Definition: icss_emac.h:800
ICSS_EMAC_FwStaticMmap::p0QueueDescOffset
uint32_t p0QueueDescOffset
Definition: icss_emac.h:532
ICSS_EMAC_txPacket
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.
ICSS_EMAC_RxArgument::port
uint8_t port
Definition: icss_emac.h:802
SystemP.h
ICSS_EMAC_Attrs::l3OcmcBaseAddr
uint32_t l3OcmcBaseAddr
Definition: icss_emac.h:656
ICSS_EMAC_FwDynamicMmap::p0ColBufferDescOffset
uint32_t p0ColBufferDescOffset
Definition: icss_emac.h:554
ICSS_EMAC_Params_init
void ICSS_EMAC_Params_init(ICSS_EMAC_Params *params)
Initialize the parmeters data structure with defaults.
ICSS_EMAC_FwVlanFilterParams::ctrlUntagHostRcvAllowBit
uint32_t ctrlUntagHostRcvAllowBit
Definition: icss_emac.h:572
ICSS_EMAC_NUMQUEUES
#define ICSS_EMAC_NUMQUEUES
Total Queues available.
Definition: icss_emac.h:191
ICSS_EMAC_FwMulticastFilterParams::overrideStatusOffset
uint32_t overrideStatusOffset
Definition: icss_emac.h:587
ICSS_EMAC_FwStaticMmap::stormPreventionOffsetBC
uint32_t stormPreventionOffsetBC
Definition: icss_emac.h:524
ICSS_EMAC_PruStatistics::rxUnderSizedFrames
volatile uint32_t rxUnderSizedFrames
Definition: icss_emac.h:889
ICSS_EMAC_ioctl
int32_t ICSS_EMAC_ioctl(ICSS_EMAC_Handle icssEmacHandle, uint32_t ioctlCommand, uint8_t portNo, void *ioctlParams)
IOCTL Function for ICSS EMAC.
ICSS_EMAC_PruStatistics::tx64byte
volatile uint32_t tx64byte
Definition: icss_emac.h:860
ICSS_EMAC_Attrs::l3OcmcSize
uint32_t l3OcmcSize
Definition: icss_emac.h:658
ICSS_EMAC_FwDynamicMmap::collisionQueueSize
uint32_t collisionQueueSize
Definition: icss_emac.h:552
ICSS_EMAC_FwDynamicMmap::hostQ1RxContextOffset
uint32_t hostQ1RxContextOffset
Definition: icss_emac.h:558
ICSS_EMAC_Attrs::txInterruptEnable
uint8_t txInterruptEnable
Definition: icss_emac.h:642
pruicss.h
ICSS_EMAC_RxArgument::more
uint32_t more
Definition: icss_emac.h:804
ICSS_EMAC_Attrs::txIntNum
uint32_t txIntNum
Definition: icss_emac.h:653
ICSS_EMAC_OBJECT_SIZE_IN_BYTES
#define ICSS_EMAC_OBJECT_SIZE_IN_BYTES
Definition: icss_emac.h:480
ICSS_EMAC_CallBackObject::learningExCallBack
ICSS_EMAC_CallBackConfig learningExCallBack
Definition: icss_emac.h:741
ICSS_EMAC_FwDynamicMmap::transmitQueuesBufferOffset
uint32_t transmitQueuesBufferOffset
Definition: icss_emac.h:556
ICSS_EMAC_Attrs::pacingThreshold
uint16_t pacingThreshold
Definition: icss_emac.h:626
ICSS_EMAC_PruStatistics::rxOctets
volatile uint32_t rxOctets
Definition: icss_emac.h:858
ICSS_EMAC_TxArgument::lengthOfPacket
uint16_t lengthOfPacket
Definition: icss_emac.h:826
ICSS_EMAC_TxArgument::portNumber
uint8_t portNumber
Definition: icss_emac.h:822
ICSS_EMAC_FwMulticastFilterParams::maskInitVal
uint32_t maskInitVal
Definition: icss_emac.h:585
ICSS_EMAC_PruStatistics::rx512_1023byte
volatile uint32_t rx512_1023byte
Definition: icss_emac.h:871
ICSS_EMAC_FwStaticMmap::emacTtsConfigBaseOffset
uint32_t emacTtsConfigBaseOffset
Definition: icss_emac.h:534
ICSS_EMAC_PruStatistics::sqeTestError
volatile uint32_t sqeTestError
Definition: icss_emac.h:897
ICSS_EMAC_PruStatistics::singleColl
volatile uint32_t singleColl
Definition: icss_emac.h:875
ICSS_EMAC_PruStatistics::macRxError
volatile uint32_t macRxError
Definition: icss_emac.h:883
ICSS_EMAC_FwDynamicMmap::p0Q1BufferDescOffset
uint32_t p0Q1BufferDescOffset
Definition: icss_emac.h:553
ICSS_EMAC_init
void ICSS_EMAC_init(void)
This function initializes the ICSS_EMAC module.
ICSS_EMAC_FwMulticastFilterParams::ctrlOffset
uint32_t ctrlOffset
Definition: icss_emac.h:583
ICSS_EMAC_FwDynamicMmap
ICSS EMAC Dynamic Firmware Memory Map offsets.
Definition: icss_emac.h:546
ICSS_EMAC_IoctlCmd::command
uint8_t command
Definition: icss_emac.h:835
ICSS_EMAC_CallBackObject::port0LinkCallBack
ICSS_EMAC_CallBackConfig port0LinkCallBack
Definition: icss_emac.h:727
ICSS_EMAC_Config::object
void * object
Definition: icss_emac.h:697
ICSS_EMAC_CallBack
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:506
ICSS_EMAC_PruStatistics::tx65_127byte
volatile uint32_t tx65_127byte
Definition: icss_emac.h:861
ICSS_EMAC_PruStatistics::CSError
volatile uint32_t CSError
Definition: icss_emac.h:899
ICSS_EMAC_FwStaticMmap::specialUnicastMACAddressFeatureEnableOffset
uint32_t specialUnicastMACAddressFeatureEnableOffset
Definition: icss_emac.h:539
ICSS_EMAC_FwVlanFilterParams::ctrlEnableBit
uint32_t ctrlEnableBit
Definition: icss_emac.h:571
ICSS_EMAC_FwStaticMmap::statisticsOffset
uint32_t statisticsOffset
Definition: icss_emac.h:522
ICSS_EMAC_FwVlanFilterParams::filterTableBaseAddress
uint32_t filterTableBaseAddress
Definition: icss_emac.h:574
ICSS_EMAC_Params::pruicssIntcInitData
const PRUICSS_IntcInitData * pruicssIntcInitData
Definition: icss_emac.h:767
ICSS_EMAC_FwStaticMmap::phySpeedOffset
uint32_t phySpeedOffset
Definition: icss_emac.h:525
ICSS_EMAC_IoctlCmd::ioctlVal
void * ioctlVal
Definition: icss_emac.h:836
ICSS_EMAC_FwMulticastFilterParams::hostRcvAllowedValue
uint32_t hostRcvAllowedValue
Definition: icss_emac.h:593
ICSS_EMAC_FwDynamicMmap::p0Q1BufferOffset
uint32_t p0Q1BufferOffset
Definition: icss_emac.h:555
ICSS_EMAC_PruStatistics::lateColl
volatile uint32_t lateColl
Definition: icss_emac.h:874
ICSS_EMAC_CallBackConfig::userArg
void * userArg
Definition: icss_emac.h:714
ICSS_EMAC_FwStaticMmap::colStatusAddr
uint32_t colStatusAddr
Definition: icss_emac.h:536
ICSS_EMAC_FwMulticastFilterParams::maskOverrideSetValue
uint32_t maskOverrideSetValue
Definition: icss_emac.h:591
ICSS_EMAC_FwStaticMmap::portControlAddr
uint32_t portControlAddr
Definition: icss_emac.h:527
ICSS_EMAC_FwStaticMmap::rxInterruptStatusOffset
uint32_t rxInterruptStatusOffset
Definition: icss_emac.h:529
ICSS_EMAC_PruStatistics::rx65_127byte
volatile uint32_t rx65_127byte
Definition: icss_emac.h:868
ICSS_EMAC_FwStaticMmap::stormPreventionOffsetUC
uint32_t stormPreventionOffsetUC
Definition: icss_emac.h:531
ICSS_EMAC_rxPktGet
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.
ICSS_EMAC_PruStatistics::rx64byte
volatile uint32_t rx64byte
Definition: icss_emac.h:867
ICSS_EMAC_FwMulticastFilterParams::maskOffset
uint32_t maskOffset
Definition: icss_emac.h:586
ICSS_EMAC_Attrs::emacMode
uint8_t emacMode
Definition: icss_emac.h:602
ICSS_EMAC_FwStaticMmap::futureFeatureOffset
uint32_t futureFeatureOffset
Definition: icss_emac.h:521
ICSS_EMAC_Attrs::portPrioritySelection
uint8_t portPrioritySelection
Definition: icss_emac.h:670
ICSS_EMAC_FwStaticMmap::versionOffset
uint32_t versionOffset
Definition: icss_emac.h:518
ICSS_EMAC_Params::fwDynamicMMap
ICSS_EMAC_FwDynamicMmap * fwDynamicMMap
Definition: icss_emac.h:771
ICSS_EMAC_PruStatistics::rxOverSizedFrames
volatile uint32_t rxOverSizedFrames
Definition: icss_emac.h:888
ICSS_EMAC_PruStatistics::multiColl
volatile uint32_t multiColl
Definition: icss_emac.h:876
ICSS_EMAC_FwVlanFilterParams::ctrlBitmapOffset
uint32_t ctrlBitmapOffset
Definition: icss_emac.h:570
ICSS_EMAC_Params::fwMulticastFilterParams
ICSS_EMAC_FwMulticastFilterParams * fwMulticastFilterParams
Definition: icss_emac.h:775
ICSS_EMAC_FwVlanFilterParams
ICSS EMAC VLAN Filtering Parameters.
Definition: icss_emac.h:569
ICSS_EMAC_PruStatistics::txOverFlow
volatile uint32_t txOverFlow
Definition: icss_emac.h:895
ICSS_EMAC_FwDynamicMmap::q1EmacTxContextOffset
uint32_t q1EmacTxContextOffset
Definition: icss_emac.h:561
ICSS_EMAC_open
ICSS_EMAC_Handle ICSS_EMAC_open(uint32_t idx, const ICSS_EMAC_Params *params)
API to initialize and configure ICSS in MAC/Switch Mode.
ICSS_EMAC_Attrs::txTaskPriority
uint32_t txTaskPriority
Definition: icss_emac.h:664
ICSS_EMAC_PruStatistics::txUcast
volatile uint32_t txUcast
Definition: icss_emac.h:852
ICSS_EMAC_PruStatistics
Statistics structure for capturing statistics on PRU.
Definition: icss_emac.h:844
ICSS_EMAC_PruStatistics::txUnderFlow
volatile uint32_t txUnderFlow
Definition: icss_emac.h:896
ICSS_EMAC_Attrs::ethPrioQueue
uint8_t ethPrioQueue
Definition: icss_emac.h:628
ICSS_EMAC_PruStatistics::rx1024byte
volatile uint32_t rx1024byte
Definition: icss_emac.h:872
ICSS_EMAC_PruStatistics::excessColl
volatile uint32_t excessColl
Definition: icss_emac.h:877
ICSS_EMAC_FwDynamicMmap::numQueues
uint32_t numQueues
Definition: icss_emac.h:562
ICSS_EMAC_FwStaticMmap::interfaceMacAddrOffset
uint32_t interfaceMacAddrOffset
Definition: icss_emac.h:535
ICSS_EMAC_CallBackObject::rxRTCallBack
ICSS_EMAC_CallBackConfig rxRTCallBack
Definition: icss_emac.h:735
ICSS_EMAC_CallBackObject::customRxCallBack
ICSS_EMAC_CallBackConfig customRxCallBack
Definition: icss_emac.h:747
ICSS_EMAC_FwMulticastFilterParams::tableOffset
uint32_t tableOffset
Definition: icss_emac.h:588
ICSS_EMAC_PruStatistics::rxCRCFrames
volatile uint32_t rxCRCFrames
Definition: icss_emac.h:890
ICSS_EMAC_TxArgument::srcAddress
const uint8_t * srcAddress
Definition: icss_emac.h:820
ICSS_EMAC_FwMulticastFilterParams::maskOverrideNotSetValue
uint32_t maskOverrideNotSetValue
Definition: icss_emac.h:592
ICSS_EMAC_PruStatistics::stormPrevCounter
volatile uint32_t stormPrevCounter
Definition: icss_emac.h:880
ICSS_EMAC_close
void ICSS_EMAC_close(ICSS_EMAC_Handle icssEmacHandle)
API to stop MAC/Switch Mode.
ICSS_EMAC_FwMulticastFilterParams::ctrlEnabledValue
uint32_t ctrlEnabledValue
Definition: icss_emac.h:589
ICSS_EMAC_CallBackObject::customTxCallBack
ICSS_EMAC_CallBackConfig customTxCallBack
Definition: icss_emac.h:743
ICSS_EMAC_Config::attrs
const ICSS_EMAC_Attrs * attrs
Definition: icss_emac.h:699
PRUICSS_IntcInitData
PRUICSS Interrupt controller initialisation data structure.
Definition: pruicss/m_v0/pruicss.h:265
ethphy.h
ICSS_EMAC_Attrs::linkIntNum
uint32_t linkIntNum
Definition: icss_emac.h:649
ICSS_EMAC_rxPktInfo
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...
ICSS_EMAC_PruStatistics::txOctets
volatile uint32_t txOctets
Definition: icss_emac.h:853
ICSS_EMAC_deinit
void ICSS_EMAC_deinit(void)
This function de-initializes the ICSS_EMAC module.
ICSS_EMAC_Attrs::phyToMacInterfaceMode
uint8_t phyToMacInterfaceMode
Definition: icss_emac.h:609
ICSS_EMAC_RxArgument::destAddress
uint32_t destAddress
Definition: icss_emac.h:798
ICSS_EMAC_FwMulticastFilterParams::maskSizeBytes
uint32_t maskSizeBytes
Definition: icss_emac.h:584
ICSS_EMAC_PruStatistics::rx256_511byte
volatile uint32_t rx256_511byte
Definition: icss_emac.h:870
ICSS_EMAC_PruStatistics::macTxError
volatile uint32_t macTxError
Definition: icss_emac.h:887
ICSS_EMAC_Attrs::halfDuplexEnable
uint8_t halfDuplexEnable
Definition: icss_emac.h:613
ICSS_EMAC_PruStatistics::SFDError
volatile uint32_t SFDError
Definition: icss_emac.h:885
ICSS_EMAC_FwStaticMmap::featureOffset
uint32_t featureOffset
Definition: icss_emac.h:520
ICSS_EMAC_FwVlanFilterParams::vidMaxValue
uint32_t vidMaxValue
Definition: icss_emac.h:575
ICSS_EMAC_Attrs::splitQueue
uint32_t splitQueue
Definition: icss_emac.h:666
ICSS_EMAC_PruStatistics::stormPrevCounterMC
volatile uint32_t stormPrevCounterMC
Definition: icss_emac.h:881
ICSS_EMAC_Attrs::linkTaskPriority
uint32_t linkTaskPriority
Definition: icss_emac.h:660
ICSS_EMAC_CallBackObject
Different callbacks which can be registered. While calling the function set in ICSS_EMAC_CallBack,...
Definition: icss_emac.h:726
ICSS_EMAC_FwMulticastFilterParams::hostRcvNotAllowedValue
uint32_t hostRcvNotAllowedValue
Definition: icss_emac.h:594
ICSS_EMAC_FwDynamicMmap::queueSizeOffset
uint32_t queueSizeOffset
Definition: icss_emac.h:547
ICSS_EMAC_PruStatistics::rxMisAlignmentFrames
volatile uint32_t rxMisAlignmentFrames
Definition: icss_emac.h:879
ICSS_EMAC_FwVlanFilterParams::ctrlPriotagHostRcvAllowBit
uint32_t ctrlPriotagHostRcvAllowBit
Definition: icss_emac.h:573
ICSS_EMAC_PruStatistics::txBcast
volatile uint32_t txBcast
Definition: icss_emac.h:850
ICSS_EMAC_PruStatistics::txMcast
volatile uint32_t txMcast
Definition: icss_emac.h:851
ICSS_EMAC_Attrs::enableIntrPacing
uint8_t enableIntrPacing
Definition: icss_emac.h:618
ICSS_EMAC_FwStaticMmap
ICSS EMAC Static Firmware Memory Map offsets. These are offsets for PRU0 and PRU1 DRAM memory.
Definition: icss_emac.h:517
ICSS_EMAC_InternalObject
Opaque ICSS EMAC driver object.
Definition: icss_emac.h:686
ICSS_EMAC_CallBackObject::txCallBack
ICSS_EMAC_CallBackConfig txCallBack
Definition: icss_emac.h:739
ICSS_EMAC_FwMulticastFilterParams::ctrlDisabledValue
uint32_t ctrlDisabledValue
Definition: icss_emac.h:590
ICSS_EMAC_CallBackConfig::callBack
ICSS_EMAC_CallBack callBack
Definition: icss_emac.h:712
ICSS_EMAC_Attrs
Definition: icss_emac.h:601
ICSS_EMAC_PruStatistics::stormPrevCounterUC
volatile uint32_t stormPrevCounterUC
Definition: icss_emac.h:882
ICSS_EMAC_FwMulticastFilterParams
ICSS EMAC Multicast Filtering Parameters.
Definition: icss_emac.h:582
ICSS_EMAC_PruStatistics::tx256_511byte
volatile uint32_t tx256_511byte
Definition: icss_emac.h:863
ICSS_EMAC_Params
ICSS_EMAC Parameters.
Definition: icss_emac.h:764
ICSS_EMAC_PruStatistics::rx128_255byte
volatile uint32_t rx128_255byte
Definition: icss_emac.h:869
ICSS_EMAC_Attrs::rxIntNum
uint32_t rxIntNum
Definition: icss_emac.h:651
ICSS_EMAC_CallBackConfig
Generic callback configuration for protocol specific callbacks. ICSS_EMAC_CallBack is the function ...
Definition: icss_emac.h:711
ICSS_EMAC_FwStaticMmap::version2Offset
uint32_t version2Offset
Definition: icss_emac.h:519
ETHPHY_Handle
void * ETHPHY_Handle
Handle to the ETHPHY driver returned by ETHPHY_open()
Definition: ethphy.h:173
ICSS_EMAC_IoctlCmd
IOCTL command members for configuring switch/EMAC.
Definition: icss_emac.h:834
ICSS_EMAC_Params::enableHostQueueIsolation
uint8_t enableHostQueueIsolation
Definition: icss_emac.h:786
ICSS_EMAC_Params::callBackObject
ICSS_EMAC_CallBackObject callBackObject
Definition: icss_emac.h:777
ICSS_EMAC_FwStaticMmap::specialUnicastMACAddrOffset
uint32_t specialUnicastMACAddrOffset
Definition: icss_emac.h:538
ICSS_EMAC_PruStatistics::tx512_1023byte
volatile uint32_t tx512_1023byte
Definition: icss_emac.h:864
ICSS_EMAC_FwDynamicMmap::queueOffset
uint32_t queueOffset
Definition: icss_emac.h:548
ICSS_EMAC_Params::pruicssHandle
PRUICSS_Handle pruicssHandle
Definition: icss_emac.h:765
ICSS_EMAC_FwStaticMmap::stormPreventionOffsetMC
uint32_t stormPreventionOffsetMC
Definition: icss_emac.h:530
PRUICSS_Handle
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/m_v0/pruicss.h:226
ICSS_EMAC_CallBackObject::port1LinkCallBack
ICSS_EMAC_CallBackConfig port1LinkCallBack
Definition: icss_emac.h:729
ICSS_EMAC_FwStaticMmap::promiscuousModeOffset
uint32_t promiscuousModeOffset
Definition: icss_emac.h:537
ICSS_EMAC_TxArgument::icssEmacHandle
ICSS_EMAC_Handle icssEmacHandle
Definition: icss_emac.h:818
ICSS_EMAC_FwStaticMmap::statisticsSize
uint32_t statisticsSize
Definition: icss_emac.h:523
ICSS_EMAC_TxArgument::queuePriority
uint8_t queuePriority
Definition: icss_emac.h:824
ICSS_EMAC_PruStatistics::rxMcast
volatile uint32_t rxMcast
Definition: icss_emac.h:856
ICSS_EMAC_FwDynamicMmap::portQueueDescOffset
uint32_t portQueueDescOffset
Definition: icss_emac.h:560
ICSS_EMAC_PruStatistics::tx1024byte
volatile uint32_t tx1024byte
Definition: icss_emac.h:865
ICSS_EMAC_Params::fwStaticMMap
ICSS_EMAC_FwStaticMmap * fwStaticMMap
Definition: icss_emac.h:769
ICSS_EMAC_MAX_PORTS_PER_INSTANCE
#define ICSS_EMAC_MAX_PORTS_PER_INSTANCE
Maximum number of Ports in a single ICSS
Definition: icss_emac.h:66
ICSS_EMAC_Params::fwVlanFilterParams
ICSS_EMAC_FwVlanFilterParams * fwVlanFilterParams
Definition: icss_emac.h:773
ICSS_EMAC_FwDynamicMmap::queueDescriptorOffset
uint32_t queueDescriptorOffset
Definition: icss_emac.h:549
ICSS_EMAC_Config
Base EMAC handle containing pointers to all modules required for driver to work.
Definition: icss_emac.h:696
ICSS_EMAC_RxArgument::icssEmacHandle
ICSS_EMAC_Handle icssEmacHandle
Definition: icss_emac.h:796