AM243x INDUSTRIAL COMMUNICATIONS SDK  09.02.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 
75 #define ICSS_EMAC_MODE_MAC1 (1U)
76 
77 #define ICSS_EMAC_MODE_MAC2 (2U)
78 
79 #define ICSS_EMAC_MODE_SWITCH (3U)
80 
81 #define ICSS_EMAC_MODE_DUALMAC (4U)
82 
91 #define ICSS_EMAC_MII_MODE (0U)
92 
93 #define ICSS_EMAC_RGMII_MODE (1U)
94 
103 #define ICSS_EMAC_LEARNING_DISABLE (0U)
104 
105 #define ICSS_EMAC_LEARNING_ENABLE (1U)
106 
115 #define ICSS_EMAC_ENABLE_PACING (0)
116 
117 #define ICSS_EMAC_DISABLE_PACING (1)
118 
127 #define ICSS_EMAC_INTR_PACING_MODE1 (0)
128 
137 #define ICSS_EMAC_QUEUE1 ((uint32_t)0U)
138 
139 #define ICSS_EMAC_QUEUE2 ((uint32_t)1U)
140 
141 #define ICSS_EMAC_QUEUE3 ((uint32_t)2U)
142 
143 #define ICSS_EMAC_QUEUE4 ((uint32_t)3U)
144 
145 #define ICSS_EMAC_QUEUE5 ((uint32_t)4U)
146 
147 #define ICSS_EMAC_QUEUE6 ((uint32_t)5U)
148 
149 #define ICSS_EMAC_QUEUE7 ((uint32_t)6U)
150 
151 #define ICSS_EMAC_QUEUE8 ((uint32_t)7U)
152 
153 #define ICSS_EMAC_QUEUE9 ((uint32_t)8U)
154 
155 #define ICSS_EMAC_QUEUE10 ((uint32_t)9U)
156 
157 #define ICSS_EMAC_QUEUE11 ((uint32_t)10U)
158 
159 #define ICSS_EMAC_QUEUE12 ((uint32_t)11U)
160 
161 #define ICSS_EMAC_QUEUE13 ((uint32_t)12U)
162 
163 #define ICSS_EMAC_QUEUE14 ((uint32_t)13U)
164 
165 #define ICSS_EMAC_QUEUE15 ((uint32_t)14U)
166 
167 #define ICSS_EMAC_QUEUE16 ((uint32_t)15U)
168 
169 #define ICSS_EMAC_COLQUEUE ((uint32_t)16U)
170 
173 #define ICSS_EMAC_NUMQUEUES ((uint32_t)17U)
174 
182 #define ICSS_EMAC_SWITCH_ERROR_BASE ((uint32_t)0x21Fu)
183 
184 #define ICSS_EMAC_SWITCH_ERROR_CODE (ICSS_EMAC_SWITCH_ERROR_BASE)
185 
186 #define ICSS_EMAC_SWITCH_ERROR_INFO (ICSS_EMAC_SWITCH_ERROR_CODE)
187 
188 #define ICSS_EMAC_SWITCH_ERROR_WARNING (ICSS_EMAC_SWITCH_ERROR_CODE | 0x1000u)
189 
190 #define ICSS_EMAC_SWITCH_ERROR_MINOR (ICSS_EMAC_SWITCH_ERROR_CODE | 0x2000u)
191 
192 #define ICSS_EMAC_SWITCH_ERROR_MAJOR (ICSS_EMAC_SWITCH_ERROR_CODE | 0x3000u)
193 
194 #define ICSS_EMAC_SWITCH_ERROR_CRITICAL (ICSS_EMAC_SWITCH_ERROR_CODE | 0x4000u)
195 
197 #define ICSS_EMAC_SWITCH_SUCCESS (0u)
198 
199 #define ICSS_EMAC_PORT1_TX_ERROR_MASK (0xFFFFu)
200 
201 #define ICSS_EMAC_PORT2_TX_ERROR_MASK (0xFFFF0000u)
202 
205 #define ICSS_EMAC_ERR_DEV_NOT_INSTANTIATED (ICSS_EMAC_SWITCH_ERROR_MAJOR + 1u)
206 
207 #define ICSS_EMAC_ERR_SWITCH_INVALID_PARAM (ICSS_EMAC_SWITCH_ERROR_MAJOR + 2u)
208 
209 #define ICSS_EMAC_ERR_CH_INVALID (ICSS_EMAC_SWITCH_ERROR_CRITICAL + 3u)
210 
211 #define ICSS_EMAC_ERR_CH_ALREADY_INIT (ICSS_EMAC_SWITCH_ERROR_MAJOR + 4u)
212 
213 #define ICSS_EMAC_ERR_TX_CH_ALREADY_CLOSED (ICSS_EMAC_SWITCH_ERROR_MAJOR + 5u)
214 
215 #define ICSS_EMAC_ERR_TX_CH_NOT_OPEN (ICSS_EMAC_SWITCH_ERROR_MAJOR + 6u)
216 
217 #define ICSS_EMAC_ERR_TX_NO_LINK (ICSS_EMAC_SWITCH_ERROR_MAJOR + 7u)
218 
219 #define ICSS_EMAC_ERR_TX_OUT_OF_BD (ICSS_EMAC_SWITCH_ERROR_MAJOR + 8u)
220 
221 #define ICSS_EMAC_ERR_RX_CH_INVALID (ICSS_EMAC_SWITCH_ERROR_CRITICAL + 9u)
222 
223 #define ICSS_EMAC_ERR_RX_CH_ALREADY_INIT (ICSS_EMAC_SWITCH_ERROR_MAJOR + 10u)
224 
225 #define ICSS_EMAC_ERR_RX_CH_ALREADY_CLOSED (ICSS_EMAC_SWITCH_ERROR_MAJOR + 11u)
226 
227 #define ICSS_EMAC_ERR_RX_CH_NOT_OPEN (ICSS_EMAC_SWITCH_ERROR_MAJOR + 12u)
228 
229 #define ICSS_EMAC_ERR_DEV_ALREADY_CREATED (ICSS_EMAC_SWITCH_ERROR_MAJOR + 13u)
230 
231 #define ICSS_EMAC_ERR_DEV_NOT_OPEN (ICSS_EMAC_SWITCH_ERROR_MAJOR + 14u)
232 
233 #define ICSS_EMAC_ERR_DEV_ALREADY_CLOSED (ICSS_EMAC_SWITCH_ERROR_MAJOR + 15u)
234 
235 #define ICSS_EMAC_ERR_DEV_ALREADY_OPEN (ICSS_EMAC_SWITCH_ERROR_MAJOR + 16u)
236 
237 #define ICSS_EMAC_ERR_RX_BUFFER_ALLOC_FAIL (ICSS_EMAC_SWITCH_ERROR_CRITICAL + 17u)
238 
239 #define ICSS_EMAC_SWITCH_INTERNAL_FAILURE (ICSS_EMAC_SWITCH_ERROR_MAJOR + 18u)
240 
241 #define ICSS_EMAC_SWITCH_VLAN_UNAWARE_MODE (ICSS_EMAC_SWITCH_ERROR_MAJOR + 19u)
242 
243 #define ICSS_EMAC_SWITCH_ALE_TABLE_FULL (ICSS_EMAC_SWITCH_ERROR_MAJOR + 20u)
244 
245 #define ICSS_EMAC_SWITCH_ADDR_NOTFOUND (ICSS_EMAC_SWITCH_ERROR_MAJOR + 21u)
246 
247 #define ICSS_EMAC_SWITCH_INVALID_VLANID (ICSS_EMAC_SWITCH_ERROR_MAJOR + 22u)
248 
249 #define ICSS_EMAC_SWITCH_INVALID_PORT (ICSS_EMAC_SWITCH_ERROR_MAJOR + 23u)
250 
251 #define ICSS_EMAC_SWITCH_BD_ALLOC_FAIL (ICSS_EMAC_SWITCH_ERROR_MAJOR + 24u)
252 
253 #define ICSS_EMAC_ERR_BADPACKET (ICSS_EMAC_SWITCH_ERROR_MAJOR + 25u)
254 
255 #define ICSS_EMAC_ERR_COLLISION_FAIL (ICSS_EMAC_SWITCH_ERROR_MAJOR + 26u)
256 
257 #define ICSS_EMAC_ERR_MACFATAL (ICSS_EMAC_SWITCH_ERROR_CRITICAL + 26u)
258 
261 #define ICSS_EMAC_MAXMTU (1518U)
262 
263 #define ICSS_EMAC_MINMTU (14U)
264 
268 #define ICSS_EMAC_PORT_0 (0)
269 
273 #define ICSS_EMAC_PORT_1 (1U)
274 
278 #define ICSS_EMAC_PORT_2 (2U)
279 
283 #define ICSS_EMAC_IOCTL_PORT_CTRL_DISABLE (0u)
284 
286 #define ICSS_EMAC_IOCTL_PORT_CTRL_ENABLE (1u)
287 
295 #define ICSS_EMAC_STORM_PREV_CTRL_ENABLE (0u)
296 
297 #define ICSS_EMAC_STORM_PREV_CTRL_DISABLE (1u)
298 
299 #define ICSS_EMAC_STORM_PREV_CTRL_SET_CREDITS (2u)
300 
301 #define ICSS_EMAC_STORM_PREV_CTRL_INIT (3u)
302 
303 #define ICSS_EMAC_STORM_PREV_CTRL_RESET (4u)
304 
305 #define ICSS_EMAC_STORM_PREV_CTRL_ENABLE_BC (5u)
306 
307 #define ICSS_EMAC_STORM_PREV_CTRL_DISABLE_BC (6u)
308 
309 #define ICSS_EMAC_STORM_PREV_CTRL_SET_CREDITS_BC (7u)
310 
311 #define ICSS_EMAC_STORM_PREV_CTRL_INIT_BC (8u)
312 
313 #define ICSS_EMAC_STORM_PREV_CTRL_RESET_BC (9u)
314 
315 #define ICSS_EMAC_STORM_PREV_CTRL_ENABLE_MC (10u)
316 
317 #define ICSS_EMAC_STORM_PREV_CTRL_DISABLE_MC (11u)
318 
319 #define ICSS_EMAC_STORM_PREV_CTRL_SET_CREDITS_MC (12u)
320 
321 #define ICSS_EMAC_STORM_PREV_CTRL_INIT_MC (13u)
322 
323 #define ICSS_EMAC_STORM_PREV_CTRL_RESET_MC (14u)
324 
325 #define ICSS_EMAC_STORM_PREV_CTRL_ENABLE_UC (15u)
326 
327 #define ICSS_EMAC_STORM_PREV_CTRL_DISABLE_UC (16u)
328 
329 #define ICSS_EMAC_STORM_PREV_CTRL_SET_CREDITS_UC (17u)
330 
331 #define ICSS_EMAC_STORM_PREV_CTRL_INIT_UC (18u)
332 
333 #define ICSS_EMAC_STORM_PREV_CTRL_RESET_UC (19u)
334 
343 #define ICSS_EMAC_LEARN_CTRL_UPDATE_TABLE (0u)
344 
345 #define ICSS_EMAC_LEARN_CTRL_CLR_TABLE (1u)
346 
347 #define ICSS_EMAC_LEARN_CTRL_AGEING (2u)
348 
349 #define ICSS_EMAC_LEARN_CTRL_FIND_MAC (3u)
350 
351 #define ICSS_EMAC_LEARN_CTRL_REMOVE_MAC (4u)
352 
353 #define ICSS_EMAC_LEARN_CTRL_INC_COUNTER (5u)
354 
355 #define ICSS_EMAC_LEARN_CTRL_INIT_TABLE (6u)
356 
357 #define ICSS_EMAC_LEARN_CTRL_SET_PORTSTATE (7u)
358 
367 #define ICSS_EMAC_IOCTL_STAT_CTRL_GET (0u)
368 
369 #define ICSS_EMAC_IOCTL_STAT_CTRL_CLEAR (1u)
370 
379 #define ICSS_EMAC_IOCTL_PORT_CTRL (0u)
380 
381 #define ICSS_EMAC_IOCTL_LEARNING_CTRL (1u)
382 
383 #define ICSS_EMAC_IOCTL_STORM_PREV_CTRL (2u)
384 
385 #define ICSS_EMAC_IOCTL_STATS_CTRL (3u)
386 
387 #define ICSS_EMAC_IOCTL_PROMISCUOUS_CTRL (4u)
388 
389 #define ICSS_EMAC_IOCTL_MULTICAST_FILTER_CTRL (5u)
390 
391 #define ICSS_EMAC_IOCTL_VLAN_FILTER_CTRL (6u)
392 
393 #define ICSS_EMAC_IOCTL_PORT_FLUSH_CTRL (7u)
394 
395 #define ICSS_EMAC_IOCTL_SPECIAL_UNICAST_MAC_CTRL (8u)
396 
405 #define ICSS_EMAC_IOCTL_MULTICAST_FILTER_CTRL_ENABLE (0u)
406 
407 #define ICSS_EMAC_IOCTL_MULTICAST_FILTER_CTRL_DISABLE (1u)
408 
409 #define ICSS_EMAC_IOCTL_MULTICAST_FILTER_CTRL_OVERRIDE_HASHMASK (2u)
410 
411 #define ICSS_EMAC_IOCTL_MULTICAST_FILTER_CTRL_ADD_MACID (3u)
412 
413 #define ICSS_EMAC_IOCTL_MULTICAST_FILTER_CTRL_REMOVE_MACID (4u)
414 
415 #define ICSS_EMAC_IOCTL_MULTICAST_FILTER_CTRL_GET_DROPPED (5u)
416 
425 #define ICSS_EMAC_IOCTL_VLAN_FILTER_CTRL_ENABLE_CMD (0u)
426 
427 #define ICSS_EMAC_IOCTL_VLAN_FILTER_CTRL_DISABLE_CMD (1u)
428 
429 #define ICSS_EMAC_IOCTL_VLAN_FILTER_CTRL_UNTAG_HOST_RCV_ALL_CMD (2u)
430 
431 #define ICSS_EMAC_IOCTL_VLAN_FILTER_CTRL_UNTAG_HOST_RCV_NAL_CMD (3u)
432 
433 #define ICSS_EMAC_IOCTL_VLAN_FILTER_CTRL_PRIOTAG_HOST_RCV_ALL_CMD (4u)
434 
435 #define ICSS_EMAC_IOCTL_VLAN_FILTER_CTRL_PRIOTAG_HOST_RCV_NAL_CMD (5u)
436 
437 #define ICSS_EMAC_IOCTL_VLAN_FILTER_CTRL_ADD_VID_CMD (6u)
438 
439 #define ICSS_EMAC_IOCTL_VLAN_FILTER_CTRL_REMOVE_VID_CMD (7u)
440 
449 #define ICSS_EMAC_IOCTL_SPECIAL_UNICAST_MAC_CTRL_DISABLE_CMD (0u)
450 
451 #define ICSS_EMAC_IOCTL_SPECIAL_UNICAST_MAC_CTRL_ENABLE_CMD (1u)
452 
458 #define ICSS_EMAC_LEARNING_PORT_STATE_LEARNING (0U)
459 #define ICSS_EMAC_LEARNING_PORT_STATE_NOT_LEARNING (1U)
460 #define ICSS_EMAC_LEARNING_PORT_STATE_LOCKED (2U)
461 
462 #define ICSS_EMAC_OBJECT_SIZE_IN_BYTES (42000)
463 
467 typedef struct ICSS_EMAC_Config_s *ICSS_EMAC_Handle;
468 
475 typedef int32_t (*ICSS_EMAC_CallBack)(void *arg0, void *arg1, void *arg2);
476 
477 /* ========================================================================== */
478 /* Structure Declarations */
479 /* ========================================================================== */
480 
485 typedef struct ICSS_EMAC_FwStaticMmap_s
486 {
487  uint32_t versionOffset;
488  uint32_t version2Offset;
489  uint32_t featureOffset;
491  uint32_t statisticsOffset;
492  uint32_t statisticsSize;
494  uint32_t phySpeedOffset;
495  uint32_t portStatusOffset;
496  uint32_t portControlAddr;
497  uint32_t portMacAddr;
501  uint32_t p0QueueDescOffset;
505  uint32_t colStatusAddr;
510 
514 typedef struct ICSS_EMAC_FwDynamicMmap_s
515 {
516  uint32_t queueSizeOffset;
517  uint32_t queueOffset;
519  uint32_t txQueueSize[ICSS_EMAC_NUMQUEUES-1U];
520  uint32_t rxHostQueueSize[ICSS_EMAC_NUMQUEUES - 1U];
524  uint32_t p0Q1BufferOffset;
526  uint32_t p0ColBufferOffset;
531  uint32_t numQueues;
533 
537 typedef struct ICSS_EMAC_FwVlanFilterParams_s
538 {
540  uint32_t ctrlEnableBit;
544  uint32_t vidMaxValue;
546 
550 typedef struct ICSS_EMAC_FwMulticastFilterParams_s
551 {
552  uint32_t ctrlOffset;
553  uint32_t maskSizeBytes;
554  uint32_t maskInitVal;
555  uint32_t maskOffset;
557  uint32_t tableOffset;
565 
566 /*
567 * \brief ICSS EMAC Init Configuration Structure
568 */
569 typedef struct ICSS_EMAC_Attrs_s
570 {
571  uint8_t emacMode;
591  uint8_t intrPacingMode;
595  uint16_t pacingThreshold;
597  uint8_t ethPrioQueue;
602  uint8_t learningEnable;
606  uint8_t portMask;
618  uint32_t linkIntNum;
619  /* Link interrupt number on R5F*/
620  uint32_t rxIntNum;
621  /* Receive Packet interrupt number on R5F*/
622  uint32_t txIntNum;
623  /* Transmit completion interrupt number on R5F.
624  Valid only if txInterruptEnable is set to 1 */
625  uint32_t l3OcmcBaseAddr;
627  uint32_t l3OcmcSize;
631  uint32_t rxTaskPriority;
633  uint32_t txTaskPriority;
635  uint32_t splitQueue;
638 
642 typedef struct ICSS_EMAC_InternalObject_t
643 {
644  uint32_t reserved[ICSS_EMAC_OBJECT_SIZE_IN_BYTES/sizeof(uint32_t)];
647 
652 typedef struct ICSS_EMAC_Config_s
653 {
654  void *object;
659 
667 typedef struct ICSS_EMAC_CallBackConfig_s
668 {
671  void *userArg;
674 
682 typedef struct ICSS_EMAC_CallBackObject_s
683 {
709 
720 typedef struct ICSS_EMAC_Params_s
721 {
722  PRUICSS_Handle pruicssHandle;
724  const PRUICSS_IntcInitData *pruicssIntcInitData;
736  ETHPHY_Handle ethphyHandle[ICSS_EMAC_MAX_PORTS_PER_INSTANCE];
741  uint8_t macId[6];
744 
749 typedef struct ICSS_EMAC_RxArgument_s
750 {
753  uint32_t destAddress;
755  uint8_t queueNumber;
757  uint8_t port;
759  uint32_t more;
762 
767 typedef struct ICSS_EMAC_TxArgument_s
768 {
771  const uint8_t *srcAddress;
773  uint8_t portNumber;
775  uint8_t queuePriority;
777  uint16_t lengthOfPacket;
780 
784 typedef struct ICSS_EMAC_IoctlCmd_s
785 {
786  uint8_t command;
787  void *ioctlVal;
789 
794 typedef struct ICSS_EMAC_PruStatistics_s
795 {
796 /* The fields here are aligned here so that it's consistent
797  with the memory layout in PRU DRAM, this is to facilitate easy
798  memcpy or DMA transfer. Don't change the order of fields without
799  modifying the order of fields in PRU DRAM. For details refer to guide
800 */
801  volatile uint32_t txBcast;
802  volatile uint32_t txMcast;
803  volatile uint32_t txUcast;
804  volatile uint32_t txOctets;
806  volatile uint32_t rxBcast;
807  volatile uint32_t rxMcast;
808  volatile uint32_t rxUcast;
809  volatile uint32_t rxOctets;
811  volatile uint32_t tx64byte;
812  volatile uint32_t tx65_127byte;
813  volatile uint32_t tx128_255byte;
814  volatile uint32_t tx256_511byte;
815  volatile uint32_t tx512_1023byte;
816  volatile uint32_t tx1024byte;
818  volatile uint32_t rx64byte;
819  volatile uint32_t rx65_127byte;
820  volatile uint32_t rx128_255byte;
821  volatile uint32_t rx256_511byte;
822  volatile uint32_t rx512_1023byte;
823  volatile uint32_t rx1024byte;
825  volatile uint32_t lateColl;
826  volatile uint32_t singleColl;
827  volatile uint32_t multiColl;
828  volatile uint32_t excessColl;
830  volatile uint32_t rxMisAlignmentFrames;
831  volatile uint32_t stormPrevCounter;
832  volatile uint32_t stormPrevCounterMC;
833  volatile uint32_t stormPrevCounterUC;
834  volatile uint32_t macRxError;
836  volatile uint32_t SFDError;
837  volatile uint32_t defTx;
838  volatile uint32_t macTxError;
839  volatile uint32_t rxOverSizedFrames;
840  volatile uint32_t rxUnderSizedFrames;
841  volatile uint32_t rxCRCFrames;
843  volatile uint32_t droppedPackets;
844 /* Debug variables, these are not part of standard MIB. Useful for debugging */
845 /* Reserved for future Use */
846  volatile uint32_t txOverFlow;
847  volatile uint32_t txUnderFlow;
848  volatile uint32_t sqeTestError;
849  volatile uint32_t TXqueueLevel;
850  volatile uint32_t CSError;
852 /* ========================================================================== */
853 /* Function Declarations */
854 /* ========================================================================== */
855 
859 void ICSS_EMAC_init(void);
860 
864 void ICSS_EMAC_deinit(void);
865 
872 
881 ICSS_EMAC_Handle ICSS_EMAC_open(uint32_t idx, const ICSS_EMAC_Params *params);
882 
889 void ICSS_EMAC_close(ICSS_EMAC_Handle icssEmacHandle);
890 
918 int32_t ICSS_EMAC_ioctl(ICSS_EMAC_Handle icssEmacHandle,
919  uint32_t ioctlCommand,
920  uint8_t portNo,
921  void *ioctlParams);
922 
936 int32_t ICSS_EMAC_rxPktGet(ICSS_EMAC_RxArgument *rxArg, void *userArg);
937 
950 int32_t ICSS_EMAC_rxPktInfo(ICSS_EMAC_Handle icssEmacHandle,
951  int32_t *portNumber,
952  int32_t *queueNumber);
953 
975 int32_t ICSS_EMAC_txPacket(const ICSS_EMAC_TxArgument *txArg, void *userArg);
976 
977 /* ========================================================================== */
978 /* Global Variables */
979 /* ========================================================================== */
980 
981 #ifdef __cplusplus
982 }
983 #endif
984 
987 #endif /* #ifndef ICSS_EMAC_H_ */
ICSS_EMAC_PruStatistics::tx128_255byte
volatile uint32_t tx128_255byte
Definition: icss_emac.h:813
ICSS_EMAC_Attrs::portMask
uint8_t portMask
Definition: icss_emac.h:606
ICSS_EMAC_FwDynamicMmap::p0ColBufferOffset
uint32_t p0ColBufferOffset
Definition: icss_emac.h:526
ICSS_EMAC_Attrs::intrPacingMode
uint8_t intrPacingMode
Definition: icss_emac.h:591
ICSS_EMAC_FwStaticMmap::p0ColQueueDescOffset
uint32_t p0ColQueueDescOffset
Definition: icss_emac.h:502
ICSS_EMAC_Attrs::rxTaskPriority
uint32_t rxTaskPriority
Definition: icss_emac.h:631
ICSS_EMAC_TxArgument
Tx packet processing information block that needs to passed into call to ICSS_EMAC_txPacket.
Definition: icss_emac.h:768
ICSS_EMAC_CallBackObject::rxNRTCallBack
ICSS_EMAC_CallBackConfig rxNRTCallBack
Definition: icss_emac.h:688
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:467
ICSS_EMAC_FwStaticMmap::portMacAddr
uint32_t portMacAddr
Definition: icss_emac.h:497
ICSS_EMAC_PruStatistics::rxBcast
volatile uint32_t rxBcast
Definition: icss_emac.h:806
ICSS_EMAC_PruStatistics::defTx
volatile uint32_t defTx
Definition: icss_emac.h:837
ICSS_EMAC_Attrs::learningEnable
uint8_t learningEnable
Definition: icss_emac.h:602
ICSS_EMAC_RxArgument
Rx packet processing information block that needs to passed into call to ICSS_EMAC_RxPktGet.
Definition: icss_emac.h:750
ICSS_EMAC_PruStatistics::rxUcast
volatile uint32_t rxUcast
Definition: icss_emac.h:808
ICSS_EMAC_PruStatistics::TXqueueLevel
volatile uint32_t TXqueueLevel
Definition: icss_emac.h:849
ICSS_EMAC_FwStaticMmap::portStatusOffset
uint32_t portStatusOffset
Definition: icss_emac.h:495
ICSS_EMAC_PruStatistics::droppedPackets
volatile uint32_t droppedPackets
Definition: icss_emac.h:843
ICSS_EMAC_FwDynamicMmap::p1Q1SwitchTxContextOffset
uint32_t p1Q1SwitchTxContextOffset
Definition: icss_emac.h:528
ICSS_EMAC_RxArgument::queueNumber
uint8_t queueNumber
Definition: icss_emac.h:755
ICSS_EMAC_FwStaticMmap::p0QueueDescOffset
uint32_t p0QueueDescOffset
Definition: icss_emac.h:501
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:757
ICSS_EMAC_Attrs::l3OcmcBaseAddr
uint32_t l3OcmcBaseAddr
Definition: icss_emac.h:625
ICSS_EMAC_FwDynamicMmap::p0ColBufferDescOffset
uint32_t p0ColBufferDescOffset
Definition: icss_emac.h:523
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:541
ICSS_EMAC_NUMQUEUES
#define ICSS_EMAC_NUMQUEUES
Total Queues available.
Definition: icss_emac.h:173
ICSS_EMAC_FwMulticastFilterParams::overrideStatusOffset
uint32_t overrideStatusOffset
Definition: icss_emac.h:556
ICSS_EMAC_FwStaticMmap::stormPreventionOffsetBC
uint32_t stormPreventionOffsetBC
Definition: icss_emac.h:493
ICSS_EMAC_PruStatistics::rxUnderSizedFrames
volatile uint32_t rxUnderSizedFrames
Definition: icss_emac.h:840
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:811
ICSS_EMAC_Attrs::l3OcmcSize
uint32_t l3OcmcSize
Definition: icss_emac.h:627
ICSS_EMAC_FwDynamicMmap::collisionQueueSize
uint32_t collisionQueueSize
Definition: icss_emac.h:521
ICSS_EMAC_FwDynamicMmap::hostQ1RxContextOffset
uint32_t hostQ1RxContextOffset
Definition: icss_emac.h:527
ICSS_EMAC_Attrs::txInterruptEnable
uint8_t txInterruptEnable
Definition: icss_emac.h:611
ICSS_EMAC_RxArgument::more
uint32_t more
Definition: icss_emac.h:759
ICSS_EMAC_Attrs::txIntNum
uint32_t txIntNum
Definition: icss_emac.h:622
ICSS_EMAC_OBJECT_SIZE_IN_BYTES
#define ICSS_EMAC_OBJECT_SIZE_IN_BYTES
Definition: icss_emac.h:462
ICSS_EMAC_CallBackObject::learningExCallBack
ICSS_EMAC_CallBackConfig learningExCallBack
Definition: icss_emac.h:698
ICSS_EMAC_FwDynamicMmap::transmitQueuesBufferOffset
uint32_t transmitQueuesBufferOffset
Definition: icss_emac.h:525
ICSS_EMAC_Attrs::pacingThreshold
uint16_t pacingThreshold
Definition: icss_emac.h:595
ICSS_EMAC_PruStatistics::rxOctets
volatile uint32_t rxOctets
Definition: icss_emac.h:809
ICSS_EMAC_TxArgument::lengthOfPacket
uint16_t lengthOfPacket
Definition: icss_emac.h:777
ICSS_EMAC_TxArgument::portNumber
uint8_t portNumber
Definition: icss_emac.h:773
ICSS_EMAC_FwMulticastFilterParams::maskInitVal
uint32_t maskInitVal
Definition: icss_emac.h:554
ICSS_EMAC_PruStatistics::rx512_1023byte
volatile uint32_t rx512_1023byte
Definition: icss_emac.h:822
ICSS_EMAC_FwStaticMmap::emacTtsConfigBaseOffset
uint32_t emacTtsConfigBaseOffset
Definition: icss_emac.h:503
ICSS_EMAC_PruStatistics::sqeTestError
volatile uint32_t sqeTestError
Definition: icss_emac.h:848
ICSS_EMAC_PruStatistics::singleColl
volatile uint32_t singleColl
Definition: icss_emac.h:826
ICSS_EMAC_PruStatistics::macRxError
volatile uint32_t macRxError
Definition: icss_emac.h:834
ICSS_EMAC_FwDynamicMmap::p0Q1BufferDescOffset
uint32_t p0Q1BufferDescOffset
Definition: icss_emac.h:522
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:552
ICSS_EMAC_FwDynamicMmap
ICSS EMAC Dynamic Firmware Memory Map offsets.
Definition: icss_emac.h:515
ICSS_EMAC_IoctlCmd::command
uint8_t command
Definition: icss_emac.h:786
ICSS_EMAC_CallBackObject::port0LinkCallBack
ICSS_EMAC_CallBackConfig port0LinkCallBack
Definition: icss_emac.h:684
ICSS_EMAC_Config::object
void * object
Definition: icss_emac.h:654
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:475
ICSS_EMAC_PruStatistics::tx65_127byte
volatile uint32_t tx65_127byte
Definition: icss_emac.h:812
ICSS_EMAC_PruStatistics::CSError
volatile uint32_t CSError
Definition: icss_emac.h:850
ICSS_EMAC_FwStaticMmap::specialUnicastMACAddressFeatureEnableOffset
uint32_t specialUnicastMACAddressFeatureEnableOffset
Definition: icss_emac.h:508
ICSS_EMAC_FwVlanFilterParams::ctrlEnableBit
uint32_t ctrlEnableBit
Definition: icss_emac.h:540
ICSS_EMAC_FwStaticMmap::statisticsOffset
uint32_t statisticsOffset
Definition: icss_emac.h:491
ICSS_EMAC_FwVlanFilterParams::filterTableBaseAddress
uint32_t filterTableBaseAddress
Definition: icss_emac.h:543
ICSS_EMAC_Params::pruicssIntcInitData
const PRUICSS_IntcInitData * pruicssIntcInitData
Definition: icss_emac.h:724
ICSS_EMAC_FwStaticMmap::phySpeedOffset
uint32_t phySpeedOffset
Definition: icss_emac.h:494
ICSS_EMAC_IoctlCmd::ioctlVal
void * ioctlVal
Definition: icss_emac.h:787
ICSS_EMAC_FwMulticastFilterParams::hostRcvAllowedValue
uint32_t hostRcvAllowedValue
Definition: icss_emac.h:562
ICSS_EMAC_FwDynamicMmap::p0Q1BufferOffset
uint32_t p0Q1BufferOffset
Definition: icss_emac.h:524
ICSS_EMAC_PruStatistics::lateColl
volatile uint32_t lateColl
Definition: icss_emac.h:825
ICSS_EMAC_CallBackConfig::userArg
void * userArg
Definition: icss_emac.h:671
ICSS_EMAC_FwStaticMmap::colStatusAddr
uint32_t colStatusAddr
Definition: icss_emac.h:505
ICSS_EMAC_FwMulticastFilterParams::maskOverrideSetValue
uint32_t maskOverrideSetValue
Definition: icss_emac.h:560
ICSS_EMAC_FwStaticMmap::portControlAddr
uint32_t portControlAddr
Definition: icss_emac.h:496
ICSS_EMAC_FwStaticMmap::rxInterruptStatusOffset
uint32_t rxInterruptStatusOffset
Definition: icss_emac.h:498
ICSS_EMAC_PruStatistics::rx65_127byte
volatile uint32_t rx65_127byte
Definition: icss_emac.h:819
ICSS_EMAC_FwStaticMmap::stormPreventionOffsetUC
uint32_t stormPreventionOffsetUC
Definition: icss_emac.h:500
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:818
ICSS_EMAC_FwMulticastFilterParams::maskOffset
uint32_t maskOffset
Definition: icss_emac.h:555
ICSS_EMAC_Attrs::emacMode
uint8_t emacMode
Definition: icss_emac.h:571
ICSS_EMAC_FwStaticMmap::futureFeatureOffset
uint32_t futureFeatureOffset
Definition: icss_emac.h:490
ICSS_EMAC_FwStaticMmap::versionOffset
uint32_t versionOffset
Definition: icss_emac.h:487
ICSS_EMAC_Params::fwDynamicMMap
ICSS_EMAC_FwDynamicMmap * fwDynamicMMap
Definition: icss_emac.h:728
ICSS_EMAC_PruStatistics::rxOverSizedFrames
volatile uint32_t rxOverSizedFrames
Definition: icss_emac.h:839
ICSS_EMAC_PruStatistics::multiColl
volatile uint32_t multiColl
Definition: icss_emac.h:827
ICSS_EMAC_FwVlanFilterParams::ctrlBitmapOffset
uint32_t ctrlBitmapOffset
Definition: icss_emac.h:539
ICSS_EMAC_Params::fwMulticastFilterParams
ICSS_EMAC_FwMulticastFilterParams * fwMulticastFilterParams
Definition: icss_emac.h:732
ICSS_EMAC_FwVlanFilterParams
ICSS EMAC VLAN Filtering Parameters.
Definition: icss_emac.h:538
ICSS_EMAC_PruStatistics::txOverFlow
volatile uint32_t txOverFlow
Definition: icss_emac.h:846
ICSS_EMAC_FwDynamicMmap::q1EmacTxContextOffset
uint32_t q1EmacTxContextOffset
Definition: icss_emac.h:530
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:633
ICSS_EMAC_PruStatistics::txUcast
volatile uint32_t txUcast
Definition: icss_emac.h:803
ICSS_EMAC_PruStatistics
Statistics structure for capturing statistics on PRU.
Definition: icss_emac.h:795
ICSS_EMAC_PruStatistics::txUnderFlow
volatile uint32_t txUnderFlow
Definition: icss_emac.h:847
ICSS_EMAC_Attrs::ethPrioQueue
uint8_t ethPrioQueue
Definition: icss_emac.h:597
ICSS_EMAC_PruStatistics::rx1024byte
volatile uint32_t rx1024byte
Definition: icss_emac.h:823
ICSS_EMAC_PruStatistics::excessColl
volatile uint32_t excessColl
Definition: icss_emac.h:828
ICSS_EMAC_FwDynamicMmap::numQueues
uint32_t numQueues
Definition: icss_emac.h:531
ICSS_EMAC_FwStaticMmap::interfaceMacAddrOffset
uint32_t interfaceMacAddrOffset
Definition: icss_emac.h:504
ICSS_EMAC_CallBackObject::rxRTCallBack
ICSS_EMAC_CallBackConfig rxRTCallBack
Definition: icss_emac.h:692
ICSS_EMAC_CallBackObject::customRxCallBack
ICSS_EMAC_CallBackConfig customRxCallBack
Definition: icss_emac.h:704
ICSS_EMAC_FwMulticastFilterParams::tableOffset
uint32_t tableOffset
Definition: icss_emac.h:557
ICSS_EMAC_PruStatistics::rxCRCFrames
volatile uint32_t rxCRCFrames
Definition: icss_emac.h:841
ICSS_EMAC_TxArgument::srcAddress
const uint8_t * srcAddress
Definition: icss_emac.h:771
ICSS_EMAC_FwMulticastFilterParams::maskOverrideNotSetValue
uint32_t maskOverrideNotSetValue
Definition: icss_emac.h:561
ICSS_EMAC_PruStatistics::stormPrevCounter
volatile uint32_t stormPrevCounter
Definition: icss_emac.h:831
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:558
ICSS_EMAC_CallBackObject::customTxCallBack
ICSS_EMAC_CallBackConfig customTxCallBack
Definition: icss_emac.h:700
ICSS_EMAC_Config::attrs
const ICSS_EMAC_Attrs * attrs
Definition: icss_emac.h:656
ICSS_EMAC_Attrs::linkIntNum
uint32_t linkIntNum
Definition: icss_emac.h:618
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:804
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:578
ICSS_EMAC_RxArgument::destAddress
uint32_t destAddress
Definition: icss_emac.h:753
ICSS_EMAC_FwMulticastFilterParams::maskSizeBytes
uint32_t maskSizeBytes
Definition: icss_emac.h:553
ICSS_EMAC_PruStatistics::rx256_511byte
volatile uint32_t rx256_511byte
Definition: icss_emac.h:821
ICSS_EMAC_PruStatistics::macTxError
volatile uint32_t macTxError
Definition: icss_emac.h:838
ICSS_EMAC_Attrs::halfDuplexEnable
uint8_t halfDuplexEnable
Definition: icss_emac.h:582
ICSS_EMAC_PruStatistics::SFDError
volatile uint32_t SFDError
Definition: icss_emac.h:836
ICSS_EMAC_FwStaticMmap::featureOffset
uint32_t featureOffset
Definition: icss_emac.h:489
ICSS_EMAC_FwVlanFilterParams::vidMaxValue
uint32_t vidMaxValue
Definition: icss_emac.h:544
ICSS_EMAC_Attrs::splitQueue
uint32_t splitQueue
Definition: icss_emac.h:635
ICSS_EMAC_PruStatistics::stormPrevCounterMC
volatile uint32_t stormPrevCounterMC
Definition: icss_emac.h:832
ICSS_EMAC_Attrs::linkTaskPriority
uint32_t linkTaskPriority
Definition: icss_emac.h:629
ICSS_EMAC_CallBackObject
Different callbacks which can be registered. While calling the function set in ICSS_EMAC_CallBack,...
Definition: icss_emac.h:683
ICSS_EMAC_FwMulticastFilterParams::hostRcvNotAllowedValue
uint32_t hostRcvNotAllowedValue
Definition: icss_emac.h:563
ICSS_EMAC_FwDynamicMmap::queueSizeOffset
uint32_t queueSizeOffset
Definition: icss_emac.h:516
ICSS_EMAC_PruStatistics::rxMisAlignmentFrames
volatile uint32_t rxMisAlignmentFrames
Definition: icss_emac.h:830
ICSS_EMAC_FwVlanFilterParams::ctrlPriotagHostRcvAllowBit
uint32_t ctrlPriotagHostRcvAllowBit
Definition: icss_emac.h:542
ICSS_EMAC_PruStatistics::txBcast
volatile uint32_t txBcast
Definition: icss_emac.h:801
ICSS_EMAC_PruStatistics::txMcast
volatile uint32_t txMcast
Definition: icss_emac.h:802
ICSS_EMAC_Attrs::enableIntrPacing
uint8_t enableIntrPacing
Definition: icss_emac.h:587
ICSS_EMAC_FwStaticMmap
ICSS EMAC Static Firmware Memory Map offsets. These are offsets for PRU0 and PRU1 DRAM memory.
Definition: icss_emac.h:486
ICSS_EMAC_InternalObject
Opaque ICSS EMAC driver object.
Definition: icss_emac.h:643
ICSS_EMAC_CallBackObject::txCallBack
ICSS_EMAC_CallBackConfig txCallBack
Definition: icss_emac.h:696
ICSS_EMAC_FwMulticastFilterParams::ctrlDisabledValue
uint32_t ctrlDisabledValue
Definition: icss_emac.h:559
ICSS_EMAC_CallBackConfig::callBack
ICSS_EMAC_CallBack callBack
Definition: icss_emac.h:669
ICSS_EMAC_Attrs
Definition: icss_emac.h:570
ICSS_EMAC_PruStatistics::stormPrevCounterUC
volatile uint32_t stormPrevCounterUC
Definition: icss_emac.h:833
ICSS_EMAC_FwMulticastFilterParams
ICSS EMAC Multicast Filtering Parameters.
Definition: icss_emac.h:551
ICSS_EMAC_PruStatistics::tx256_511byte
volatile uint32_t tx256_511byte
Definition: icss_emac.h:814
ICSS_EMAC_Params
ICSS_EMAC Parameters.
Definition: icss_emac.h:721
ICSS_EMAC_PruStatistics::rx128_255byte
volatile uint32_t rx128_255byte
Definition: icss_emac.h:820
ICSS_EMAC_Attrs::rxIntNum
uint32_t rxIntNum
Definition: icss_emac.h:620
ICSS_EMAC_CallBackConfig
Generic callback configuration for protocol specific callbacks. ICSS_EMAC_CallBack is the function ...
Definition: icss_emac.h:668
ICSS_EMAC_FwStaticMmap::version2Offset
uint32_t version2Offset
Definition: icss_emac.h:488
ICSS_EMAC_IoctlCmd
IOCTL command members for configuring switch/EMAC.
Definition: icss_emac.h:785
ICSS_EMAC_Params::callBackObject
ICSS_EMAC_CallBackObject callBackObject
Definition: icss_emac.h:734
ICSS_EMAC_FwStaticMmap::specialUnicastMACAddrOffset
uint32_t specialUnicastMACAddrOffset
Definition: icss_emac.h:507
ICSS_EMAC_PruStatistics::tx512_1023byte
volatile uint32_t tx512_1023byte
Definition: icss_emac.h:815
ICSS_EMAC_FwDynamicMmap::queueOffset
uint32_t queueOffset
Definition: icss_emac.h:517
ICSS_EMAC_Params::pruicssHandle
PRUICSS_Handle pruicssHandle
Definition: icss_emac.h:722
ICSS_EMAC_FwStaticMmap::stormPreventionOffsetMC
uint32_t stormPreventionOffsetMC
Definition: icss_emac.h:499
ICSS_EMAC_CallBackObject::port1LinkCallBack
ICSS_EMAC_CallBackConfig port1LinkCallBack
Definition: icss_emac.h:686
ICSS_EMAC_FwStaticMmap::promiscuousModeOffset
uint32_t promiscuousModeOffset
Definition: icss_emac.h:506
ICSS_EMAC_TxArgument::icssEmacHandle
ICSS_EMAC_Handle icssEmacHandle
Definition: icss_emac.h:769
ICSS_EMAC_FwStaticMmap::statisticsSize
uint32_t statisticsSize
Definition: icss_emac.h:492
ICSS_EMAC_TxArgument::queuePriority
uint8_t queuePriority
Definition: icss_emac.h:775
ICSS_EMAC_PruStatistics::rxMcast
volatile uint32_t rxMcast
Definition: icss_emac.h:807
ICSS_EMAC_FwDynamicMmap::portQueueDescOffset
uint32_t portQueueDescOffset
Definition: icss_emac.h:529
ICSS_EMAC_PruStatistics::tx1024byte
volatile uint32_t tx1024byte
Definition: icss_emac.h:816
ICSS_EMAC_Params::fwStaticMMap
ICSS_EMAC_FwStaticMmap * fwStaticMMap
Definition: icss_emac.h:726
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:730
ICSS_EMAC_FwDynamicMmap::queueDescriptorOffset
uint32_t queueDescriptorOffset
Definition: icss_emac.h:518
ICSS_EMAC_Config
Base EMAC handle containing pointers to all modules required for driver to work.
Definition: icss_emac.h:653
ICSS_EMAC_RxArgument::icssEmacHandle
ICSS_EMAC_Handle icssEmacHandle
Definition: icss_emac.h:751