Lines Matching refs:p_Dtsec

56 static t_Error CheckInitParameters(t_Dtsec *p_Dtsec)  in CheckInitParameters()  argument
58 if (ENET_SPEED_FROM_MODE(p_Dtsec->enetMode) >= e_ENET_SPEED_10000) in CheckInitParameters()
60 if (p_Dtsec->macId >= FM_MAX_NUM_OF_1G_MACS) in CheckInitParameters()
62 if (p_Dtsec->addr == 0) in CheckInitParameters()
64 if ((ENET_SPEED_FROM_MODE(p_Dtsec->enetMode) >= e_ENET_SPEED_1000) && in CheckInitParameters()
65 p_Dtsec->p_DtsecDriverParam->halfdup_on) in CheckInitParameters()
67 if (p_Dtsec->p_DtsecDriverParam->halfdup_on && (p_Dtsec->p_DtsecDriverParam)->loopback) in CheckInitParameters()
70 if (p_Dtsec->fmMacControllerDriver.fmRevInfo.majorRev <= 6) /* fixed for rev3 */ in CheckInitParameters()
71 if (p_Dtsec->p_DtsecDriverParam->rx_preamble) in CheckInitParameters()
74 …if (((p_Dtsec->p_DtsecDriverParam)->tx_preamble || (p_Dtsec->p_DtsecDriverParam)->rx_preamble) &&(… in CheckInitParameters()
76 if ((p_Dtsec->p_DtsecDriverParam)->halfdup_on && in CheckInitParameters()
77 … (p_Dtsec->p_DtsecDriverParam->tx_time_stamp_en || p_Dtsec->p_DtsecDriverParam->rx_time_stamp_en)) in CheckInitParameters()
79 if ((p_Dtsec->p_DtsecDriverParam)->rx_flow && (p_Dtsec->p_DtsecDriverParam)->rx_ctrl_acc ) in CheckInitParameters()
81 if ((p_Dtsec->p_DtsecDriverParam)->rx_prepend > MAX_PACKET_ALIGNMENT) in CheckInitParameters()
83 if (((p_Dtsec->p_DtsecDriverParam)->non_back_to_back_ipg1 > MAX_INTER_PACKET_GAP) || in CheckInitParameters()
84 ((p_Dtsec->p_DtsecDriverParam)->non_back_to_back_ipg2 > MAX_INTER_PACKET_GAP) || in CheckInitParameters()
85 ((p_Dtsec->p_DtsecDriverParam)->back_to_back_ipg > MAX_INTER_PACKET_GAP)) in CheckInitParameters()
87 if ((p_Dtsec->p_DtsecDriverParam)->halfdup_alt_backoff_val > MAX_INTER_PALTERNATE_BEB) in CheckInitParameters()
89 if ((p_Dtsec->p_DtsecDriverParam)->halfdup_retransmit > MAX_RETRANSMISSION) in CheckInitParameters()
91 if ((p_Dtsec->p_DtsecDriverParam)->halfdup_coll_window > MAX_COLLISION_WINDOW) in CheckInitParameters()
96 if (p_Dtsec->p_DtsecDriverParam->tbipa > MAX_PHYS) in CheckInitParameters()
98 if (!p_Dtsec->f_Exception) in CheckInitParameters()
100 if (!p_Dtsec->f_Event) in CheckInitParameters()
104 if (p_Dtsec->p_DtsecDriverParam->rx_len_check) in CheckInitParameters()
127 static void UpdateStatistics(t_Dtsec *p_Dtsec) in UpdateStatistics() argument
131 fman_dtsec_get_clear_carry_regs(p_Dtsec->p_MemMap, &car1, &car2); in UpdateStatistics()
136 p_Dtsec->internalStatistics.tr64 += VAL22BIT; in UpdateStatistics()
138 p_Dtsec->internalStatistics.tr127 += VAL22BIT; in UpdateStatistics()
140 p_Dtsec->internalStatistics.tr255 += VAL22BIT; in UpdateStatistics()
142 p_Dtsec->internalStatistics.tr511 += VAL22BIT; in UpdateStatistics()
144 p_Dtsec->internalStatistics.tr1k += VAL22BIT; in UpdateStatistics()
146 p_Dtsec->internalStatistics.trmax += VAL22BIT; in UpdateStatistics()
148 p_Dtsec->internalStatistics.trmgv += VAL22BIT; in UpdateStatistics()
150 p_Dtsec->internalStatistics.rbyt += (uint64_t)VAL32BIT; in UpdateStatistics()
152 p_Dtsec->internalStatistics.rpkt += VAL22BIT; in UpdateStatistics()
154 p_Dtsec->internalStatistics.rmca += VAL22BIT; in UpdateStatistics()
156 p_Dtsec->internalStatistics.rbca += VAL22BIT; in UpdateStatistics()
158 p_Dtsec->internalStatistics.rxpf += VAL16BIT; in UpdateStatistics()
160 p_Dtsec->internalStatistics.raln += VAL16BIT; in UpdateStatistics()
162 p_Dtsec->internalStatistics.rflr += VAL16BIT; in UpdateStatistics()
164 p_Dtsec->internalStatistics.rcde += VAL16BIT; in UpdateStatistics()
166 p_Dtsec->internalStatistics.rcse += VAL16BIT; in UpdateStatistics()
168 p_Dtsec->internalStatistics.rund += VAL16BIT; in UpdateStatistics()
170 p_Dtsec->internalStatistics.rovr += VAL16BIT; in UpdateStatistics()
172 p_Dtsec->internalStatistics.rfrg += VAL16BIT; in UpdateStatistics()
174 p_Dtsec->internalStatistics.rjbr += VAL16BIT; in UpdateStatistics()
176 p_Dtsec->internalStatistics.rdrp += VAL16BIT; in UpdateStatistics()
181 p_Dtsec->internalStatistics.tfcs += VAL12BIT; in UpdateStatistics()
183 p_Dtsec->internalStatistics.tbyt += (uint64_t)VAL32BIT; in UpdateStatistics()
185 p_Dtsec->internalStatistics.tpkt += VAL22BIT; in UpdateStatistics()
187 p_Dtsec->internalStatistics.tmca += VAL22BIT; in UpdateStatistics()
189 p_Dtsec->internalStatistics.tbca += VAL22BIT; in UpdateStatistics()
191 p_Dtsec->internalStatistics.txpf += VAL16BIT; in UpdateStatistics()
193 p_Dtsec->internalStatistics.tdrp += VAL16BIT; in UpdateStatistics()
201 t_Dtsec *p_Dtsec = (t_Dtsec *)h_Dtsec; in DtsecGetMaxFrameLength() local
203 SANITY_CHECK_RETURN_VALUE(p_Dtsec, E_INVALID_HANDLE, 0); in DtsecGetMaxFrameLength()
204 SANITY_CHECK_RETURN_VALUE(!p_Dtsec->p_DtsecDriverParam, E_INVALID_STATE, 0); in DtsecGetMaxFrameLength()
206 return fman_dtsec_get_max_frame_len(p_Dtsec->p_MemMap); in DtsecGetMaxFrameLength()
213 t_Dtsec *p_Dtsec = (t_Dtsec *)h_Dtsec; in DtsecIsr() local
215 struct dtsec_regs *p_DtsecMemMap = p_Dtsec->p_MemMap; in DtsecIsr()
225 p_Dtsec->f_Exception(p_Dtsec->h_App, e_FM_MAC_EX_1G_BAB_RX); in DtsecIsr()
227 p_Dtsec->f_Exception(p_Dtsec->h_App, e_FM_MAC_EX_1G_RX_CTL); in DtsecIsr()
229 UpdateStatistics(p_Dtsec); in DtsecIsr()
231 p_Dtsec->f_Exception(p_Dtsec->h_App, e_FM_MAC_EX_1G_GRATEFUL_TX_STP_COMPLET); in DtsecIsr()
233 p_Dtsec->f_Exception(p_Dtsec->h_App, e_FM_MAC_EX_1G_BAB_TX); in DtsecIsr()
235 p_Dtsec->f_Exception(p_Dtsec->h_App, e_FM_MAC_EX_1G_TX_CTL); in DtsecIsr()
237 p_Dtsec->f_Exception(p_Dtsec->h_App, e_FM_MAC_EX_1G_TX_ERR); in DtsecIsr()
239 p_Dtsec->f_Exception(p_Dtsec->h_App, e_FM_MAC_EX_1G_LATE_COL); in DtsecIsr()
241 p_Dtsec->f_Exception(p_Dtsec->h_App, e_FM_MAC_EX_1G_COL_RET_LMT); in DtsecIsr()
245 if (p_Dtsec->fmMacControllerDriver.fmRevInfo.majorRev == 2) in DtsecIsr()
262 XX_UDelay((uint32_t)(MIN(DtsecGetMaxFrameLength(p_Dtsec)*16/1000, 1))); in DtsecIsr()
296 …FmResetMac(p_Dtsec->fmMacControllerDriver.h_Fm, e_FM_MAC_1G, p_Dtsec->fmMacControllerDriver.macId); in DtsecIsr()
307 p_Dtsec->f_Exception(p_Dtsec->h_App, e_FM_MAC_EX_1G_TX_FIFO_UNDRN); in DtsecIsr()
310 p_Dtsec->f_Exception(p_Dtsec->h_App, e_FM_MAC_EX_1G_MAG_PCKT); in DtsecIsr()
312 p_Dtsec->f_Exception(p_Dtsec->h_App, e_FM_MAC_EX_1G_GRATEFUL_RX_STP_COMPLET); in DtsecIsr()
314 p_Dtsec->f_Exception(p_Dtsec->h_App, e_FM_MAC_EX_1G_TX_DATA_ERR); in DtsecIsr()
316 p_Dtsec->f_Exception(p_Dtsec->h_App, e_FM_MAC_EX_1G_RX_DATA_ERR); in DtsecIsr()
325 t_Dtsec *p_Dtsec = (t_Dtsec *)h_Dtsec; in DtsecMdioIsr() local
327 struct dtsec_regs *p_DtsecMemMap = p_Dtsec->p_MemMap; in DtsecMdioIsr()
339 p_Dtsec->f_Event(p_Dtsec->h_App, e_FM_MAC_EX_1G_MII_MNG_RD_COMPLET); in DtsecMdioIsr()
341 p_Dtsec->f_Event(p_Dtsec->h_App, e_FM_MAC_EX_1G_MII_MNG_WR_COMPLET); in DtsecMdioIsr()
347 t_Dtsec *p_Dtsec = (t_Dtsec *)h_Dtsec; in Dtsec1588Isr() local
349 struct dtsec_regs *p_DtsecMemMap = p_Dtsec->p_MemMap; in Dtsec1588Isr()
351 if (p_Dtsec->ptpTsuEnabled) in Dtsec1588Isr()
358 p_Dtsec->f_Exception(p_Dtsec->h_App, e_FM_MAC_EX_1G_1588_TS_RX_ERR); in Dtsec1588Isr()
365 static void FreeInitResources(t_Dtsec *p_Dtsec) in FreeInitResources() argument
367 if (p_Dtsec->mdioIrq != NO_IRQ) in FreeInitResources()
369 XX_DisableIntr(p_Dtsec->mdioIrq); in FreeInitResources()
370 XX_FreeIntr(p_Dtsec->mdioIrq); in FreeInitResources()
372 …FmUnregisterIntr(p_Dtsec->fmMacControllerDriver.h_Fm, e_FM_MOD_1G_MAC, p_Dtsec->macId, e_FM_INTR_T… in FreeInitResources()
373 …FmUnregisterIntr(p_Dtsec->fmMacControllerDriver.h_Fm, e_FM_MOD_1G_MAC, p_Dtsec->macId, e_FM_INTR_T… in FreeInitResources()
376 FreeHashTable(p_Dtsec->p_MulticastAddrHash); in FreeInitResources()
377 p_Dtsec->p_MulticastAddrHash = NULL; in FreeInitResources()
380 FreeHashTable(p_Dtsec->p_UnicastAddrHash); in FreeInitResources()
381 p_Dtsec->p_UnicastAddrHash = NULL; in FreeInitResources()
386 static t_Error GracefulStop(t_Dtsec *p_Dtsec, e_CommMode mode) in GracefulStop() argument
390 ASSERT_COND(p_Dtsec); in GracefulStop()
392 p_MemMap = p_Dtsec->p_MemMap; in GracefulStop()
401 if (p_Dtsec->fmMacControllerDriver.fmRevInfo.majorRev == 2) in GracefulStop()
412 if (p_Dtsec->fmMacControllerDriver.fmRevInfo.majorRev == 2) in GracefulStop()
427 static t_Error GracefulRestart(t_Dtsec *p_Dtsec, e_CommMode mode) in GracefulRestart() argument
431 ASSERT_COND(p_Dtsec); in GracefulRestart()
432 p_MemMap = p_Dtsec->p_MemMap; in GracefulRestart()
455 t_Dtsec *p_Dtsec = (t_Dtsec *)h_Dtsec; in DtsecConfigLoopback() local
457 SANITY_CHECK_RETURN_ERROR(p_Dtsec, E_INVALID_HANDLE); in DtsecConfigLoopback()
458 SANITY_CHECK_RETURN_ERROR(p_Dtsec->p_DtsecDriverParam, E_INVALID_STATE); in DtsecConfigLoopback()
460 p_Dtsec->p_DtsecDriverParam->loopback = newVal; in DtsecConfigLoopback()
469 t_Dtsec *p_Dtsec = (t_Dtsec *)h_Dtsec; in DtsecConfigMaxFrameLength() local
471 SANITY_CHECK_RETURN_ERROR(p_Dtsec, E_INVALID_HANDLE); in DtsecConfigMaxFrameLength()
472 SANITY_CHECK_RETURN_ERROR(p_Dtsec->p_DtsecDriverParam, E_INVALID_STATE); in DtsecConfigMaxFrameLength()
474 p_Dtsec->p_DtsecDriverParam->maximum_frame = newVal; in DtsecConfigMaxFrameLength()
483 t_Dtsec *p_Dtsec = (t_Dtsec *)h_Dtsec; in DtsecConfigPadAndCrc() local
485 SANITY_CHECK_RETURN_ERROR(p_Dtsec, E_INVALID_HANDLE); in DtsecConfigPadAndCrc()
486 SANITY_CHECK_RETURN_ERROR(p_Dtsec->p_DtsecDriverParam, E_INVALID_STATE); in DtsecConfigPadAndCrc()
488 p_Dtsec->p_DtsecDriverParam->tx_pad_crc = newVal; in DtsecConfigPadAndCrc()
497 t_Dtsec *p_Dtsec = (t_Dtsec *)h_Dtsec; in DtsecConfigHalfDuplex() local
499 SANITY_CHECK_RETURN_ERROR(p_Dtsec, E_INVALID_HANDLE); in DtsecConfigHalfDuplex()
500 SANITY_CHECK_RETURN_ERROR(p_Dtsec->p_DtsecDriverParam, E_INVALID_STATE); in DtsecConfigHalfDuplex()
502 p_Dtsec->p_DtsecDriverParam->halfdup_on = newVal; in DtsecConfigHalfDuplex()
511 t_Dtsec *p_Dtsec = (t_Dtsec *)h_Dtsec; in DtsecConfigTbiPhyAddr() local
513 SANITY_CHECK_RETURN_ERROR(p_Dtsec, E_INVALID_HANDLE); in DtsecConfigTbiPhyAddr()
514 SANITY_CHECK_RETURN_ERROR(p_Dtsec->p_DtsecDriverParam, E_INVALID_STATE); in DtsecConfigTbiPhyAddr()
516 p_Dtsec->p_DtsecDriverParam->tbi_phy_addr = newVal; in DtsecConfigTbiPhyAddr()
525 t_Dtsec *p_Dtsec = (t_Dtsec *)h_Dtsec; in DtsecConfigLengthCheck() local
527 SANITY_CHECK_RETURN_ERROR(p_Dtsec, E_INVALID_HANDLE); in DtsecConfigLengthCheck()
528 SANITY_CHECK_RETURN_ERROR(p_Dtsec->p_DtsecDriverParam, E_INVALID_STATE); in DtsecConfigLengthCheck()
530 p_Dtsec->p_DtsecDriverParam->rx_len_check = newVal; in DtsecConfigLengthCheck()
539 t_Dtsec *p_Dtsec = (t_Dtsec *)h_Dtsec; in DtsecConfigException() local
542 SANITY_CHECK_RETURN_ERROR(p_Dtsec, E_INVALID_HANDLE); in DtsecConfigException()
543 SANITY_CHECK_RETURN_ERROR(p_Dtsec->p_DtsecDriverParam, E_INVALID_STATE); in DtsecConfigException()
551 p_Dtsec->exceptions |= bitMask; in DtsecConfigException()
553 p_Dtsec->exceptions &= ~bitMask; in DtsecConfigException()
560 if (!p_Dtsec->ptpTsuEnabled) in DtsecConfigException()
564 p_Dtsec->enTsuErrExeption = TRUE; in DtsecConfigException()
566 p_Dtsec->enTsuErrExeption = FALSE; in DtsecConfigException()
581 t_Dtsec *p_Dtsec = (t_Dtsec *)h_Dtsec; in DtsecEnable() local
583 SANITY_CHECK_RETURN_ERROR(p_Dtsec, E_INVALID_HANDLE); in DtsecEnable()
584 SANITY_CHECK_RETURN_ERROR(!p_Dtsec->p_DtsecDriverParam, E_INVALID_STATE); in DtsecEnable()
586 fman_dtsec_enable(p_Dtsec->p_MemMap, in DtsecEnable()
590 GracefulRestart(p_Dtsec, mode); in DtsecEnable()
599 t_Dtsec *p_Dtsec = (t_Dtsec *)h_Dtsec; in DtsecDisable() local
601 SANITY_CHECK_RETURN_ERROR(p_Dtsec, E_INVALID_HANDLE); in DtsecDisable()
602 SANITY_CHECK_RETURN_ERROR(!p_Dtsec->p_DtsecDriverParam, E_INVALID_STATE); in DtsecDisable()
604 GracefulStop(p_Dtsec, mode); in DtsecDisable()
606 fman_dtsec_disable(p_Dtsec->p_MemMap, in DtsecDisable()
620 t_Dtsec *p_Dtsec = (t_Dtsec *)h_Dtsec; in DtsecSetTxPauseFrames() local
624 SANITY_CHECK_RETURN_ERROR(p_Dtsec, E_INVALID_STATE); in DtsecSetTxPauseFrames()
625 SANITY_CHECK_RETURN_ERROR(!p_Dtsec->p_DtsecDriverParam, E_INVALID_STATE); in DtsecSetTxPauseFrames()
628 if (p_Dtsec->fmMacControllerDriver.fmRevInfo.majorRev == 2) in DtsecSetTxPauseFrames()
635 fman_dtsec_set_tx_pause_frames(p_Dtsec->p_MemMap, pauseTime); in DtsecSetTxPauseFrames()
650 t_Dtsec *p_Dtsec = (t_Dtsec *)h_Dtsec; in DtsecRxIgnoreMacPause() local
653 SANITY_CHECK_RETURN_ERROR(p_Dtsec, E_INVALID_STATE); in DtsecRxIgnoreMacPause()
654 SANITY_CHECK_RETURN_ERROR(!p_Dtsec->p_DtsecDriverParam, E_INVALID_STATE); in DtsecRxIgnoreMacPause()
656 fman_dtsec_handle_rx_pause(p_Dtsec->p_MemMap, accept_pause); in DtsecRxIgnoreMacPause()
665 t_Dtsec *p_Dtsec = (t_Dtsec *)h_Dtsec; in DtsecEnable1588TimeStamp() local
667 SANITY_CHECK_RETURN_ERROR(p_Dtsec, E_INVALID_HANDLE); in DtsecEnable1588TimeStamp()
668 SANITY_CHECK_RETURN_ERROR(!p_Dtsec->p_DtsecDriverParam, E_INVALID_STATE); in DtsecEnable1588TimeStamp()
670 p_Dtsec->ptpTsuEnabled = TRUE; in DtsecEnable1588TimeStamp()
671 fman_dtsec_set_ts(p_Dtsec->p_MemMap, TRUE); in DtsecEnable1588TimeStamp()
680 t_Dtsec *p_Dtsec = (t_Dtsec *)h_Dtsec; in DtsecDisable1588TimeStamp() local
682 SANITY_CHECK_RETURN_ERROR(p_Dtsec, E_INVALID_HANDLE); in DtsecDisable1588TimeStamp()
683 SANITY_CHECK_RETURN_ERROR(!p_Dtsec->p_DtsecDriverParam, E_INVALID_STATE); in DtsecDisable1588TimeStamp()
685 p_Dtsec->ptpTsuEnabled = FALSE; in DtsecDisable1588TimeStamp()
686 fman_dtsec_set_ts(p_Dtsec->p_MemMap, FALSE); in DtsecDisable1588TimeStamp()
695 t_Dtsec *p_Dtsec = (t_Dtsec *)h_Dtsec; in DtsecGetStatistics() local
698 SANITY_CHECK_RETURN_ERROR(p_Dtsec, E_INVALID_HANDLE); in DtsecGetStatistics()
699 SANITY_CHECK_RETURN_ERROR(!p_Dtsec->p_DtsecDriverParam, E_INVALID_STATE); in DtsecGetStatistics()
702 p_DtsecMemMap = p_Dtsec->p_MemMap; in DtsecGetStatistics()
704 if (p_Dtsec->statisticsLevel == e_FM_MAC_NONE_STATISTICS) in DtsecGetStatistics()
709 if (p_Dtsec->statisticsLevel == e_FM_MAC_FULL_STATISTICS) in DtsecGetStatistics()
712 + p_Dtsec->internalStatistics.tr64; in DtsecGetStatistics()
714 + p_Dtsec->internalStatistics.tr127; in DtsecGetStatistics()
716 + p_Dtsec->internalStatistics.tr255; in DtsecGetStatistics()
718 + p_Dtsec->internalStatistics.tr511; in DtsecGetStatistics()
720 + p_Dtsec->internalStatistics.tr1k; in DtsecGetStatistics()
722 + p_Dtsec->internalStatistics.trmax; in DtsecGetStatistics()
724 + p_Dtsec->internalStatistics.trmgv; in DtsecGetStatistics()
728 + p_Dtsec->internalStatistics.rbyt; in DtsecGetStatistics()
730 + p_Dtsec->internalStatistics.rpkt; in DtsecGetStatistics()
733 + p_Dtsec->internalStatistics.rmca; in DtsecGetStatistics()
735 + p_Dtsec->internalStatistics.rbca; in DtsecGetStatistics()
737 + p_Dtsec->internalStatistics.tbyt; in DtsecGetStatistics()
739 + p_Dtsec->internalStatistics.tpkt; in DtsecGetStatistics()
742 + p_Dtsec->internalStatistics.tmca; in DtsecGetStatistics()
744 + p_Dtsec->internalStatistics.tbca; in DtsecGetStatistics()
748 + p_Dtsec->internalStatistics.rfrg; in DtsecGetStatistics()
750 + p_Dtsec->internalStatistics.rjbr; in DtsecGetStatistics()
752 + p_Dtsec->internalStatistics.rdrp; in DtsecGetStatistics()
754 + p_Dtsec->internalStatistics.raln; in DtsecGetStatistics()
756 + p_Dtsec->internalStatistics.rund; in DtsecGetStatistics()
758 + p_Dtsec->internalStatistics.rovr; in DtsecGetStatistics()
760 + p_Dtsec->internalStatistics.rxpf; in DtsecGetStatistics()
762 + p_Dtsec->internalStatistics.txpf; in DtsecGetStatistics()
765 … + fman_dtsec_get_stat_counter(p_DtsecMemMap,E_DTSEC_STAT_RFLR) + p_Dtsec->internalStatistics.rflr in DtsecGetStatistics()
766 … + fman_dtsec_get_stat_counter(p_DtsecMemMap,E_DTSEC_STAT_RCDE) + p_Dtsec->internalStatistics.rcde in DtsecGetStatistics()
767 … + fman_dtsec_get_stat_counter(p_DtsecMemMap,E_DTSEC_STAT_RCSE) + p_Dtsec->internalStatistics.rcse; in DtsecGetStatistics()
770 + p_Dtsec->internalStatistics.tdrp; in DtsecGetStatistics()
773 + p_Dtsec->internalStatistics.tfcs; in DtsecGetStatistics()
782 t_Dtsec *p_Dtsec = (t_Dtsec *)h_Dtsec; in DtsecModifyMacAddress() local
784 SANITY_CHECK_RETURN_ERROR(p_Dtsec, E_INVALID_HANDLE); in DtsecModifyMacAddress()
785 SANITY_CHECK_RETURN_ERROR(!p_Dtsec->p_DtsecDriverParam, E_INVALID_STATE); in DtsecModifyMacAddress()
789 p_Dtsec->addr = ENET_ADDR_TO_UINT64(*p_EnetAddr); in DtsecModifyMacAddress()
790 fman_dtsec_set_mac_address(p_Dtsec->p_MemMap, (uint8_t *)(*p_EnetAddr)); in DtsecModifyMacAddress()
799 t_Dtsec *p_Dtsec = (t_Dtsec *)h_Dtsec; in DtsecResetCounters() local
801 SANITY_CHECK_RETURN_ERROR(p_Dtsec, E_INVALID_HANDLE); in DtsecResetCounters()
802 SANITY_CHECK_RETURN_ERROR(!p_Dtsec->p_DtsecDriverParam, E_INVALID_STATE); in DtsecResetCounters()
805 fman_dtsec_reset_stat(p_Dtsec->p_MemMap); in DtsecResetCounters()
808 memset(&p_Dtsec->internalStatistics, 0, sizeof(t_InternalStatistics)); in DtsecResetCounters()
817 t_Dtsec *p_Dtsec = (t_Dtsec *) h_Dtsec; in DtsecAddExactMatchMacAddress() local
821 SANITY_CHECK_RETURN_ERROR(p_Dtsec, E_INVALID_HANDLE); in DtsecAddExactMatchMacAddress()
822 SANITY_CHECK_RETURN_ERROR(!p_Dtsec->p_DtsecDriverParam, E_INVALID_STATE); in DtsecAddExactMatchMacAddress()
832 if (p_Dtsec->indAddrRegUsed[paddrNum]) in DtsecAddExactMatchMacAddress()
833 if (p_Dtsec->paddr[paddrNum] == ethAddr) in DtsecAddExactMatchMacAddress()
838 if (!(p_Dtsec->indAddrRegUsed[paddrNum])) in DtsecAddExactMatchMacAddress()
841 p_Dtsec->indAddrRegUsed[paddrNum] = TRUE; in DtsecAddExactMatchMacAddress()
843 p_Dtsec->paddr[paddrNum] = ethAddr; in DtsecAddExactMatchMacAddress()
846 … fman_dtsec_add_addr_in_paddr(p_Dtsec->p_MemMap, (uint64_t)PTR_TO_UINT(&ethAddr), paddrNum); in DtsecAddExactMatchMacAddress()
847 p_Dtsec->numOfIndAddrInRegs++; in DtsecAddExactMatchMacAddress()
860 t_Dtsec *p_Dtsec = (t_Dtsec *) h_Dtsec; in DtsecDelExactMatchMacAddress() local
864 SANITY_CHECK_RETURN_ERROR(p_Dtsec, E_INVALID_HANDLE); in DtsecDelExactMatchMacAddress()
865 SANITY_CHECK_RETURN_ERROR(!p_Dtsec->p_DtsecDriverParam, E_INVALID_STATE); in DtsecDelExactMatchMacAddress()
872 if ((p_Dtsec->indAddrRegUsed[paddrNum]) && in DtsecDelExactMatchMacAddress()
873 (p_Dtsec->paddr[paddrNum] == ethAddr)) in DtsecDelExactMatchMacAddress()
876 p_Dtsec->indAddrRegUsed[paddrNum] = FALSE; in DtsecDelExactMatchMacAddress()
878 fman_dtsec_clear_addr_in_paddr(p_Dtsec->p_MemMap, paddrNum); in DtsecDelExactMatchMacAddress()
879 p_Dtsec->numOfIndAddrInRegs--; in DtsecDelExactMatchMacAddress()
892 t_Dtsec *p_Dtsec = (t_Dtsec *)h_Dtsec; in DtsecAddHashMacAddress() local
899 SANITY_CHECK_RETURN_ERROR(p_Dtsec, E_INVALID_HANDLE); in DtsecAddHashMacAddress()
900 SANITY_CHECK_RETURN_ERROR(!p_Dtsec->p_DtsecDriverParam, E_INVALID_STATE); in DtsecAddHashMacAddress()
904 ghtx = (bool)((fman_dtsec_get_rctrl(p_Dtsec->p_MemMap) & RCTRL_GHTX) ? TRUE : FALSE); in DtsecAddHashMacAddress()
931 fman_dtsec_set_bucket(p_Dtsec->p_MemMap, bucket, TRUE); in DtsecAddHashMacAddress()
940 NCSW_LIST_AddToTail(&(p_HashEntry->node), &(p_Dtsec->p_MulticastAddrHash->p_Lsts[bucket])); in DtsecAddHashMacAddress()
942 NCSW_LIST_AddToTail(&(p_HashEntry->node), &(p_Dtsec->p_UnicastAddrHash->p_Lsts[bucket])); in DtsecAddHashMacAddress()
951 t_Dtsec *p_Dtsec = (t_Dtsec *)h_Dtsec; in DtsecDelHashMacAddress() local
959 SANITY_CHECK_RETURN_ERROR(p_Dtsec, E_INVALID_HANDLE); in DtsecDelHashMacAddress()
960 SANITY_CHECK_RETURN_ERROR(!p_Dtsec->p_DtsecDriverParam, E_INVALID_STATE); in DtsecDelHashMacAddress()
964 ghtx = (bool)((fman_dtsec_get_rctrl(p_Dtsec->p_MemMap) & RCTRL_GHTX) ? TRUE : FALSE); in DtsecDelHashMacAddress()
984 NCSW_LIST_FOR_EACH(p_Pos, &(p_Dtsec->p_MulticastAddrHash->p_Lsts[bucket])) in DtsecDelHashMacAddress()
994 if (NCSW_LIST_IsEmpty(&p_Dtsec->p_MulticastAddrHash->p_Lsts[bucket])) in DtsecDelHashMacAddress()
995 fman_dtsec_set_bucket(p_Dtsec->p_MemMap, bucket, FALSE); in DtsecDelHashMacAddress()
1000 NCSW_LIST_FOR_EACH(p_Pos, &(p_Dtsec->p_UnicastAddrHash->p_Lsts[bucket])) in DtsecDelHashMacAddress()
1010 if (NCSW_LIST_IsEmpty(&p_Dtsec->p_UnicastAddrHash->p_Lsts[bucket])) in DtsecDelHashMacAddress()
1011 fman_dtsec_set_bucket(p_Dtsec->p_MemMap, bucket, FALSE); in DtsecDelHashMacAddress()
1024 t_Dtsec *p_Dtsec = (t_Dtsec *)h_Dtsec; in DtsecSetPromiscuous() local
1026 SANITY_CHECK_RETURN_ERROR(p_Dtsec, E_INVALID_HANDLE); in DtsecSetPromiscuous()
1027 SANITY_CHECK_RETURN_ERROR(!p_Dtsec->p_DtsecDriverParam, E_INVALID_STATE); in DtsecSetPromiscuous()
1029 fman_dtsec_set_uc_promisc(p_Dtsec->p_MemMap, newVal); in DtsecSetPromiscuous()
1030 fman_dtsec_set_mc_promisc(p_Dtsec->p_MemMap, newVal); in DtsecSetPromiscuous()
1039 t_Dtsec *p_Dtsec = (t_Dtsec *)h_Dtsec; in DtsecSetStatistics() local
1042 SANITY_CHECK_RETURN_ERROR(p_Dtsec, E_INVALID_HANDLE); in DtsecSetStatistics()
1043 SANITY_CHECK_RETURN_ERROR(!p_Dtsec->p_DtsecDriverParam, E_INVALID_STATE); in DtsecSetStatistics()
1045 p_Dtsec->statisticsLevel = statisticsLevel; in DtsecSetStatistics()
1047 err = (t_Error)fman_dtsec_set_stat_level(p_Dtsec->p_MemMap, in DtsecSetStatistics()
1055 p_Dtsec->exceptions &= ~DTSEC_IMASK_MSROEN; in DtsecSetStatistics()
1058 p_Dtsec->exceptions |= DTSEC_IMASK_MSROEN; in DtsecSetStatistics()
1061 p_Dtsec->exceptions |= DTSEC_IMASK_MSROEN; in DtsecSetStatistics()
1074 t_Dtsec *p_Dtsec = (t_Dtsec *)h_Dtsec; in DtsecSetWakeOnLan() local
1076 SANITY_CHECK_RETURN_ERROR(p_Dtsec, E_INVALID_STATE); in DtsecSetWakeOnLan()
1077 SANITY_CHECK_RETURN_ERROR(!p_Dtsec->p_DtsecDriverParam, E_INVALID_STATE); in DtsecSetWakeOnLan()
1079 fman_dtsec_set_wol(p_Dtsec->p_MemMap, en); in DtsecSetWakeOnLan()
1088 t_Dtsec *p_Dtsec = (t_Dtsec *)h_Dtsec; in DtsecAdjustLink() local
1093 SANITY_CHECK_RETURN_ERROR(p_Dtsec, E_INVALID_HANDLE); in DtsecAdjustLink()
1094 SANITY_CHECK_RETURN_ERROR(!p_Dtsec->p_DtsecDriverParam, E_INVALID_STATE); in DtsecAdjustLink()
1096 p_Dtsec->enetMode = MAKE_ENET_MODE(ENET_INTERFACE_FROM_MODE(p_Dtsec->enetMode), speed); in DtsecAdjustLink()
1097 enet_interface = (enum enet_interface) ENET_INTERFACE_FROM_MODE(p_Dtsec->enetMode); in DtsecAdjustLink()
1098 enet_speed = (enum enet_speed) ENET_SPEED_FROM_MODE(p_Dtsec->enetMode); in DtsecAdjustLink()
1099 p_Dtsec->halfDuplex = !fullDuplex; in DtsecAdjustLink()
1101 err = fman_dtsec_adjust_link(p_Dtsec->p_MemMap, enet_interface, enet_speed, fullDuplex); in DtsecAdjustLink()
1113 t_Dtsec *p_Dtsec = (t_Dtsec *)h_Dtsec; in DtsecRestartAutoneg() local
1116 SANITY_CHECK_RETURN_ERROR(p_Dtsec, E_INVALID_HANDLE); in DtsecRestartAutoneg()
1117 SANITY_CHECK_RETURN_ERROR(!p_Dtsec->p_DtsecDriverParam, E_INVALID_STATE); in DtsecRestartAutoneg()
1119 DTSEC_MII_ReadPhyReg(p_Dtsec, p_Dtsec->tbi_phy_addr, 0, &tmpReg16); in DtsecRestartAutoneg()
1124 DTSEC_MII_WritePhyReg(p_Dtsec, p_Dtsec->tbi_phy_addr, 0, tmpReg16); in DtsecRestartAutoneg()
1133 t_Dtsec *p_Dtsec = (t_Dtsec *)h_Dtsec; in DtsecGetId() local
1135 SANITY_CHECK_RETURN_ERROR(p_Dtsec, E_INVALID_HANDLE); in DtsecGetId()
1136 SANITY_CHECK_RETURN_ERROR(!p_Dtsec->p_DtsecDriverParam, E_INVALID_STATE); in DtsecGetId()
1138 *macId = p_Dtsec->macId; in DtsecGetId()
1147 t_Dtsec *p_Dtsec = (t_Dtsec *)h_Dtsec; in DtsecGetVersion() local
1149 SANITY_CHECK_RETURN_ERROR(p_Dtsec, E_INVALID_HANDLE); in DtsecGetVersion()
1150 SANITY_CHECK_RETURN_ERROR(!p_Dtsec->p_DtsecDriverParam, E_INVALID_STATE); in DtsecGetVersion()
1152 *macVersion = fman_dtsec_get_revision(p_Dtsec->p_MemMap); in DtsecGetVersion()
1161 t_Dtsec *p_Dtsec = (t_Dtsec *)h_Dtsec; in DtsecSetException() local
1164 SANITY_CHECK_RETURN_ERROR(p_Dtsec, E_INVALID_HANDLE); in DtsecSetException()
1165 SANITY_CHECK_RETURN_ERROR(!p_Dtsec->p_DtsecDriverParam, E_INVALID_STATE); in DtsecSetException()
1173 p_Dtsec->exceptions |= bitMask; in DtsecSetException()
1175 p_Dtsec->exceptions &= ~bitMask; in DtsecSetException()
1181 fman_dtsec_enable_interrupt(p_Dtsec->p_MemMap, bitMask); in DtsecSetException()
1183 fman_dtsec_disable_interrupt(p_Dtsec->p_MemMap, bitMask); in DtsecSetException()
1187 if (!p_Dtsec->ptpTsuEnabled) in DtsecSetException()
1192 p_Dtsec->enTsuErrExeption = TRUE; in DtsecSetException()
1193 fman_dtsec_enable_tmr_interrupt(p_Dtsec->p_MemMap); in DtsecSetException()
1197 p_Dtsec->enTsuErrExeption = FALSE; in DtsecSetException()
1198 fman_dtsec_disable_tmr_interrupt(p_Dtsec->p_MemMap); in DtsecSetException()
1214 t_Dtsec *p_Dtsec = (t_Dtsec *)h_Dtsec; in DtsecInit() local
1222 SANITY_CHECK_RETURN_ERROR(p_Dtsec, E_INVALID_HANDLE); in DtsecInit()
1223 SANITY_CHECK_RETURN_ERROR(p_Dtsec->p_DtsecDriverParam, E_INVALID_STATE); in DtsecInit()
1224 SANITY_CHECK_RETURN_ERROR(p_Dtsec->fmMacControllerDriver.h_Fm, E_INVALID_HANDLE); in DtsecInit()
1226 FM_GetRevision(p_Dtsec->fmMacControllerDriver.h_Fm, &p_Dtsec->fmMacControllerDriver.fmRevInfo); in DtsecInit()
1227 CHECK_INIT_PARAMETERS(p_Dtsec, CheckInitParameters); in DtsecInit()
1229 p_DtsecDriverParam = p_Dtsec->p_DtsecDriverParam; in DtsecInit()
1230 p_Dtsec->halfDuplex = p_DtsecDriverParam->halfdup_on; in DtsecInit()
1232 enet_interface = (enum enet_interface)ENET_INTERFACE_FROM_MODE(p_Dtsec->enetMode); in DtsecInit()
1233 enet_speed = (enum enet_speed)ENET_SPEED_FROM_MODE(p_Dtsec->enetMode); in DtsecInit()
1234 MAKE_ENET_ADDR_FROM_UINT64(p_Dtsec->addr, ethAddr); in DtsecInit()
1236 err = (t_Error)fman_dtsec_init(p_Dtsec->p_MemMap, in DtsecInit()
1241 p_Dtsec->fmMacControllerDriver.fmRevInfo.majorRev, in DtsecInit()
1242 p_Dtsec->fmMacControllerDriver.fmRevInfo.minorRev, in DtsecInit()
1243 p_Dtsec->exceptions); in DtsecInit()
1246 FreeInitResources(p_Dtsec); in DtsecInit()
1250 if (ENET_INTERFACE_FROM_MODE(p_Dtsec->enetMode) == e_ENET_IF_SGMII) in DtsecInit()
1256 DTSEC_MII_WritePhyReg(p_Dtsec, (uint8_t)p_DtsecDriverParam->tbipa, 17, tmpReg16); in DtsecInit()
1259 DTSEC_MII_WritePhyReg(p_Dtsec, (uint8_t)p_DtsecDriverParam->tbipa, 17, tmpReg16); in DtsecInit()
1262 DTSEC_MII_WritePhyReg(p_Dtsec, (uint8_t)p_DtsecDriverParam->tbipa, 0, tmpReg16); in DtsecInit()
1264 if (p_Dtsec->enetMode & ENET_IF_SGMII_BASEX) in DtsecInit()
1268 DTSEC_MII_WritePhyReg(p_Dtsec, (uint8_t)p_DtsecDriverParam->tbipa, 4, tmpReg16); in DtsecInit()
1272 DTSEC_MII_WritePhyReg(p_Dtsec, (uint8_t)p_DtsecDriverParam->tbipa, 0, tmpReg16); in DtsecInit()
1276 maxFrmLn = fman_dtsec_get_max_frame_len(p_Dtsec->p_MemMap); in DtsecInit()
1277 err = FmSetMacMaxFrame(p_Dtsec->fmMacControllerDriver.h_Fm, e_FM_MAC_1G, in DtsecInit()
1278 p_Dtsec->fmMacControllerDriver.macId, maxFrmLn); in DtsecInit()
1282 p_Dtsec->p_MulticastAddrHash = AllocHashTable(EXTENDED_HASH_TABLE_SIZE); in DtsecInit()
1283 if (!p_Dtsec->p_MulticastAddrHash) { in DtsecInit()
1284 FreeInitResources(p_Dtsec); in DtsecInit()
1288 p_Dtsec->p_UnicastAddrHash = AllocHashTable(HASH_TABLE_SIZE); in DtsecInit()
1289 if (!p_Dtsec->p_UnicastAddrHash) in DtsecInit()
1291 FreeInitResources(p_Dtsec); in DtsecInit()
1296 FmRegisterIntr(p_Dtsec->fmMacControllerDriver.h_Fm, in DtsecInit()
1298 p_Dtsec->macId, in DtsecInit()
1301 p_Dtsec); in DtsecInit()
1303 FmRegisterIntr(p_Dtsec->fmMacControllerDriver.h_Fm, in DtsecInit()
1305 p_Dtsec->macId, in DtsecInit()
1308 p_Dtsec); in DtsecInit()
1310 if (p_Dtsec->mdioIrq != NO_IRQ) in DtsecInit()
1312 XX_SetIntr(p_Dtsec->mdioIrq, DtsecMdioIsr, p_Dtsec); in DtsecInit()
1313 XX_EnableIntr(p_Dtsec->mdioIrq); in DtsecInit()
1317 p_Dtsec->p_DtsecDriverParam = NULL; in DtsecInit()
1322 FreeInitResources(p_Dtsec); in DtsecInit()
1333 t_Dtsec *p_Dtsec = (t_Dtsec *)h_Dtsec; in DtsecFree() local
1335 SANITY_CHECK_RETURN_ERROR(p_Dtsec, E_INVALID_HANDLE); in DtsecFree()
1337 if (p_Dtsec->p_DtsecDriverParam) in DtsecFree()
1340 XX_Free(p_Dtsec->p_DtsecDriverParam); in DtsecFree()
1341 p_Dtsec->p_DtsecDriverParam = NULL; in DtsecFree()
1345 FreeInitResources(p_Dtsec); in DtsecFree()
1347 XX_Free(p_Dtsec); in DtsecFree()
1416 t_Dtsec *p_Dtsec; in DTSEC_Config() local
1425 p_Dtsec = (t_Dtsec *)XX_Malloc(sizeof(t_Dtsec)); in DTSEC_Config()
1426 if (!p_Dtsec) in DTSEC_Config()
1431 memset(p_Dtsec, 0, sizeof(t_Dtsec)); in DTSEC_Config()
1432 InitFmMacControllerDriver(&p_Dtsec->fmMacControllerDriver); in DTSEC_Config()
1438 XX_Free(p_Dtsec); in DTSEC_Config()
1445 p_Dtsec->p_DtsecDriverParam = p_DtsecDriverParam; in DTSEC_Config()
1449 p_Dtsec->p_MemMap = (struct dtsec_regs *)UINT_TO_PTR(baseAddr); in DTSEC_Config()
1450p_Dtsec->p_MiiMemMap = (struct dtsec_mii_reg *)UINT_TO_PTR(baseAddr + DTSEC_TO_MII_OFFSET); in DTSEC_Config()
1451 p_Dtsec->addr = ENET_ADDR_TO_UINT64(p_FmMacParam->addr); in DTSEC_Config()
1452 p_Dtsec->enetMode = p_FmMacParam->enetMode; in DTSEC_Config()
1453 p_Dtsec->macId = p_FmMacParam->macId; in DTSEC_Config()
1454 p_Dtsec->exceptions = DEFAULT_exceptions; in DTSEC_Config()
1455 p_Dtsec->mdioIrq = p_FmMacParam->mdioIrq; in DTSEC_Config()
1456 p_Dtsec->f_Exception = p_FmMacParam->f_Exception; in DTSEC_Config()
1457 p_Dtsec->f_Event = p_FmMacParam->f_Event; in DTSEC_Config()
1458 p_Dtsec->h_App = p_FmMacParam->h_App; in DTSEC_Config()
1459 p_Dtsec->ptpTsuEnabled = p_Dtsec->p_DtsecDriverParam->ptp_tsu_en; in DTSEC_Config()
1460 p_Dtsec->enTsuErrExeption = p_Dtsec->p_DtsecDriverParam->ptp_exception_en; in DTSEC_Config()
1461 p_Dtsec->tbi_phy_addr = p_Dtsec->p_DtsecDriverParam->tbi_phy_addr; in DTSEC_Config()
1463 return p_Dtsec; in DTSEC_Config()