AM64x MCU+ SDK  12.01.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 #include "icss_emac_ver.h"
57 
58 #ifdef __cplusplus
59 extern "C" {
60 #endif
61 
62 /* ========================================================================== */
63 /* Macros & Typedefs */
64 /* ========================================================================== */
65 
67 #define ICSS_EMAC_MAX_PORTS_PER_INSTANCE (2)
68 #ifdef BUILD_HSR_PRP_MII
69 
70 #define ICSS_EMAC_FW_LEARNING_EN (2U)
71 
72 #define ICSS_EMAC_LOW_PRIORITY (1U)
73 
74 #define ICSS_EMAC_HIGH_PRIORITY (2U)
75 #endif
76 
84 #define ICSS_EMAC_MODE_MAC1 (1U)
85 
86 #define ICSS_EMAC_MODE_MAC2 (2U)
87 
88 #define ICSS_EMAC_MODE_SWITCH (3U)
89 
90 #define ICSS_EMAC_MODE_DUALMAC (4U)
91 
100 #define ICSS_EMAC_MII_MODE (0U)
101 
102 #define ICSS_EMAC_RGMII_MODE (1U)
103 
112 #define ICSS_EMAC_LEARNING_DISABLE (0U)
113 
114 #define ICSS_EMAC_LEARNING_ENABLE (1U)
115 
124 #define ICSS_EMAC_ENABLE_PACING (0)
125 
126 #define ICSS_EMAC_DISABLE_PACING (1)
127 
136 #define ICSS_EMAC_INTR_PACING_MODE1 (0)
137 
146 #define ICSS_EMAC_QUEUE1 ((uint32_t)0U)
147 
148 #define ICSS_EMAC_QUEUE2 ((uint32_t)1U)
149 
150 #define ICSS_EMAC_QUEUE3 ((uint32_t)2U)
151 
152 #define ICSS_EMAC_QUEUE4 ((uint32_t)3U)
153 
154 #define ICSS_EMAC_QUEUE5 ((uint32_t)4U)
155 
156 #define ICSS_EMAC_QUEUE6 ((uint32_t)5U)
157 
158 #define ICSS_EMAC_QUEUE7 ((uint32_t)6U)
159 
160 #define ICSS_EMAC_QUEUE8 ((uint32_t)7U)
161 
162 #define ICSS_EMAC_QUEUE9 ((uint32_t)8U)
163 
164 #define ICSS_EMAC_QUEUE10 ((uint32_t)9U)
165 
166 #define ICSS_EMAC_QUEUE11 ((uint32_t)10U)
167 
168 #define ICSS_EMAC_QUEUE12 ((uint32_t)11U)
169 
170 #define ICSS_EMAC_QUEUE13 ((uint32_t)12U)
171 
172 #define ICSS_EMAC_QUEUE14 ((uint32_t)13U)
173 
174 #define ICSS_EMAC_QUEUE15 ((uint32_t)14U)
175 
176 #define ICSS_EMAC_QUEUE16 ((uint32_t)15U)
177 
178 #define ICSS_EMAC_COLQUEUE ((uint32_t)16U)
179 
181 #ifdef BUILD_HSR_PRP_MII
182 
183 #define ICSS_EMAC_SET_TX_OCCUPIED (1U)
184 
185 #define ICSS_EMAC_CLR_TX_OCCUPIED (0U)
186 
187 #define ICSS_EMAC_SCAN_PORT1_HIGH_FIRST (0U)
188 
189 #define ICSS_EMAC_SCAN_PORT2_HIGH_FIRST (1U)
190 #endif
191 
192 #define ICSS_EMAC_NUMQUEUES ((uint32_t)17U)
193 
201 #define ICSS_EMAC_SWITCH_ERROR_BASE ((uint32_t)0x21Fu)
202 
203 #define ICSS_EMAC_SWITCH_ERROR_CODE (ICSS_EMAC_SWITCH_ERROR_BASE)
204 
205 #define ICSS_EMAC_SWITCH_ERROR_INFO (ICSS_EMAC_SWITCH_ERROR_CODE)
206 
207 #define ICSS_EMAC_SWITCH_ERROR_WARNING (ICSS_EMAC_SWITCH_ERROR_CODE | 0x1000u)
208 
209 #define ICSS_EMAC_SWITCH_ERROR_MINOR (ICSS_EMAC_SWITCH_ERROR_CODE | 0x2000u)
210 
211 #define ICSS_EMAC_SWITCH_ERROR_MAJOR (ICSS_EMAC_SWITCH_ERROR_CODE | 0x3000u)
212 
213 #define ICSS_EMAC_SWITCH_ERROR_CRITICAL (ICSS_EMAC_SWITCH_ERROR_CODE | 0x4000u)
214 
216 #define ICSS_EMAC_SWITCH_SUCCESS (0u)
217 
218 #define ICSS_EMAC_PORT1_TX_ERROR_MASK (0xFFFFu)
219 
220 #define ICSS_EMAC_PORT2_TX_ERROR_MASK (0xFFFF0000u)
221 
224 #define ICSS_EMAC_ERR_DEV_NOT_INSTANTIATED (ICSS_EMAC_SWITCH_ERROR_MAJOR + 1u)
225 
226 #define ICSS_EMAC_ERR_SWITCH_INVALID_PARAM (ICSS_EMAC_SWITCH_ERROR_MAJOR + 2u)
227 
228 #define ICSS_EMAC_ERR_CH_INVALID (ICSS_EMAC_SWITCH_ERROR_CRITICAL + 3u)
229 
230 #define ICSS_EMAC_ERR_CH_ALREADY_INIT (ICSS_EMAC_SWITCH_ERROR_MAJOR + 4u)
231 
232 #define ICSS_EMAC_ERR_TX_CH_ALREADY_CLOSED (ICSS_EMAC_SWITCH_ERROR_MAJOR + 5u)
233 
234 #define ICSS_EMAC_ERR_TX_CH_NOT_OPEN (ICSS_EMAC_SWITCH_ERROR_MAJOR + 6u)
235 
236 #define ICSS_EMAC_ERR_TX_NO_LINK (ICSS_EMAC_SWITCH_ERROR_MAJOR + 7u)
237 
238 #define ICSS_EMAC_ERR_TX_OUT_OF_BD (ICSS_EMAC_SWITCH_ERROR_MAJOR + 8u)
239 
240 #define ICSS_EMAC_ERR_RX_CH_INVALID (ICSS_EMAC_SWITCH_ERROR_CRITICAL + 9u)
241 
242 #define ICSS_EMAC_ERR_RX_CH_ALREADY_INIT (ICSS_EMAC_SWITCH_ERROR_MAJOR + 10u)
243 
244 #define ICSS_EMAC_ERR_RX_CH_ALREADY_CLOSED (ICSS_EMAC_SWITCH_ERROR_MAJOR + 11u)
245 
246 #define ICSS_EMAC_ERR_RX_CH_NOT_OPEN (ICSS_EMAC_SWITCH_ERROR_MAJOR + 12u)
247 
248 #define ICSS_EMAC_ERR_DEV_ALREADY_CREATED (ICSS_EMAC_SWITCH_ERROR_MAJOR + 13u)
249 
250 #define ICSS_EMAC_ERR_DEV_NOT_OPEN (ICSS_EMAC_SWITCH_ERROR_MAJOR + 14u)
251 
252 #define ICSS_EMAC_ERR_DEV_ALREADY_CLOSED (ICSS_EMAC_SWITCH_ERROR_MAJOR + 15u)
253 
254 #define ICSS_EMAC_ERR_DEV_ALREADY_OPEN (ICSS_EMAC_SWITCH_ERROR_MAJOR + 16u)
255 
256 #define ICSS_EMAC_ERR_RX_BUFFER_ALLOC_FAIL (ICSS_EMAC_SWITCH_ERROR_CRITICAL + 17u)
257 
258 #define ICSS_EMAC_SWITCH_INTERNAL_FAILURE (ICSS_EMAC_SWITCH_ERROR_MAJOR + 18u)
259 
260 #define ICSS_EMAC_SWITCH_VLAN_UNAWARE_MODE (ICSS_EMAC_SWITCH_ERROR_MAJOR + 19u)
261 
262 #define ICSS_EMAC_SWITCH_ALE_TABLE_FULL (ICSS_EMAC_SWITCH_ERROR_MAJOR + 20u)
263 
264 #define ICSS_EMAC_SWITCH_ADDR_NOTFOUND (ICSS_EMAC_SWITCH_ERROR_MAJOR + 21u)
265 
266 #define ICSS_EMAC_SWITCH_INVALID_VLANID (ICSS_EMAC_SWITCH_ERROR_MAJOR + 22u)
267 
268 #define ICSS_EMAC_SWITCH_INVALID_PORT (ICSS_EMAC_SWITCH_ERROR_MAJOR + 23u)
269 
270 #define ICSS_EMAC_SWITCH_BD_ALLOC_FAIL (ICSS_EMAC_SWITCH_ERROR_MAJOR + 24u)
271 
272 #define ICSS_EMAC_ERR_BADPACKET (ICSS_EMAC_SWITCH_ERROR_MAJOR + 25u)
273 
274 #define ICSS_EMAC_ERR_COLLISION_FAIL (ICSS_EMAC_SWITCH_ERROR_MAJOR + 26u)
275 
276 #define ICSS_EMAC_ERR_MACFATAL (ICSS_EMAC_SWITCH_ERROR_CRITICAL + 26u)
277 
280 #define ICSS_EMAC_MAXMTU (1518U)
281 
282 #define ICSS_EMAC_MINMTU (14U)
283 
287 #define ICSS_EMAC_PORT_0 (0)
288 
292 #define ICSS_EMAC_PORT_1 (1U)
293 
297 #define ICSS_EMAC_PORT_2 (2U)
298 
302 #define ICSS_EMAC_IOCTL_PORT_CTRL_DISABLE (0u)
303 
305 #define ICSS_EMAC_IOCTL_PORT_CTRL_ENABLE (1u)
306 
314 #define ICSS_EMAC_STORM_PREV_CTRL_ENABLE (0u)
315 
316 #define ICSS_EMAC_STORM_PREV_CTRL_DISABLE (1u)
317 
318 #define ICSS_EMAC_STORM_PREV_CTRL_SET_CREDITS (2u)
319 
320 #define ICSS_EMAC_STORM_PREV_CTRL_INIT (3u)
321 
322 #define ICSS_EMAC_STORM_PREV_CTRL_RESET (4u)
323 
324 #define ICSS_EMAC_STORM_PREV_CTRL_ENABLE_BC (5u)
325 
326 #define ICSS_EMAC_STORM_PREV_CTRL_DISABLE_BC (6u)
327 
328 #define ICSS_EMAC_STORM_PREV_CTRL_SET_CREDITS_BC (7u)
329 
330 #define ICSS_EMAC_STORM_PREV_CTRL_INIT_BC (8u)
331 
332 #define ICSS_EMAC_STORM_PREV_CTRL_RESET_BC (9u)
333 
334 #define ICSS_EMAC_STORM_PREV_CTRL_ENABLE_MC (10u)
335 
336 #define ICSS_EMAC_STORM_PREV_CTRL_DISABLE_MC (11u)
337 
338 #define ICSS_EMAC_STORM_PREV_CTRL_SET_CREDITS_MC (12u)
339 
340 #define ICSS_EMAC_STORM_PREV_CTRL_INIT_MC (13u)
341 
342 #define ICSS_EMAC_STORM_PREV_CTRL_RESET_MC (14u)
343 
344 #define ICSS_EMAC_STORM_PREV_CTRL_ENABLE_UC (15u)
345 
346 #define ICSS_EMAC_STORM_PREV_CTRL_DISABLE_UC (16u)
347 
348 #define ICSS_EMAC_STORM_PREV_CTRL_SET_CREDITS_UC (17u)
349 
350 #define ICSS_EMAC_STORM_PREV_CTRL_INIT_UC (18u)
351 
352 #define ICSS_EMAC_STORM_PREV_CTRL_RESET_UC (19u)
353 
362 #define ICSS_EMAC_LEARN_CTRL_UPDATE_TABLE (0u)
363 
364 #define ICSS_EMAC_LEARN_CTRL_CLR_TABLE (1u)
365 
366 #define ICSS_EMAC_LEARN_CTRL_AGEING (2u)
367 
368 #define ICSS_EMAC_LEARN_CTRL_FIND_MAC (3u)
369 
370 #define ICSS_EMAC_LEARN_CTRL_REMOVE_MAC (4u)
371 
372 #define ICSS_EMAC_LEARN_CTRL_INC_COUNTER (5u)
373 
374 #define ICSS_EMAC_LEARN_CTRL_INIT_TABLE (6u)
375 
376 #define ICSS_EMAC_LEARN_CTRL_SET_PORTSTATE (7u)
377 
386 #define ICSS_EMAC_IOCTL_STAT_CTRL_GET (0u)
387 
388 #define ICSS_EMAC_IOCTL_STAT_CTRL_CLEAR (1u)
389 
398 #define ICSS_EMAC_IOCTL_PORT_CTRL (0u)
399 
400 #define ICSS_EMAC_IOCTL_LEARNING_CTRL (1u)
401 
402 #define ICSS_EMAC_IOCTL_STORM_PREV_CTRL (2u)
403 
404 #define ICSS_EMAC_IOCTL_STATS_CTRL (3u)
405 
406 #define ICSS_EMAC_IOCTL_PROMISCUOUS_CTRL (4u)
407 
408 #define ICSS_EMAC_IOCTL_MULTICAST_FILTER_CTRL (5u)
409 
410 #define ICSS_EMAC_IOCTL_VLAN_FILTER_CTRL (6u)
411 
412 #define ICSS_EMAC_IOCTL_PORT_FLUSH_CTRL (7u)
413 
414 #define ICSS_EMAC_IOCTL_SPECIAL_UNICAST_MAC_CTRL (8u)
415 
416 #define ICSS_EMAC_IOCTL_PORT_FWD_CTRL (9u)
417 
426 #define ICSS_EMAC_IOCTL_MULTICAST_FILTER_CTRL_ENABLE (0u)
427 
428 #define ICSS_EMAC_IOCTL_MULTICAST_FILTER_CTRL_DISABLE (1u)
429 
430 #define ICSS_EMAC_IOCTL_MULTICAST_FILTER_CTRL_OVERRIDE_HASHMASK (2u)
431 
432 #define ICSS_EMAC_IOCTL_MULTICAST_FILTER_CTRL_ADD_MACID (3u)
433 
434 #define ICSS_EMAC_IOCTL_MULTICAST_FILTER_CTRL_REMOVE_MACID (4u)
435 
436 #define ICSS_EMAC_IOCTL_MULTICAST_FILTER_CTRL_GET_DROPPED (5u)
437 
446 #define ICSS_EMAC_IOCTL_VLAN_FILTER_CTRL_ENABLE_CMD (0u)
447 
448 #define ICSS_EMAC_IOCTL_VLAN_FILTER_CTRL_DISABLE_CMD (1u)
449 
450 #define ICSS_EMAC_IOCTL_VLAN_FILTER_CTRL_UNTAG_HOST_RCV_ALL_CMD (2u)
451 
452 #define ICSS_EMAC_IOCTL_VLAN_FILTER_CTRL_UNTAG_HOST_RCV_NAL_CMD (3u)
453 
454 #define ICSS_EMAC_IOCTL_VLAN_FILTER_CTRL_PRIOTAG_HOST_RCV_ALL_CMD (4u)
455 
456 #define ICSS_EMAC_IOCTL_VLAN_FILTER_CTRL_PRIOTAG_HOST_RCV_NAL_CMD (5u)
457 
458 #define ICSS_EMAC_IOCTL_VLAN_FILTER_CTRL_ADD_VID_CMD (6u)
459 
460 #define ICSS_EMAC_IOCTL_VLAN_FILTER_CTRL_REMOVE_VID_CMD (7u)
461 
470 #define ICSS_EMAC_IOCTL_SPECIAL_UNICAST_MAC_CTRL_DISABLE_CMD (0u)
471 
472 #define ICSS_EMAC_IOCTL_SPECIAL_UNICAST_MAC_CTRL_ENABLE_CMD (1u)
473 
483 #define ICSS_EMAC_IOCTL_PORT_FWD_CTRL_ENABLE_CMD (0u)
484 
485 #define ICSS_EMAC_IOCTL_PORT_FWD_CTRL_DISABLE_CMD (1u)
486 
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)
496 
497 #define ICSS_EMAC_OBJECT_SIZE_IN_BYTES (42000U)
498 
499 #ifdef BUILD_HSR_PRP_MII
500 
501 #define ICSS_EMAC_BD_FDB_LOOKUP_SUCCESS_MASK ((uint32_t)0x00000040U)
502 
504 #define ICSS_EMAC_BD_FDB_LOOKUP_SUCCESS_SHIFT ((uint32_t)6U)
505 
507 #define ICSS_EMAC_BD_FW_FLOOD_MASK ((uint32_t)0x00000080U)
508 
510 #define ICSS_EMAC_BD_FW_FLOOD_SHIFT ((uint32_t)7U)
511 #endif
512 
515 typedef struct ICSS_EMAC_Config_s *ICSS_EMAC_Handle;
516 
517 /*Reset Isolation Status enum*/
518 typedef enum
519 {
520  RESET_ISOLATION_DISABLED = 0U, /* Reset isolation is disabled */
521  RESET_ISOLATION_ENABLED = 1U, /* Reset isolation is enabled */
522  RESET_ISOLATION_NOT_SUPPORTED = 2U /* Initialization state */
524 
531 typedef int32_t (*ICSS_EMAC_CallBack)(void *arg0, void *arg1, void *arg2);
532 
533 /* ========================================================================== */
534 /* Structure Declarations */
535 /* ========================================================================== */
536 
541 typedef struct ICSS_EMAC_FwStaticMmap_s
542 {
543  uint32_t versionOffset;
544  uint32_t version2Offset;
545  uint32_t featureOffset;
547  uint32_t statisticsOffset;
548  uint32_t statisticsSize;
550  uint32_t phySpeedOffset;
551  uint32_t portStatusOffset;
552  uint32_t portControlAddr;
553  uint32_t portMacAddr;
557  uint32_t p0QueueDescOffset;
561  uint32_t colStatusAddr;
567 
571 typedef struct ICSS_EMAC_FwDynamicMmap_s
572 {
573  uint32_t queueSizeOffset;
574  uint32_t queueOffset;
576  uint32_t txQueueSize[ICSS_EMAC_NUMQUEUES-1U];
577  uint32_t rxHostQueueSize[ICSS_EMAC_NUMQUEUES - 1U];
581  uint32_t p0Q1BufferOffset;
583  uint32_t p0ColBufferOffset;
588  uint32_t numQueues;
590 
594 typedef struct ICSS_EMAC_FwVlanFilterParams_s
595 {
597  uint32_t ctrlEnableBit;
601  uint32_t vidMaxValue;
603 
607 typedef struct ICSS_EMAC_FwMulticastFilterParams_s
608 {
609  uint32_t ctrlOffset;
610  uint32_t maskSizeBytes;
611  uint32_t maskInitVal;
612  uint32_t maskOffset;
614  uint32_t tableOffset;
622 
623 /*
624 * \brief ICSS EMAC Init Configuration Structure
625 */
626 typedef struct ICSS_EMAC_Attrs_s
627 {
628  uint8_t emacMode;
648  uint8_t intrPacingMode;
652  uint16_t pacingThreshold;
654  uint8_t ethPrioQueue;
659  uint8_t learningEnable;
663  uint8_t portMask;
675  uint32_t linkIntNum;
676  /* Link interrupt number on R5F*/
677  uint32_t rxIntNum;
678  /* Receive Packet interrupt number on R5F*/
679  uint32_t txIntNum;
680  /* Transmit completion interrupt number on R5F.
681  Valid only if txInterruptEnable is set to 1 */
682  uint32_t l3OcmcBaseAddr;
684  uint32_t l3OcmcSize;
688  uint32_t rxTaskPriority;
690  uint32_t txTaskPriority;
692  uint32_t splitQueue;
698 #ifdef BUILD_HSR_PRP_MII
699  uint8_t pktPriority;
702  int8_t txOccupied;
704  uint8_t pingPong;
705 #endif
707 
711 typedef struct ICSS_EMAC_InternalObject_t
712 {
713  uint32_t reserved[ICSS_EMAC_OBJECT_SIZE_IN_BYTES/sizeof(uint32_t)];
716 
721 typedef struct ICSS_EMAC_Config_s
722 {
723  void *object;
728 
736 typedef struct ICSS_EMAC_CallBackConfig_s
737 {
740  void *userArg;
743 
751 typedef struct ICSS_EMAC_CallBackObject_s
752 {
778 
789 typedef struct ICSS_EMAC_Params_s
790 {
810  uint8_t macId[6];
817 
822 typedef struct ICSS_EMAC_RxArgument_s
823 {
826  uint32_t destAddress;
828  uint8_t queueNumber;
830  uint8_t port;
832  uint32_t more;
834 #ifdef BUILD_HSR_PRP_MII
835  uint32_t host_recv_flag;
836  /*Returns the packet flag whether it is valid for host or not */
837 #endif
839 
844 typedef struct ICSS_EMAC_TxArgument_s
845 {
848  const uint8_t *srcAddress;
850  uint8_t portNumber;
852  uint8_t queuePriority;
854  uint16_t lengthOfPacket;
857 
861 typedef struct ICSS_EMAC_IoctlCmd_s
862 {
863  uint8_t command;
864  void *ioctlVal;
866 
871 typedef struct ICSS_EMAC_PruStatistics_s
872 {
873 /* The fields here are aligned here so that it's consistent
874  with the memory layout in PRU DRAM, this is to facilitate easy
875  memcpy or DMA transfer. Don't change the order of fields without
876  modifying the order of fields in PRU DRAM. For details refer to guide
877 */
878  volatile uint32_t txBcast;
879  volatile uint32_t txMcast;
880  volatile uint32_t txUcast;
881  volatile uint32_t txOctets;
883  volatile uint32_t rxBcast;
884  volatile uint32_t rxMcast;
885  volatile uint32_t rxUcast;
886  volatile uint32_t rxOctets;
888  volatile uint32_t tx64byte;
889  volatile uint32_t tx65_127byte;
890  volatile uint32_t tx128_255byte;
891  volatile uint32_t tx256_511byte;
892  volatile uint32_t tx512_1023byte;
893  volatile uint32_t tx1024byte;
895  volatile uint32_t rx64byte;
896  volatile uint32_t rx65_127byte;
897  volatile uint32_t rx128_255byte;
898  volatile uint32_t rx256_511byte;
899  volatile uint32_t rx512_1023byte;
900  volatile uint32_t rx1024byte;
902  volatile uint32_t lateColl;
903  volatile uint32_t singleColl;
904  volatile uint32_t multiColl;
905  volatile uint32_t excessColl;
907  volatile uint32_t rxMisAlignmentFrames;
908  volatile uint32_t stormPrevCounter;
909  volatile uint32_t stormPrevCounterMC;
910  volatile uint32_t stormPrevCounterUC;
911  volatile uint32_t macRxError;
913  volatile uint32_t SFDError;
914  volatile uint32_t defTx;
915  volatile uint32_t macTxError;
916  volatile uint32_t rxOverSizedFrames;
917  volatile uint32_t rxUnderSizedFrames;
918  volatile uint32_t rxCRCFrames;
920  volatile uint32_t droppedPackets;
921 /* Debug variables, these are not part of standard MIB. Useful for debugging */
922 /* Reserved for future Use */
923  volatile uint32_t txOverFlow;
924  volatile uint32_t txUnderFlow;
925  volatile uint32_t sqeTestError;
926  volatile uint32_t TXqueueLevel;
927  volatile uint32_t CSError;
929 /* ========================================================================== */
930 /* Function Declarations */
931 /* ========================================================================== */
932 
936 void ICSS_EMAC_init(void);
937 
941 void ICSS_EMAC_deinit(void);
942 
949 
958 ICSS_EMAC_Handle ICSS_EMAC_open(uint32_t idx, const ICSS_EMAC_Params *params);
959 
966 void ICSS_EMAC_close(ICSS_EMAC_Handle icssEmacHandle);
967 
995 int32_t ICSS_EMAC_ioctl(ICSS_EMAC_Handle icssEmacHandle,
996  uint32_t ioctlCommand,
997  uint8_t portNo,
998  void *ioctlParams);
999 
1013 int32_t ICSS_EMAC_rxPktGet(ICSS_EMAC_RxArgument *rxArg, void *userArg);
1014 
1027 int32_t ICSS_EMAC_rxPktInfo(ICSS_EMAC_Handle icssEmacHandle,
1028  int32_t *portNumber,
1029  int32_t *queueNumber);
1030 
1052 int32_t ICSS_EMAC_txPacket(const ICSS_EMAC_TxArgument *txArg, void *userArg);
1053 
1070 
1071 /* ========================================================================== */
1072 /* Global Variables */
1073 /* ========================================================================== */
1074 
1075 #ifdef __cplusplus
1076 }
1077 #endif
1078 
1081 #endif /* #ifndef ICSS_EMAC_H_ */
ICSS_EMAC_PruStatistics::tx128_255byte
volatile uint32_t tx128_255byte
Definition: icss_emac.h:890
ICSS_EMAC_Attrs::portMask
uint8_t portMask
Definition: icss_emac.h:663
ICSS_EMAC_Attrs::hostQueueIsolationMode
uint8_t hostQueueIsolationMode
Definition: icss_emac.h:694
ICSS_EMAC_FwDynamicMmap::p0ColBufferOffset
uint32_t p0ColBufferOffset
Definition: icss_emac.h:583
ICSS_EMAC_Attrs::intrPacingMode
uint8_t intrPacingMode
Definition: icss_emac.h:648
ICSS_EMAC_FwStaticMmap::p0ColQueueDescOffset
uint32_t p0ColQueueDescOffset
Definition: icss_emac.h:558
ICSS_EMAC_Attrs::rxTaskPriority
uint32_t rxTaskPriority
Definition: icss_emac.h:688
ICSS_EMAC_TxArgument
Tx packet processing information block that needs to passed into call to ICSS_EMAC_txPacket.
Definition: icss_emac.h:845
ICSS_EMAC_CallBackObject::rxNRTCallBack
ICSS_EMAC_CallBackConfig rxNRTCallBack
Definition: icss_emac.h:757
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:515
ICSS_EMAC_FwStaticMmap::portMacAddr
uint32_t portMacAddr
Definition: icss_emac.h:553
ICSS_EMAC_PruStatistics::rxBcast
volatile uint32_t rxBcast
Definition: icss_emac.h:883
ICSS_EMAC_PruStatistics::defTx
volatile uint32_t defTx
Definition: icss_emac.h:914
ICSS_EMAC_Attrs::learningEnable
uint8_t learningEnable
Definition: icss_emac.h:659
ICSS_EMAC_RxArgument
Rx packet processing information block that needs to passed into call to ICSS_EMAC_RxPktGet.
Definition: icss_emac.h:823
ICSS_EMAC_PruStatistics::rxUcast
volatile uint32_t rxUcast
Definition: icss_emac.h:885
ICSS_EMAC_PruStatistics::TXqueueLevel
volatile uint32_t TXqueueLevel
Definition: icss_emac.h:926
ICSS_EMAC_FwStaticMmap::portStatusOffset
uint32_t portStatusOffset
Definition: icss_emac.h:551
ICSS_EMAC_PruStatistics::droppedPackets
volatile uint32_t droppedPackets
Definition: icss_emac.h:920
ICSS_EMAC_FwDynamicMmap::p1Q1SwitchTxContextOffset
uint32_t p1Q1SwitchTxContextOffset
Definition: icss_emac.h:585
RESET_ISOLATION_DISABLED
@ RESET_ISOLATION_DISABLED
Definition: icss_emac.h:520
ICSS_EMAC_RxArgument::queueNumber
uint8_t queueNumber
Definition: icss_emac.h:828
ICSS_EMAC_FwStaticMmap::p0QueueDescOffset
uint32_t p0QueueDescOffset
Definition: icss_emac.h:557
ICSS_EMAC_Params::pruRstIsoStatusParams
ICSS_EMAC_pruRstIsoState pruRstIsoStatusParams
Definition: icss_emac.h:814
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:830
SystemP.h
ICSS_EMAC_Attrs::l3OcmcBaseAddr
uint32_t l3OcmcBaseAddr
Definition: icss_emac.h:682
ICSS_EMAC_FwDynamicMmap::p0ColBufferDescOffset
uint32_t p0ColBufferDescOffset
Definition: icss_emac.h:580
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:598
ICSS_EMAC_NUMQUEUES
#define ICSS_EMAC_NUMQUEUES
Total Queues available.
Definition: icss_emac.h:192
ICSS_EMAC_FwMulticastFilterParams::overrideStatusOffset
uint32_t overrideStatusOffset
Definition: icss_emac.h:613
ICSS_EMAC_FwStaticMmap::stormPreventionOffsetBC
uint32_t stormPreventionOffsetBC
Definition: icss_emac.h:549
ICSS_EMAC_PruStatistics::rxUnderSizedFrames
volatile uint32_t rxUnderSizedFrames
Definition: icss_emac.h:917
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:888
ICSS_EMAC_Attrs::l3OcmcSize
uint32_t l3OcmcSize
Definition: icss_emac.h:684
ICSS_EMAC_FwDynamicMmap::collisionQueueSize
uint32_t collisionQueueSize
Definition: icss_emac.h:578
ICSS_EMAC_FwDynamicMmap::hostQ1RxContextOffset
uint32_t hostQ1RxContextOffset
Definition: icss_emac.h:584
ICSS_EMAC_Attrs::txInterruptEnable
uint8_t txInterruptEnable
Definition: icss_emac.h:668
pruicss.h
ICSS_EMAC_RxArgument::more
uint32_t more
Definition: icss_emac.h:832
ICSS_EMAC_Attrs::txIntNum
uint32_t txIntNum
Definition: icss_emac.h:679
ICSS_EMAC_OBJECT_SIZE_IN_BYTES
#define ICSS_EMAC_OBJECT_SIZE_IN_BYTES
Definition: icss_emac.h:497
ICSS_EMAC_CallBackObject::learningExCallBack
ICSS_EMAC_CallBackConfig learningExCallBack
Definition: icss_emac.h:767
ICSS_EMAC_FwDynamicMmap::transmitQueuesBufferOffset
uint32_t transmitQueuesBufferOffset
Definition: icss_emac.h:582
ICSS_EMAC_Attrs::pacingThreshold
uint16_t pacingThreshold
Definition: icss_emac.h:652
ICSS_EMAC_PruStatistics::rxOctets
volatile uint32_t rxOctets
Definition: icss_emac.h:886
ICSS_EMAC_TxArgument::lengthOfPacket
uint16_t lengthOfPacket
Definition: icss_emac.h:854
ICSS_EMAC_TxArgument::portNumber
uint8_t portNumber
Definition: icss_emac.h:850
ICSS_EMAC_FwMulticastFilterParams::maskInitVal
uint32_t maskInitVal
Definition: icss_emac.h:611
ICSS_EMAC_PruStatistics::rx512_1023byte
volatile uint32_t rx512_1023byte
Definition: icss_emac.h:899
RESET_ISOLATION_ENABLED
@ RESET_ISOLATION_ENABLED
Definition: icss_emac.h:521
ICSS_EMAC_FwStaticMmap::emacTtsConfigBaseOffset
uint32_t emacTtsConfigBaseOffset
Definition: icss_emac.h:559
ICSS_EMAC_PruStatistics::sqeTestError
volatile uint32_t sqeTestError
Definition: icss_emac.h:925
ICSS_EMAC_PruStatistics::singleColl
volatile uint32_t singleColl
Definition: icss_emac.h:903
ICSS_EMAC_PruStatistics::macRxError
volatile uint32_t macRxError
Definition: icss_emac.h:911
ICSS_EMAC_FwDynamicMmap::p0Q1BufferDescOffset
uint32_t p0Q1BufferDescOffset
Definition: icss_emac.h:579
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:609
ICSS_EMAC_FwDynamicMmap
ICSS EMAC Dynamic Firmware Memory Map offsets.
Definition: icss_emac.h:572
ICSS_EMAC_IoctlCmd::command
uint8_t command
Definition: icss_emac.h:863
ICSS_EMAC_CallBackObject::port0LinkCallBack
ICSS_EMAC_CallBackConfig port0LinkCallBack
Definition: icss_emac.h:753
ICSS_EMAC_Config::object
void * object
Definition: icss_emac.h:723
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:531
ICSS_EMAC_PruStatistics::tx65_127byte
volatile uint32_t tx65_127byte
Definition: icss_emac.h:889
ICSS_EMAC_PruStatistics::CSError
volatile uint32_t CSError
Definition: icss_emac.h:927
ICSS_EMAC_FwStaticMmap::specialUnicastMACAddressFeatureEnableOffset
uint32_t specialUnicastMACAddressFeatureEnableOffset
Definition: icss_emac.h:564
ICSS_EMAC_FwVlanFilterParams::ctrlEnableBit
uint32_t ctrlEnableBit
Definition: icss_emac.h:597
ICSS_EMAC_FwStaticMmap::statisticsOffset
uint32_t statisticsOffset
Definition: icss_emac.h:547
ICSS_EMAC_FwVlanFilterParams::filterTableBaseAddress
uint32_t filterTableBaseAddress
Definition: icss_emac.h:600
ICSS_EMAC_Params::pruicssIntcInitData
const PRUICSS_IntcInitData * pruicssIntcInitData
Definition: icss_emac.h:793
ICSS_EMAC_FwStaticMmap::phySpeedOffset
uint32_t phySpeedOffset
Definition: icss_emac.h:550
ICSS_EMAC_IoctlCmd::ioctlVal
void * ioctlVal
Definition: icss_emac.h:864
ICSS_EMAC_FwMulticastFilterParams::hostRcvAllowedValue
uint32_t hostRcvAllowedValue
Definition: icss_emac.h:619
ICSS_EMAC_FwDynamicMmap::p0Q1BufferOffset
uint32_t p0Q1BufferOffset
Definition: icss_emac.h:581
ICSS_EMAC_PruStatistics::lateColl
volatile uint32_t lateColl
Definition: icss_emac.h:902
ICSS_EMAC_CallBackConfig::userArg
void * userArg
Definition: icss_emac.h:740
ICSS_EMAC_FwStaticMmap::colStatusAddr
uint32_t colStatusAddr
Definition: icss_emac.h:561
ICSS_EMAC_FwMulticastFilterParams::maskOverrideSetValue
uint32_t maskOverrideSetValue
Definition: icss_emac.h:617
ICSS_EMAC_FwStaticMmap::portControlAddr
uint32_t portControlAddr
Definition: icss_emac.h:552
ICSS_EMAC_FwStaticMmap::rxInterruptStatusOffset
uint32_t rxInterruptStatusOffset
Definition: icss_emac.h:554
ICSS_EMAC_PruStatistics::rx65_127byte
volatile uint32_t rx65_127byte
Definition: icss_emac.h:896
ICSS_EMAC_FwStaticMmap::stormPreventionOffsetUC
uint32_t stormPreventionOffsetUC
Definition: icss_emac.h:556
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:895
ICSS_EMAC_FwMulticastFilterParams::maskOffset
uint32_t maskOffset
Definition: icss_emac.h:612
ICSS_EMAC_Attrs::emacMode
uint8_t emacMode
Definition: icss_emac.h:628
ICSS_EMAC_FwStaticMmap::futureFeatureOffset
uint32_t futureFeatureOffset
Definition: icss_emac.h:546
ICSS_EMAC_Attrs::portPrioritySelection
uint8_t portPrioritySelection
Definition: icss_emac.h:696
ICSS_EMAC_FwStaticMmap::versionOffset
uint32_t versionOffset
Definition: icss_emac.h:543
ICSS_EMAC_Params::fwDynamicMMap
ICSS_EMAC_FwDynamicMmap * fwDynamicMMap
Definition: icss_emac.h:797
ICSS_EMAC_PruStatistics::rxOverSizedFrames
volatile uint32_t rxOverSizedFrames
Definition: icss_emac.h:916
ICSS_EMAC_PruStatistics::multiColl
volatile uint32_t multiColl
Definition: icss_emac.h:904
ICSS_EMAC_FwVlanFilterParams::ctrlBitmapOffset
uint32_t ctrlBitmapOffset
Definition: icss_emac.h:596
ICSS_EMAC_Params::fwMulticastFilterParams
ICSS_EMAC_FwMulticastFilterParams * fwMulticastFilterParams
Definition: icss_emac.h:801
ICSS_EMAC_FwVlanFilterParams
ICSS EMAC VLAN Filtering Parameters.
Definition: icss_emac.h:595
ICSS_EMAC_PruStatistics::txOverFlow
volatile uint32_t txOverFlow
Definition: icss_emac.h:923
ICSS_EMAC_FwDynamicMmap::q1EmacTxContextOffset
uint32_t q1EmacTxContextOffset
Definition: icss_emac.h:587
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:690
ICSS_EMAC_PruStatistics::txUcast
volatile uint32_t txUcast
Definition: icss_emac.h:880
ICSS_EMAC_PruStatistics
Statistics structure for capturing statistics on PRU.
Definition: icss_emac.h:872
ICSS_EMAC_PruStatistics::txUnderFlow
volatile uint32_t txUnderFlow
Definition: icss_emac.h:924
ICSS_EMAC_Attrs::ethPrioQueue
uint8_t ethPrioQueue
Definition: icss_emac.h:654
ICSS_EMAC_PruStatistics::rx1024byte
volatile uint32_t rx1024byte
Definition: icss_emac.h:900
ICSS_EMAC_PruStatistics::excessColl
volatile uint32_t excessColl
Definition: icss_emac.h:905
ICSS_EMAC_FwDynamicMmap::numQueues
uint32_t numQueues
Definition: icss_emac.h:588
ICSS_EMAC_FwStaticMmap::interfaceMacAddrOffset
uint32_t interfaceMacAddrOffset
Definition: icss_emac.h:560
ICSS_EMAC_CallBackObject::rxRTCallBack
ICSS_EMAC_CallBackConfig rxRTCallBack
Definition: icss_emac.h:761
ICSS_EMAC_CallBackObject::customRxCallBack
ICSS_EMAC_CallBackConfig customRxCallBack
Definition: icss_emac.h:773
ICSS_EMAC_FwMulticastFilterParams::tableOffset
uint32_t tableOffset
Definition: icss_emac.h:614
ICSS_EMAC_PruStatistics::rxCRCFrames
volatile uint32_t rxCRCFrames
Definition: icss_emac.h:918
ICSS_EMAC_TxArgument::srcAddress
const uint8_t * srcAddress
Definition: icss_emac.h:848
reserved
uint16_t reserved
Definition: tisci_boardcfg_rm.h:2
ICSS_EMAC_FwMulticastFilterParams::maskOverrideNotSetValue
uint32_t maskOverrideNotSetValue
Definition: icss_emac.h:618
ICSS_EMAC_PruStatistics::stormPrevCounter
volatile uint32_t stormPrevCounter
Definition: icss_emac.h:908
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:615
ICSS_EMAC_CallBackObject::customTxCallBack
ICSS_EMAC_CallBackConfig customTxCallBack
Definition: icss_emac.h:769
ICSS_EMAC_Config::attrs
const ICSS_EMAC_Attrs * attrs
Definition: icss_emac.h:725
PRUICSS_IntcInitData
PRUICSS Interrupt controller initialisation data structure.
Definition: pruicss/g_v0/pruicss.h:274
ethphy.h
ICSS_EMAC_Attrs::linkIntNum
uint32_t linkIntNum
Definition: icss_emac.h:675
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:881
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:635
ICSS_EMAC_RxArgument::destAddress
uint32_t destAddress
Definition: icss_emac.h:826
ICSS_EMAC_FwMulticastFilterParams::maskSizeBytes
uint32_t maskSizeBytes
Definition: icss_emac.h:610
ICSS_EMAC_PruStatistics::rx256_511byte
volatile uint32_t rx256_511byte
Definition: icss_emac.h:898
ICSS_EMAC_PruStatistics::macTxError
volatile uint32_t macTxError
Definition: icss_emac.h:915
ICSS_EMAC_Attrs::halfDuplexEnable
uint8_t halfDuplexEnable
Definition: icss_emac.h:639
ICSS_EMAC_PruStatistics::SFDError
volatile uint32_t SFDError
Definition: icss_emac.h:913
ICSS_EMAC_FwStaticMmap::featureOffset
uint32_t featureOffset
Definition: icss_emac.h:545
ICSS_EMAC_FwVlanFilterParams::vidMaxValue
uint32_t vidMaxValue
Definition: icss_emac.h:601
ICSS_EMAC_Attrs::splitQueue
uint32_t splitQueue
Definition: icss_emac.h:692
ICSS_EMAC_PruStatistics::stormPrevCounterMC
volatile uint32_t stormPrevCounterMC
Definition: icss_emac.h:909
ICSS_EMAC_Attrs::linkTaskPriority
uint32_t linkTaskPriority
Definition: icss_emac.h:686
ICSS_EMAC_CallBackObject
Different callbacks which can be registered. While calling the function set in ICSS_EMAC_CallBack,...
Definition: icss_emac.h:752
ICSS_EMAC_FwMulticastFilterParams::hostRcvNotAllowedValue
uint32_t hostRcvNotAllowedValue
Definition: icss_emac.h:620
ICSS_EMAC_FwDynamicMmap::queueSizeOffset
uint32_t queueSizeOffset
Definition: icss_emac.h:573
ICSS_EMAC_PruStatistics::rxMisAlignmentFrames
volatile uint32_t rxMisAlignmentFrames
Definition: icss_emac.h:907
ICSS_EMAC_FwVlanFilterParams::ctrlPriotagHostRcvAllowBit
uint32_t ctrlPriotagHostRcvAllowBit
Definition: icss_emac.h:599
ICSS_EMAC_PruStatistics::txBcast
volatile uint32_t txBcast
Definition: icss_emac.h:878
ICSS_EMAC_PruStatistics::txMcast
volatile uint32_t txMcast
Definition: icss_emac.h:879
ICSS_EMAC_Attrs::enableIntrPacing
uint8_t enableIntrPacing
Definition: icss_emac.h:644
ICSS_EMAC_FwStaticMmap
ICSS EMAC Static Firmware Memory Map offsets. These are offsets for PRU0 and PRU1 DRAM memory.
Definition: icss_emac.h:542
ICSS_EMAC_InternalObject
Opaque ICSS EMAC driver object.
Definition: icss_emac.h:712
ICSS_EMAC_CallBackObject::txCallBack
ICSS_EMAC_CallBackConfig txCallBack
Definition: icss_emac.h:765
ICSS_EMAC_pruRstIsoState
ICSS_EMAC_pruRstIsoState
Definition: icss_emac.h:519
ICSS_EMAC_FwMulticastFilterParams::ctrlDisabledValue
uint32_t ctrlDisabledValue
Definition: icss_emac.h:616
ICSS_EMAC_CallBackConfig::callBack
ICSS_EMAC_CallBack callBack
Definition: icss_emac.h:738
ICSS_EMAC_Attrs
Definition: icss_emac.h:627
ICSS_EMAC_PruStatistics::stormPrevCounterUC
volatile uint32_t stormPrevCounterUC
Definition: icss_emac.h:910
ICSS_EMAC_FwMulticastFilterParams
ICSS EMAC Multicast Filtering Parameters.
Definition: icss_emac.h:608
RESET_ISOLATION_NOT_SUPPORTED
@ RESET_ISOLATION_NOT_SUPPORTED
Definition: icss_emac.h:522
ICSS_EMAC_PruStatistics::tx256_511byte
volatile uint32_t tx256_511byte
Definition: icss_emac.h:891
ICSS_EMAC_getResetIsolationStatus
ICSS_EMAC_pruRstIsoState ICSS_EMAC_getResetIsolationStatus(ICSS_EMAC_Handle emacHandle)
Gets the reset isolation status from the ICSS_EMAC handle.
ICSS_EMAC_Params
ICSS_EMAC Parameters.
Definition: icss_emac.h:790
ICSS_EMAC_PruStatistics::rx128_255byte
volatile uint32_t rx128_255byte
Definition: icss_emac.h:897
ICSS_EMAC_Attrs::rxIntNum
uint32_t rxIntNum
Definition: icss_emac.h:677
ICSS_EMAC_CallBackConfig
Generic callback configuration for protocol specific callbacks. ICSS_EMAC_CallBack is the function ...
Definition: icss_emac.h:737
ICSS_EMAC_FwStaticMmap::version2Offset
uint32_t version2Offset
Definition: icss_emac.h:544
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:862
ICSS_EMAC_Params::enableHostQueueIsolation
uint8_t enableHostQueueIsolation
Definition: icss_emac.h:812
ICSS_EMAC_Params::callBackObject
ICSS_EMAC_CallBackObject callBackObject
Definition: icss_emac.h:803
ICSS_EMAC_FwStaticMmap::specialUnicastMACAddrOffset
uint32_t specialUnicastMACAddrOffset
Definition: icss_emac.h:563
ICSS_EMAC_PruStatistics::tx512_1023byte
volatile uint32_t tx512_1023byte
Definition: icss_emac.h:892
ICSS_EMAC_FwDynamicMmap::queueOffset
uint32_t queueOffset
Definition: icss_emac.h:574
ICSS_EMAC_FwStaticMmap::portForwardStatusOffset
uint32_t portForwardStatusOffset
Definition: icss_emac.h:565
ICSS_EMAC_Params::pruicssHandle
PRUICSS_Handle pruicssHandle
Definition: icss_emac.h:791
ICSS_EMAC_FwStaticMmap::stormPreventionOffsetMC
uint32_t stormPreventionOffsetMC
Definition: icss_emac.h:555
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/g_v0/pruicss.h:235
ICSS_EMAC_CallBackObject::port1LinkCallBack
ICSS_EMAC_CallBackConfig port1LinkCallBack
Definition: icss_emac.h:755
ICSS_EMAC_FwStaticMmap::promiscuousModeOffset
uint32_t promiscuousModeOffset
Definition: icss_emac.h:562
ICSS_EMAC_TxArgument::icssEmacHandle
ICSS_EMAC_Handle icssEmacHandle
Definition: icss_emac.h:846
ICSS_EMAC_FwStaticMmap::statisticsSize
uint32_t statisticsSize
Definition: icss_emac.h:548
ICSS_EMAC_TxArgument::queuePriority
uint8_t queuePriority
Definition: icss_emac.h:852
ICSS_EMAC_PruStatistics::rxMcast
volatile uint32_t rxMcast
Definition: icss_emac.h:884
ICSS_EMAC_FwDynamicMmap::portQueueDescOffset
uint32_t portQueueDescOffset
Definition: icss_emac.h:586
ICSS_EMAC_PruStatistics::tx1024byte
volatile uint32_t tx1024byte
Definition: icss_emac.h:893
ICSS_EMAC_Params::fwStaticMMap
ICSS_EMAC_FwStaticMmap * fwStaticMMap
Definition: icss_emac.h:795
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:67
ICSS_EMAC_Params::fwVlanFilterParams
ICSS_EMAC_FwVlanFilterParams * fwVlanFilterParams
Definition: icss_emac.h:799
ICSS_EMAC_FwDynamicMmap::queueDescriptorOffset
uint32_t queueDescriptorOffset
Definition: icss_emac.h:575
ICSS_EMAC_Config
Base EMAC handle containing pointers to all modules required for driver to work.
Definition: icss_emac.h:722
ICSS_EMAC_RxArgument::icssEmacHandle
ICSS_EMAC_Handle icssEmacHandle
Definition: icss_emac.h:824