• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /freebsd-12-stable/sys/contrib/ncsw/Peripherals/FM/MAC/

Lines Matching refs:p_Dtsec

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