Lines Matching refs:p_Dtsec

55 static t_Error CheckInitParameters(t_Dtsec *p_Dtsec)
57 if(ENET_SPEED_FROM_MODE(p_Dtsec->enetMode) >= e_ENET_SPEED_10000)
59 if(p_Dtsec->macId >= FM_MAX_NUM_OF_1G_MACS)
61 if(p_Dtsec->addr == 0)
63 if(((p_Dtsec->enetMode == e_ENET_MODE_SGMII_1000) ||
64 (p_Dtsec->enetMode == e_ENET_MODE_RGMII_1000) ||
65 (p_Dtsec->enetMode == e_ENET_MODE_QSGMII_1000)) &&
66 p_Dtsec->p_DtsecDriverParam->halfDuplex)
68 if(p_Dtsec->p_DtsecDriverParam->halfDuplex && (p_Dtsec->p_DtsecDriverParam)->loopback)
71 if(p_Dtsec->p_DtsecDriverParam->preambleRxEn)
74 if(((p_Dtsec->p_DtsecDriverParam)->preambleTxEn || (p_Dtsec->p_DtsecDriverParam)->preambleRxEn) &&( (p_Dtsec->p_DtsecDriverParam)->preambleLength != 0x7))
76 if((p_Dtsec->p_DtsecDriverParam)->fifoTxWatermarkH<((p_Dtsec->p_DtsecDriverParam)->fifoTxThr+8))
78 if((p_Dtsec->p_DtsecDriverParam)->halfDuplex &&
79 (p_Dtsec->p_DtsecDriverParam->txTimeStampEn || p_Dtsec->p_DtsecDriverParam->rxTimeStampEn))
81 if((p_Dtsec->p_DtsecDriverParam)->actOnRxPauseFrame && (p_Dtsec->p_DtsecDriverParam)->controlFrameAccept )
83 if((p_Dtsec->p_DtsecDriverParam)->packetAlignmentPadding > MAX_PACKET_ALIGNMENT)
85 if(((p_Dtsec->p_DtsecDriverParam)->nonBackToBackIpg1 > MAX_INTER_PACKET_GAP) ||
86 ((p_Dtsec->p_DtsecDriverParam)->nonBackToBackIpg2 > MAX_INTER_PACKET_GAP) ||
87 ((p_Dtsec->p_DtsecDriverParam)->backToBackIpg > MAX_INTER_PACKET_GAP))
89 if((p_Dtsec->p_DtsecDriverParam)->alternateBackoffVal > MAX_INTER_PALTERNATE_BEB)
91 if((p_Dtsec->p_DtsecDriverParam)->maxRetransmission > MAX_RETRANSMISSION)
93 if((p_Dtsec->p_DtsecDriverParam)->collisionWindow > MAX_COLLISION_WINDOW)
98 if (p_Dtsec->p_DtsecDriverParam->tbiPhyAddr > MAX_PHYS)
100 if(!p_Dtsec->f_Exception)
102 if(!p_Dtsec->f_Event)
214 t_Dtsec *p_Dtsec = (t_Dtsec *)h_Dtsec;
218 ASSERT_COND(p_Dtsec);
219 p_DtsecMemMap = p_Dtsec->p_MemMap;
232 p_Dtsec->f_Event(p_Dtsec->h_App, e_FM_MAC_EX_1G_MII_MNG_RD_COMPLET);
234 p_Dtsec->f_Event(p_Dtsec->h_App, e_FM_MAC_EX_1G_MII_MNG_WR_COMPLET);
238 static void UpdateStatistics(t_Dtsec *p_Dtsec)
240 t_DtsecMemMap *p_DtsecMemMap = p_Dtsec->p_MemMap;
248 p_Dtsec->internalStatistics.tr64 += VAL22BIT;
250 p_Dtsec->internalStatistics.tr127 += VAL22BIT;
252 p_Dtsec->internalStatistics.tr255 += VAL22BIT;
254 p_Dtsec->internalStatistics.tr511 += VAL22BIT;
256 p_Dtsec->internalStatistics.tr1k += VAL22BIT;
258 p_Dtsec->internalStatistics.trmax += VAL22BIT;
260 p_Dtsec->internalStatistics.trmgv += VAL22BIT;
262 p_Dtsec->internalStatistics.rbyt += (uint64_t)VAL32BIT;
264 p_Dtsec->internalStatistics.rpkt += VAL22BIT;
266 p_Dtsec->internalStatistics.rmca += VAL22BIT;
268 p_Dtsec->internalStatistics.rbca += VAL22BIT;
270 p_Dtsec->internalStatistics.rxpf += VAL16BIT;
272 p_Dtsec->internalStatistics.raln += VAL16BIT;
274 p_Dtsec->internalStatistics.rflr += VAL16BIT;
276 p_Dtsec->internalStatistics.rcde += VAL16BIT;
278 p_Dtsec->internalStatistics.rcse += VAL16BIT;
280 p_Dtsec->internalStatistics.rund += VAL16BIT;
282 p_Dtsec->internalStatistics.rovr += VAL16BIT;
284 p_Dtsec->internalStatistics.rfrg += VAL16BIT;
286 p_Dtsec->internalStatistics.rjbr += VAL16BIT;
288 p_Dtsec->internalStatistics.rdrp += VAL16BIT;
294 p_Dtsec->internalStatistics.tfcs += VAL12BIT;
296 p_Dtsec->internalStatistics.tbyt += (uint64_t)VAL32BIT;
298 p_Dtsec->internalStatistics.tpkt += VAL22BIT;
300 p_Dtsec->internalStatistics.tmca += VAL22BIT;
302 p_Dtsec->internalStatistics.tbca += VAL22BIT;
304 p_Dtsec->internalStatistics.txpf += VAL16BIT;
306 p_Dtsec->internalStatistics.tdrp += VAL16BIT;
314 t_Dtsec *p_Dtsec = (t_Dtsec *)h_Dtsec;
316 SANITY_CHECK_RETURN_VALUE(p_Dtsec, E_INVALID_HANDLE, 0);
318 return (uint16_t)GET_UINT32(p_Dtsec->p_MemMap->maxfrm);
323 t_Dtsec *p_Dtsec = (t_Dtsec *)h_Dtsec;
325 t_DtsecMemMap *p_DtsecMemMap = p_Dtsec->p_MemMap;
336 p_Dtsec->f_Exception(p_Dtsec->h_App, e_FM_MAC_EX_1G_BAB_RX);
338 p_Dtsec->f_Exception(p_Dtsec->h_App, e_FM_MAC_EX_1G_RX_CTL);
340 UpdateStatistics(p_Dtsec);
342 p_Dtsec->f_Exception(p_Dtsec->h_App, e_FM_MAC_EX_1G_GRATEFUL_TX_STP_COMPLET);
344 p_Dtsec->f_Exception(p_Dtsec->h_App, e_FM_MAC_EX_1G_BAB_TX);
346 p_Dtsec->f_Exception(p_Dtsec->h_App, e_FM_MAC_EX_1G_TX_CTL);
348 p_Dtsec->f_Exception(p_Dtsec->h_App, e_FM_MAC_EX_1G_TX_ERR);
350 p_Dtsec->f_Exception(p_Dtsec->h_App, e_FM_MAC_EX_1G_LATE_COL);
352 p_Dtsec->f_Exception(p_Dtsec->h_App, e_FM_MAC_EX_1G_COL_RET_LMT);
371 XX_UDelay((uint32_t)(NCSW_MIN(DtsecGetMaxFrameLength(p_Dtsec)*16/1000, 1)));
406 FmResetMac(p_Dtsec->fmMacControllerDriver.h_Fm, e_FM_MAC_1G, p_Dtsec->fmMacControllerDriver.macId);
423 p_Dtsec->f_Exception(p_Dtsec->h_App, e_FM_MAC_EX_1G_TX_FIFO_UNDRN);
426 p_Dtsec->f_Exception(p_Dtsec->h_App, e_FM_MAC_EX_1G_MAG_PCKT);
428 p_Dtsec->f_Exception(p_Dtsec->h_App, e_FM_MAC_EX_1G_GRATEFUL_RX_STP_COMPLET);
430 p_Dtsec->f_Exception(p_Dtsec->h_App, e_FM_MAC_EX_1G_TX_DATA_ERR);
432 p_Dtsec->f_Exception(p_Dtsec->h_App, e_FM_MAC_EX_1G_RX_DATA_ERR);
441 t_Dtsec *p_Dtsec = (t_Dtsec *)h_Dtsec;
443 t_DtsecMemMap *p_DtsecMemMap = p_Dtsec->p_MemMap;
445 if (p_Dtsec->ptpTsuEnabled)
453 p_Dtsec->f_Exception(p_Dtsec->h_App, e_FM_MAC_EX_1G_1588_TS_RX_ERR);
460 static void FreeInitResources(t_Dtsec *p_Dtsec)
463 if ((p_Dtsec->mdioIrq != 0) && (p_Dtsec->mdioIrq != NO_IRQ))
465 XX_DisableIntr(p_Dtsec->mdioIrq);
466 XX_FreeIntr(p_Dtsec->mdioIrq);
468 else if (p_Dtsec->mdioIrq == 0)
469 FmUnregisterIntr(p_Dtsec->fmMacControllerDriver.h_Fm, e_FM_MOD_1G_MAC, p_Dtsec->macId, e_FM_INTR_TYPE_NORMAL);
470 FmUnregisterIntr(p_Dtsec->fmMacControllerDriver.h_Fm, e_FM_MOD_1G_MAC, p_Dtsec->macId, e_FM_INTR_TYPE_ERR);
471 FmUnregisterIntr(p_Dtsec->fmMacControllerDriver.h_Fm, e_FM_MOD_1G_MAC_TMR, p_Dtsec->macId, e_FM_INTR_TYPE_NORMAL);
474 FreeHashTable(p_Dtsec->p_MulticastAddrHash);
475 p_Dtsec->p_MulticastAddrHash = NULL;
478 FreeHashTable(p_Dtsec->p_UnicastAddrHash);
479 p_Dtsec->p_UnicastAddrHash = NULL;
484 static void HardwareClearAddrInPaddr(t_Dtsec *p_Dtsec, uint8_t paddrNum)
486 WRITE_UINT32(((t_DtsecMemMap*)p_Dtsec->p_MemMap)->macaddr[paddrNum].exact_match1, 0x0);
487 WRITE_UINT32(((t_DtsecMemMap*)p_Dtsec->p_MemMap)->macaddr[paddrNum].exact_match2, 0x0);
492 static void HardwareAddAddrInPaddr(t_Dtsec *p_Dtsec, uint64_t *p_Addr, uint8_t paddrNum)
496 t_DtsecMemMap *p_DtsecMemMap = (t_DtsecMemMap*)p_Dtsec->p_MemMap;
509 static t_Error GracefulStop(t_Dtsec *p_Dtsec, e_CommMode mode)
513 ASSERT_COND(p_Dtsec);
515 p_MemMap= (t_DtsecMemMap*)(p_Dtsec->p_MemMap);
540 static t_Error GracefulRestart(t_Dtsec *p_Dtsec, e_CommMode mode)
544 ASSERT_COND(p_Dtsec);
546 p_MemMap= (t_DtsecMemMap*)(p_Dtsec->p_MemMap);
572 t_Dtsec *p_Dtsec = (t_Dtsec *)h_Dtsec;
574 SANITY_CHECK_RETURN_ERROR(p_Dtsec, E_INVALID_HANDLE);
575 SANITY_CHECK_RETURN_ERROR(p_Dtsec->p_DtsecDriverParam, E_INVALID_STATE);
577 p_Dtsec->p_DtsecDriverParam->loopback = newVal;
586 t_Dtsec *p_Dtsec = (t_Dtsec *)h_Dtsec;
588 SANITY_CHECK_RETURN_ERROR(p_Dtsec, E_INVALID_HANDLE);
589 SANITY_CHECK_RETURN_ERROR(p_Dtsec->p_DtsecDriverParam, E_INVALID_STATE);
591 p_Dtsec->p_DtsecDriverParam->maxFrameLength = newVal;
600 t_Dtsec *p_Dtsec = (t_Dtsec *)h_Dtsec;
602 SANITY_CHECK_RETURN_ERROR(p_Dtsec, E_INVALID_HANDLE);
603 SANITY_CHECK_RETURN_ERROR(p_Dtsec->p_DtsecDriverParam, E_INVALID_STATE);
605 p_Dtsec->p_DtsecDriverParam->padAndCrcEnable = newVal;
614 t_Dtsec *p_Dtsec = (t_Dtsec *)h_Dtsec;
616 SANITY_CHECK_RETURN_ERROR(p_Dtsec, E_INVALID_HANDLE);
617 SANITY_CHECK_RETURN_ERROR(p_Dtsec->p_DtsecDriverParam, E_INVALID_STATE);
619 p_Dtsec->p_DtsecDriverParam->halfDuplex = newVal;
633 t_Dtsec *p_Dtsec = (t_Dtsec *)h_Dtsec;
635 SANITY_CHECK_RETURN_ERROR(p_Dtsec, E_INVALID_HANDLE);
636 SANITY_CHECK_RETURN_ERROR(p_Dtsec->p_DtsecDriverParam, E_INVALID_STATE);
638 p_Dtsec->p_DtsecDriverParam->lengthCheckEnable = newVal;
646 t_Dtsec *p_Dtsec = (t_Dtsec *)h_Dtsec;
649 SANITY_CHECK_RETURN_ERROR(p_Dtsec, E_INVALID_HANDLE);
650 SANITY_CHECK_RETURN_ERROR(p_Dtsec->p_DtsecDriverParam, E_INVALID_STATE);
658 p_Dtsec->exceptions |= bitMask;
660 p_Dtsec->exceptions &= ~bitMask;
667 if(!p_Dtsec->ptpTsuEnabled)
672 p_Dtsec->enTsuErrExeption = TRUE;
674 p_Dtsec->enTsuErrExeption = FALSE;
690 t_Dtsec *p_Dtsec = (t_Dtsec *)h_Dtsec;
694 SANITY_CHECK_RETURN_ERROR(p_Dtsec, E_INVALID_HANDLE);
695 SANITY_CHECK_RETURN_ERROR(p_Dtsec->p_MemMap, E_INVALID_HANDLE);
697 p_MemMap= (t_DtsecMemMap*)(p_Dtsec->p_MemMap);
706 GracefulRestart(p_Dtsec, mode);
715 t_Dtsec *p_Dtsec = (t_Dtsec *)h_Dtsec;
719 SANITY_CHECK_RETURN_ERROR(p_Dtsec, E_INVALID_HANDLE);
720 SANITY_CHECK_RETURN_ERROR(p_Dtsec->p_MemMap, E_INVALID_HANDLE);
722 p_MemMap = (t_DtsecMemMap*)(p_Dtsec->p_MemMap);
724 GracefulStop(p_Dtsec, mode);
740 t_Dtsec *p_Dtsec = (t_Dtsec *)h_Dtsec;
744 SANITY_CHECK_RETURN_ERROR(p_Dtsec, E_INVALID_STATE);
745 SANITY_CHECK_RETURN_ERROR(!p_Dtsec->p_DtsecDriverParam, E_INVALID_STATE);
746 SANITY_CHECK_RETURN_ERROR(p_Dtsec->p_MemMap, E_INVALID_STATE);
748 p_MemMap = (t_DtsecMemMap*)(p_Dtsec->p_MemMap);
764 FM_GetRevision(p_Dtsec->fmMacControllerDriver.h_Fm, &revInfo);
791 t_Dtsec *p_Dtsec = (t_Dtsec *)h_Dtsec;
795 SANITY_CHECK_RETURN_ERROR(p_Dtsec, E_INVALID_STATE);
796 SANITY_CHECK_RETURN_ERROR(!p_Dtsec->p_DtsecDriverParam, E_INVALID_STATE);
797 SANITY_CHECK_RETURN_ERROR(p_Dtsec->p_MemMap, E_INVALID_STATE);
799 p_MemMap = (t_DtsecMemMap*)(p_Dtsec->p_MemMap);
816 t_Dtsec *p_Dtsec = (t_Dtsec *)h_Dtsec;
818 SANITY_CHECK_RETURN_ERROR(p_Dtsec, E_INVALID_HANDLE);
819 SANITY_CHECK_RETURN_ERROR(!p_Dtsec->p_DtsecDriverParam, E_INVALID_STATE);
821 if((p_Dtsec->enetMode == e_ENET_MODE_SGMII_10) || (p_Dtsec->enetMode == e_ENET_MODE_SGMII_100))
824 p_Dtsec->ptpTsuEnabled = TRUE;
825 WRITE_UINT32(p_Dtsec->p_MemMap->rctrl, GET_UINT32(p_Dtsec->p_MemMap->rctrl) | RCTRL_RTSE);
826 WRITE_UINT32(p_Dtsec->p_MemMap->tctrl, GET_UINT32(p_Dtsec->p_MemMap->tctrl) | TCTRL_TTSE);
833 t_Dtsec *p_Dtsec = (t_Dtsec *)h_Dtsec;
835 SANITY_CHECK_RETURN_ERROR(p_Dtsec, E_INVALID_HANDLE);
836 SANITY_CHECK_RETURN_ERROR(!p_Dtsec->p_DtsecDriverParam, E_INVALID_STATE);
838 p_Dtsec->ptpTsuEnabled = FALSE;
839 WRITE_UINT32(p_Dtsec->p_MemMap->rctrl, GET_UINT32(p_Dtsec->p_MemMap->rctrl) & ~RCTRL_RTSE);
840 WRITE_UINT32(p_Dtsec->p_MemMap->tctrl, GET_UINT32(p_Dtsec->p_MemMap->tctrl) & ~TCTRL_TTSE);
849 t_Dtsec *p_Dtsec = (t_Dtsec *)h_Dtsec;
852 SANITY_CHECK_RETURN_ERROR(p_Dtsec, E_INVALID_HANDLE);
853 SANITY_CHECK_RETURN_ERROR(p_Dtsec->p_MemMap, E_NULL_POINTER);
856 if (p_Dtsec->statisticsLevel == e_FM_MAC_NONE_STATISTICS)
859 p_DtsecMemMap = p_Dtsec->p_MemMap;
862 if (p_Dtsec->statisticsLevel == e_FM_MAC_FULL_STATISTICS)
865 + p_Dtsec->internalStatistics.tr64; /**< r-10G tr-DT 64 byte frame counter */
867 + p_Dtsec->internalStatistics.tr127; /**< r-10G 65 to 127 byte frame counter */
869 + p_Dtsec->internalStatistics.tr255; /**< r-10G 128 to 255 byte frame counter */
871 + p_Dtsec->internalStatistics.tr511; /**< r-10G 256 to 511 byte frame counter */
873 + p_Dtsec->internalStatistics.tr1k; /**< r-10G 512 to 1023 byte frame counter */
875 + p_Dtsec->internalStatistics.trmax; /**< r-10G 1024 to 1518 byte frame counter */
877 + p_Dtsec->internalStatistics.trmgv; /**< r-10G 1519 to 1522 byte good frame count */
880 + p_Dtsec->internalStatistics.rbyt; /**< Total number of byte received. */
882 + p_Dtsec->internalStatistics.rpkt; /**< Total number of packets received.*/
884 + p_Dtsec->internalStatistics.rmca; /**< Total number of multicast frame received*/
886 + p_Dtsec->internalStatistics.rbca; /**< Total number of broadcast frame received */
888 + p_Dtsec->internalStatistics.tbyt; /**< Total number of byte sent. */
890 + p_Dtsec->internalStatistics.tpkt; /**< Total number of packets sent .*/
892 + p_Dtsec->internalStatistics.tmca; /**< Total number of multicast frame sent */
894 + p_Dtsec->internalStatistics.tbca; /**< Total number of multicast frame sent */
898 + p_Dtsec->internalStatistics.rfrg; /**< Total number of packets that were less than 64 octets long with a wrong CRC.*/
900 + p_Dtsec->internalStatistics.rjbr; /**< Total number of packets longer than valid maximum length octets */
903 + p_Dtsec->internalStatistics.rdrp; /**< number of dropped packets due to internal errors of the MAC Client. */
905 + p_Dtsec->internalStatistics.raln; /**< Incremented when frames of correct length but with CRC error are received.*/
908 + p_Dtsec->internalStatistics.rund; /**< Total number of packets that were less than 64 octets long with a good CRC.*/
910 + p_Dtsec->internalStatistics.rovr; /**< T,B.D*/
913 + p_Dtsec->internalStatistics.rxpf; /**< Pause MAC Control received */
915 + p_Dtsec->internalStatistics.txpf; /**< Pause MAC Control sent */
922 + p_Dtsec->internalStatistics.rflr
924 + p_Dtsec->internalStatistics.rcde
926 + p_Dtsec->internalStatistics.rcse;
929 + p_Dtsec->internalStatistics.tdrp; /**< Frames received, but discarded due to problems within the MAC TX N/A!.*/
932 + p_Dtsec->internalStatistics.tfcs;
941 t_Dtsec *p_Dtsec = (t_Dtsec *)h_Dtsec;
946 SANITY_CHECK_RETURN_ERROR(p_Dtsec, E_INVALID_HANDLE);
947 SANITY_CHECK_RETURN_ERROR(p_Dtsec->p_MemMap, E_NULL_POINTER);
949 p_DtsecMemMap = p_Dtsec->p_MemMap;
953 p_Dtsec->addr = addr;
970 t_Dtsec *p_Dtsec = (t_Dtsec *)h_Dtsec;
972 SANITY_CHECK_RETURN_ERROR(p_Dtsec, E_INVALID_HANDLE);
975 WRITE_UINT32(p_Dtsec->p_MemMap->ecntrl, GET_UINT32(p_Dtsec->p_MemMap->ecntrl) | ECNTRL_CLRCNT);
978 memset((char *)&p_Dtsec->internalStatistics, (char)0x0, sizeof(t_InternalStatistics));
987 t_Dtsec *p_Dtsec = (t_Dtsec *) h_Dtsec;
991 SANITY_CHECK_RETURN_ERROR(p_Dtsec, E_INVALID_HANDLE);
1001 if (p_Dtsec->indAddrRegUsed[paddrNum])
1002 if (p_Dtsec->paddr[paddrNum] == ethAddr)
1007 if (!(p_Dtsec->indAddrRegUsed[paddrNum]))
1010 p_Dtsec->indAddrRegUsed[paddrNum] = TRUE;
1012 p_Dtsec->paddr[paddrNum] = ethAddr;
1015 HardwareAddAddrInPaddr(p_Dtsec, &ethAddr, paddrNum);
1016 p_Dtsec->numOfIndAddrInRegs++;
1029 t_Dtsec *p_Dtsec = (t_Dtsec *) h_Dtsec;
1033 SANITY_CHECK_RETURN_ERROR(p_Dtsec, E_INVALID_HANDLE);
1040 if ((p_Dtsec->indAddrRegUsed[paddrNum]) &&
1041 (p_Dtsec->paddr[paddrNum] == ethAddr))
1044 p_Dtsec->indAddrRegUsed[paddrNum] = FALSE;
1046 HardwareClearAddrInPaddr(p_Dtsec, paddrNum);
1047 p_Dtsec->numOfIndAddrInRegs--;
1060 t_Dtsec *p_Dtsec = (t_Dtsec *)h_Dtsec;
1068 SANITY_CHECK_RETURN_ERROR(p_Dtsec, E_INVALID_HANDLE);
1069 SANITY_CHECK_RETURN_ERROR(p_Dtsec->p_MemMap, E_NULL_POINTER);
1071 p_DtsecMemMap = p_Dtsec->p_MemMap;
1094 LIST_AddToTail(&(p_HashEntry->node), &(p_Dtsec->p_MulticastAddrHash->p_Lsts[crcMirror]));
1101 LIST_AddToTail(&(p_HashEntry->node), &(p_Dtsec->p_UnicastAddrHash->p_Lsts[crcMirror]));
1114 t_Dtsec *p_Dtsec = (t_Dtsec *)h_Dtsec;
1123 SANITY_CHECK_RETURN_ERROR(p_Dtsec, E_INVALID_HANDLE);
1124 SANITY_CHECK_RETURN_ERROR(p_Dtsec->p_MemMap, E_NULL_POINTER);
1126 p_DtsecMemMap = p_Dtsec->p_MemMap;
1144 LIST_FOR_EACH(p_Pos, &(p_Dtsec->p_MulticastAddrHash->p_Lsts[crcMirror]))
1154 if(LIST_IsEmpty(&p_Dtsec->p_MulticastAddrHash->p_Lsts[crcMirror]))
1161 LIST_FOR_EACH(p_Pos, &(p_Dtsec->p_UnicastAddrHash->p_Lsts[crcMirror]))
1171 if(LIST_IsEmpty(&p_Dtsec->p_UnicastAddrHash->p_Lsts[crcMirror]))
1187 t_Dtsec *p_Dtsec = (t_Dtsec *)h_Dtsec;
1191 SANITY_CHECK_RETURN_ERROR(p_Dtsec, E_INVALID_HANDLE);
1192 SANITY_CHECK_RETURN_ERROR(!p_Dtsec->p_DtsecDriverParam, E_INVALID_HANDLE);
1193 SANITY_CHECK_RETURN_ERROR(p_Dtsec->p_MemMap, E_NULL_POINTER);
1195 p_DtsecMemMap = p_Dtsec->p_MemMap;
1213 t_Dtsec *p_Dtsec = (t_Dtsec *)h_Dtsec;
1216 SANITY_CHECK_RETURN_ERROR(p_Dtsec, E_INVALID_HANDLE);
1217 SANITY_CHECK_RETURN_ERROR(p_Dtsec->p_MemMap, E_NULL_POINTER);
1219 p_DtsecMemMap = p_Dtsec->p_MemMap;
1221 p_Dtsec->statisticsLevel = statisticsLevel;
1223 switch (p_Dtsec->statisticsLevel)
1230 p_Dtsec->exceptions &= ~IMASK_MSROEN;
1237 p_Dtsec->exceptions |= IMASK_MSROEN;
1244 p_Dtsec->exceptions |= IMASK_MSROEN;
1257 t_Dtsec *p_Dtsec = (t_Dtsec *)h_Dtsec;
1261 SANITY_CHECK_RETURN_ERROR(p_Dtsec, E_INVALID_HANDLE);
1262 SANITY_CHECK_RETURN_ERROR(!p_Dtsec->p_DtsecDriverParam, E_INVALID_HANDLE);
1263 p_DtsecMemMap = p_Dtsec->p_MemMap;
1269 p_Dtsec->enetMode = MAKE_ENET_MODE(ENET_INTERFACE_FROM_MODE(p_Dtsec->enetMode), speed);
1270 p_Dtsec->halfDuplex = !fullDuplex;
1273 if(p_Dtsec->halfDuplex)
1279 if((p_Dtsec->enetMode == e_ENET_MODE_RGMII_10) ||
1280 (p_Dtsec->enetMode == e_ENET_MODE_RGMII_100)||
1281 (p_Dtsec->enetMode == e_ENET_MODE_SGMII_10) ||
1282 (p_Dtsec->enetMode == e_ENET_MODE_SGMII_100))
1284 else if((p_Dtsec->enetMode == e_ENET_MODE_RGMII_1000) ||
1285 (p_Dtsec->enetMode == e_ENET_MODE_SGMII_1000)||
1286 (p_Dtsec->enetMode == e_ENET_MODE_GMII_1000))
1293 if ((p_Dtsec->enetMode == e_ENET_MODE_RGMII_100) ||
1294 (p_Dtsec->enetMode == e_ENET_MODE_SGMII_100))
1308 t_Dtsec *p_Dtsec = (t_Dtsec *)h_Dtsec;
1310 SANITY_CHECK_RETURN_ERROR(p_Dtsec, E_INVALID_HANDLE);
1311 SANITY_CHECK_RETURN_ERROR(!p_Dtsec->p_DtsecDriverParam, E_INVALID_HANDLE);
1313 *macId = p_Dtsec->macId;
1322 t_Dtsec *p_Dtsec = (t_Dtsec *)h_Dtsec;
1325 SANITY_CHECK_RETURN_ERROR(p_Dtsec, E_INVALID_HANDLE);
1326 SANITY_CHECK_RETURN_ERROR(!p_Dtsec->p_DtsecDriverParam, E_INVALID_HANDLE);
1327 SANITY_CHECK_RETURN_ERROR(p_Dtsec->p_MemMap, E_NULL_POINTER);
1329 p_DtsecMemMap = p_Dtsec->p_MemMap;
1339 t_Dtsec *p_Dtsec = (t_Dtsec *)h_Dtsec;
1343 SANITY_CHECK_RETURN_ERROR(p_Dtsec, E_INVALID_HANDLE);
1344 SANITY_CHECK_RETURN_ERROR(!p_Dtsec->p_DtsecDriverParam, E_INVALID_HANDLE);
1345 SANITY_CHECK_RETURN_ERROR(p_Dtsec->p_MemMap, E_NULL_POINTER);
1347 p_DtsecMemMap = p_Dtsec->p_MemMap;
1355 p_Dtsec->exceptions |= bitMask;
1357 p_Dtsec->exceptions &= ~bitMask;
1372 (p_Dtsec->statisticsLevel != e_FM_MAC_NONE_STATISTICS))
1378 if(!p_Dtsec->ptpTsuEnabled)
1385 p_Dtsec->enTsuErrExeption = TRUE;
1390 p_Dtsec->enTsuErrExeption = FALSE;
1407 t_Dtsec *p_Dtsec = (t_Dtsec *)h_Dtsec;
1412 if (p_Dtsec->p_MemMap)
1415 DUMP_TITLE(p_Dtsec->p_MemMap, ("MAC %d: ", p_Dtsec->macId));
1416 DUMP_VAR(p_Dtsec->p_MemMap, tsec_id1);
1417 DUMP_VAR(p_Dtsec->p_MemMap, tsec_id2);
1418 DUMP_VAR(p_Dtsec->p_MemMap, ievent);
1419 DUMP_VAR(p_Dtsec->p_MemMap, imask);
1420 DUMP_VAR(p_Dtsec->p_MemMap, edis);
1421 DUMP_VAR(p_Dtsec->p_MemMap, ecntrl);
1422 DUMP_VAR(p_Dtsec->p_MemMap, ptv);
1423 DUMP_VAR(p_Dtsec->p_MemMap, tmr_ctrl);
1424 DUMP_VAR(p_Dtsec->p_MemMap, tmr_pevent);
1425 DUMP_VAR(p_Dtsec->p_MemMap, tmr_pemask);
1426 DUMP_VAR(p_Dtsec->p_MemMap, tctrl);
1427 DUMP_VAR(p_Dtsec->p_MemMap, rctrl);
1428 DUMP_VAR(p_Dtsec->p_MemMap, maccfg1);
1429 DUMP_VAR(p_Dtsec->p_MemMap, maccfg2);
1430 DUMP_VAR(p_Dtsec->p_MemMap, ipgifg);
1431 DUMP_VAR(p_Dtsec->p_MemMap, hafdup);
1432 DUMP_VAR(p_Dtsec->p_MemMap, maxfrm);
1434 DUMP_VAR(p_Dtsec->p_MemMap, macstnaddr1);
1435 DUMP_VAR(p_Dtsec->p_MemMap, macstnaddr2);
1439 DUMP_VAR(p_Dtsec->p_MemMap, macaddr[i].exact_match1);
1440 DUMP_VAR(p_Dtsec->p_MemMap, macaddr[i].exact_match2);
1457 t_Dtsec *p_Dtsec = (t_Dtsec *)h_Dtsec;
1465 SANITY_CHECK_RETURN_ERROR(p_Dtsec, E_INVALID_HANDLE);
1466 SANITY_CHECK_RETURN_ERROR(p_Dtsec->p_DtsecDriverParam, E_INVALID_STATE);
1467 SANITY_CHECK_RETURN_ERROR(p_Dtsec->p_MemMap, E_INVALID_STATE);
1469 CHECK_INIT_PARAMETERS(p_Dtsec, CheckInitParameters);
1471 p_DtsecDriverParam = p_Dtsec->p_DtsecDriverParam;
1472 p_Dtsec->halfDuplex = p_DtsecDriverParam->halfDuplex;
1473 p_Dtsec->debugMode = p_DtsecDriverParam->debugMode;
1474 p_DtsecMemMap = p_Dtsec->p_MemMap;
1479 if ((p_Dtsec->enetMode == e_ENET_MODE_RGMII_10) ||
1480 (p_Dtsec->enetMode == e_ENET_MODE_RGMII_100) ||
1481 (p_Dtsec->enetMode == e_ENET_MODE_RGMII_1000) ||
1482 (p_Dtsec->enetMode == e_ENET_MODE_RMII_10) ||
1483 (p_Dtsec->enetMode == e_ENET_MODE_RMII_100))
1489 if ((p_Dtsec->enetMode == e_ENET_MODE_SGMII_10) ||
1490 (p_Dtsec->enetMode == e_ENET_MODE_SGMII_100) ||
1491 (p_Dtsec->enetMode == e_ENET_MODE_SGMII_1000)||
1492 (p_Dtsec->enetMode == e_ENET_MODE_MII_10) ||
1493 (p_Dtsec->enetMode == e_ENET_MODE_MII_100))
1506 if ((p_Dtsec->enetMode == e_ENET_MODE_RGMII_10) ||
1507 (p_Dtsec->enetMode == e_ENET_MODE_RGMII_100) ||
1508 (p_Dtsec->enetMode == e_ENET_MODE_RGMII_1000) ||
1509 (p_Dtsec->enetMode == e_ENET_MODE_GMII_1000))
1511 if ((p_Dtsec->enetMode == e_ENET_MODE_SGMII_10) ||
1512 (p_Dtsec->enetMode == e_ENET_MODE_SGMII_100) ||
1513 (p_Dtsec->enetMode == e_ENET_MODE_SGMII_1000))
1515 if (p_Dtsec->enetMode == e_ENET_MODE_QSGMII_1000)
1517 if ((p_Dtsec->enetMode == e_ENET_MODE_RGMII_1000) ||
1518 (p_Dtsec->enetMode == e_ENET_MODE_RGMII_10)||
1519 (p_Dtsec->enetMode == e_ENET_MODE_RGMII_100))
1521 if ((p_Dtsec->enetMode == e_ENET_MODE_RGMII_100) ||
1522 (p_Dtsec->enetMode == e_ENET_MODE_SGMII_100) ||
1523 (p_Dtsec->enetMode == e_ENET_MODE_RMII_100))
1525 if ((p_Dtsec->enetMode == e_ENET_MODE_RMII_10) || (p_Dtsec->enetMode == e_ENET_MODE_RMII_100))
1535 FM_GetRevision(p_Dtsec->fmMacControllerDriver.h_Fm, &revInfo);
1591 WRITE_UINT32(p_Dtsec->p_MiiMemMap->miimcfg, MIIMCFG_RESET_MGMT);
1592 WRITE_UINT32(p_Dtsec->p_MiiMemMap->miimcfg, ~MIIMCFG_RESET_MGMT);
1594 WRITE_UINT32(p_Dtsec->p_MiiMemMap->miimcfg,
1595 (uint32_t)GetMiiDiv((int32_t)(((p_Dtsec->fmMacControllerDriver.clkFreq*10)/2)/8)));
1597 if(p_Dtsec->enetMode == e_ENET_MODE_SGMII_1000)
1604 DTSEC_MII_WritePhyReg(p_Dtsec, p_DtsecDriverParam->tbiPhyAddr, 17, tmpReg16);
1608 DTSEC_MII_WritePhyReg(p_Dtsec, p_DtsecDriverParam->tbiPhyAddr, 17, tmpReg16);
1613 DTSEC_MII_WritePhyReg(p_Dtsec, p_DtsecDriverParam->tbiPhyAddr, 0, tmpReg16);
1616 DTSEC_MII_WritePhyReg(p_Dtsec, p_DtsecDriverParam->tbiPhyAddr, 4, tmpReg16);
1619 DTSEC_MII_WritePhyReg(p_Dtsec, p_DtsecDriverParam->tbiPhyAddr, 0, tmpReg16);
1625 if(p_Dtsec->ptpTsuEnabled)
1628 if (p_Dtsec->enTsuErrExeption)
1655 if( (p_Dtsec->enetMode == e_ENET_MODE_RMII_10) ||
1656 (p_Dtsec->enetMode == e_ENET_MODE_RMII_100) ||
1657 (p_Dtsec->enetMode == e_ENET_MODE_MII_10) ||
1658 (p_Dtsec->enetMode == e_ENET_MODE_MII_100) ||
1659 (p_Dtsec->enetMode == e_ENET_MODE_RGMII_10) ||
1660 (p_Dtsec->enetMode == e_ENET_MODE_RGMII_100)||
1661 (p_Dtsec->enetMode == e_ENET_MODE_SGMII_10) ||
1662 (p_Dtsec->enetMode == e_ENET_MODE_SGMII_100))
1664 else if((p_Dtsec->enetMode == e_ENET_MODE_RGMII_1000) ||
1665 (p_Dtsec->enetMode == e_ENET_MODE_SGMII_1000)||
1666 (p_Dtsec->enetMode == e_ENET_MODE_GMII_1000)||
1667 (p_Dtsec->enetMode == e_ENET_MODE_QSGMII_1000))
1725 err = FmSetMacMaxFrame(p_Dtsec->fmMacControllerDriver.h_Fm,
1727 p_Dtsec->fmMacControllerDriver.macId,
1738 WRITE_UINT32(p_DtsecMemMap->imask, p_Dtsec->exceptions);
1747 addr = p_Dtsec->addr;
1773 p_Dtsec->p_MulticastAddrHash = AllocHashTable(HASH_TABLE_SIZE);
1774 if(!p_Dtsec->p_MulticastAddrHash)
1776 FreeInitResources(p_Dtsec);
1780 p_Dtsec->p_UnicastAddrHash = AllocHashTable(HASH_TABLE_SIZE);
1781 if(!p_Dtsec->p_UnicastAddrHash)
1783 FreeInitResources(p_Dtsec);
1788 FmRegisterIntr(p_Dtsec->fmMacControllerDriver.h_Fm, e_FM_MOD_1G_MAC, p_Dtsec->macId, e_FM_INTR_TYPE_ERR, DtsecErrException , p_Dtsec);
1790 FmRegisterIntr(p_Dtsec->fmMacControllerDriver.h_Fm, e_FM_MOD_1G_MAC_TMR, p_Dtsec->macId, e_FM_INTR_TYPE_NORMAL, Dtsec1588Exception , p_Dtsec);
1792 if (p_Dtsec->mdioIrq != NO_IRQ)
1794 XX_SetIntr(p_Dtsec->mdioIrq, DtsecException, p_Dtsec);
1795 XX_EnableIntr(p_Dtsec->mdioIrq);
1799 p_Dtsec->p_DtsecDriverParam = NULL;
1801 err = DtsecSetStatistics(p_Dtsec, e_FM_MAC_FULL_STATISTICS);
1804 FreeInitResources(p_Dtsec);
1815 t_Dtsec *p_Dtsec = (t_Dtsec *)h_Dtsec;
1817 SANITY_CHECK_RETURN_ERROR(p_Dtsec, E_INVALID_HANDLE);
1819 FreeInitResources(p_Dtsec);
1821 if (p_Dtsec->p_DtsecDriverParam)
1823 XX_Free(p_Dtsec->p_DtsecDriverParam);
1824 p_Dtsec->p_DtsecDriverParam = NULL;
1892 t_Dtsec *p_Dtsec;
1901 p_Dtsec = (t_Dtsec *) XX_Malloc(sizeof(t_Dtsec));
1902 if (!p_Dtsec)
1907 /* Zero out * p_Dtsec */
1908 memset(p_Dtsec, 0, sizeof(t_Dtsec));
1909 InitFmMacControllerDriver(&p_Dtsec->fmMacControllerDriver);
1915 XX_Free(p_Dtsec);
1923 p_Dtsec->p_DtsecDriverParam = p_DtsecDriverParam;
1928 p_Dtsec->addr |= ((uint64_t)p_FmMacParam->addr[i] << ((5-i) * 8));
1930 p_Dtsec->p_MemMap = (t_DtsecMemMap *)UINT_TO_PTR(baseAddr);
1931 p_Dtsec->p_MiiMemMap = (t_MiiAccessMemMap *)UINT_TO_PTR(baseAddr + DTSEC_TO_MII_OFFSET);
1932 p_Dtsec->enetMode = p_FmMacParam->enetMode;
1933 p_Dtsec->macId = p_FmMacParam->macId;
1934 p_Dtsec->exceptions = DEFAULT_exceptions;
1935 p_Dtsec->mdioIrq = p_FmMacParam->mdioIrq;
1936 p_Dtsec->f_Exception = p_FmMacParam->f_Exception;
1937 p_Dtsec->f_Event = p_FmMacParam->f_Event;
1938 p_Dtsec->h_App = p_FmMacParam->h_App;
1940 return p_Dtsec;