Lines Matching refs:instance_p
35 static void FXmacInitOnError(FXmacOs *instance_p);
36 static void FXmacSetupIsr(FXmacOs *instance_p);
117 static u32 IsTxSpaceAvailable(FXmacOs *instance_p) in IsTxSpaceAvailable() argument
121 FASSERT(instance_p != NULL); in IsTxSpaceAvailable()
123 txring = &(FXMAC_GET_TXRING(instance_p->instance)); in IsTxSpaceAvailable()
137 void FXmacProcessSentBds(FXmacOs *instance_p, FXmacBdRing *txring) in FXmacProcessSentBds() argument
175 p = (struct pbuf *)instance_p->buffer.tx_pbufs_storage[bdindex]; in FXmacProcessSentBds()
181 instance_p->buffer.tx_pbufs_storage[bdindex] = (uintptr)NULL; in FXmacProcessSentBds()
196 FError FXmacSgsend(FXmacOs *instance_p, struct pbuf *p) in FXmacSgsend() argument
209 txring = &(FXMAC_GET_TXRING(instance_p->instance)); in FXmacSgsend()
229 if (instance_p->buffer.tx_pbufs_storage[bdindex]) in FXmacSgsend()
233 …LOG_I("instance_p->buffer.tx_pbufs_storage[bdindex] %p ", instance_p->buffer.tx_pbufs_storage[bdin… in FXmacSgsend()
245 if (instance_p->config & FXMAC_OS_CONFIG_JUMBO) in FXmacSgsend()
263 instance_p->buffer.tx_pbufs_storage[bdindex] = (uintptr)q; in FXmacSgsend()
295 FXMAC_WRITEREG32((instance_p->instance).config.base_address, in FXmacSgsend()
297 (FXMAC_READREG32(instance_p->instance.config.base_address, in FXmacSgsend()
304 void SetupRxBds(FXmacOs *instance_p, FXmacBdRing *rxring) in SetupRxBds() argument
318 if (instance_p->config & FXMAC_OS_CONFIG_JUMBO) in SetupRxBds()
378 instance_p->buffer.rx_pbufs_storage[bdindex] = (uintptr)p; in SetupRxBds()
383 FXmacOs *instance_p; in FXmacRecvSemaphoreHandler() local
392 instance_p = (FXmacOs *)arg; in FXmacRecvSemaphoreHandler()
394 result = eth_device_ready(&(instance_p->parent)); in FXmacRecvSemaphoreHandler()
410 FXmacOs *instance_p; in FXmacRecvHandler() local
413 instance_p = (FXmacOs *)arg; in FXmacRecvHandler()
414 rxring = &FXMAC_GET_RXRING(instance_p->instance); in FXmacRecvHandler()
418 regval = FXMAC_READREG32(instance_p->instance.config.base_address, FXMAC_RXSR_OFFSET); in FXmacRecvHandler()
419 FXMAC_WRITEREG32(instance_p->instance.config.base_address, FXMAC_RXSR_OFFSET, regval); in FXmacRecvHandler()
433 p = (struct pbuf *)instance_p->buffer.rx_pbufs_storage[bdindex]; in FXmacRecvHandler()
437 if (instance_p->config & FXMAC_OS_CONFIG_JUMBO) in FXmacRecvHandler()
456 if (FXmacPqEnqueue(&instance_p->recv_q, (void *)p) < 0) in FXmacRecvHandler()
464 instance_p->buffer.rx_pbufs_storage[bdindex] = (uintptr)NULL; in FXmacRecvHandler()
470 SetupRxBds(instance_p, rxring); in FXmacRecvHandler()
478 void CleanDmaTxdescs(FXmacOs *instance_p) in CleanDmaTxdescs() argument
483 txringptr = &FXMAC_GET_TXRING((instance_p->instance)); in CleanDmaTxdescs()
487 FXmacBdRingCreate(txringptr, (uintptr)instance_p->buffer.tx_bdspace, in CleanDmaTxdescs()
488 (uintptr)instance_p->buffer.tx_bdspace, BD_ALIGNMENT, in CleanDmaTxdescs()
489 sizeof(instance_p->buffer.tx_bdspace)); in CleanDmaTxdescs()
494 FError FXmacInitDma(FXmacOs *instance_p) in FXmacInitDma() argument
516 rxringptr = &FXMAC_GET_RXRING(instance_p->instance); in FXmacInitDma()
517 txringptr = &FXMAC_GET_TXRING(instance_p->instance); in FXmacInitDma()
521 LOG_I("rx_bdspace: %p ", instance_p->buffer.rx_bdspace); in FXmacInitDma()
522 LOG_I("tx_bdspace: %p ", instance_p->buffer.tx_bdspace); in FXmacInitDma()
526 rx_paddr = (uintptr)instance_p->buffer.rx_bdspace; in FXmacInitDma()
533 (uintptr)instance_p->buffer.rx_bdspace, BD_ALIGNMENT, in FXmacInitDma()
552 tx_paddr = (uintptr)instance_p->buffer.tx_bdspace; in FXmacInitDma()
558 (uintptr)instance_p->buffer.tx_bdspace, BD_ALIGNMENT, in FXmacInitDma()
578 if (instance_p->config & FXMAC_OS_CONFIG_JUMBO) in FXmacInitDma()
629 instance_p->buffer.rx_pbufs_storage[bdindex] = (uintptr)p; in FXmacInitDma()
632 …FXmacSetQueuePtr(&(instance_p->instance), instance_p->instance.tx_bd_queue.bdring.phys_base_addr, … in FXmacInitDma()
633 …FXmacSetQueuePtr(&(instance_p->instance), instance_p->instance.rx_bd_queue.bdring.phys_base_addr, … in FXmacInitDma()
638 static void FreeOnlyTxPbufs(FXmacOs *instance_p) in FreeOnlyTxPbufs() argument
645 if (instance_p->buffer.tx_pbufs_storage[index] != 0) in FreeOnlyTxPbufs()
647 p = (struct pbuf *)instance_p->buffer.tx_pbufs_storage[index]; in FreeOnlyTxPbufs()
649 instance_p->buffer.tx_pbufs_storage[index] = (uintptr)NULL; in FreeOnlyTxPbufs()
651 instance_p->buffer.tx_pbufs_storage[index] = (uintptr)0; in FreeOnlyTxPbufs()
656 static void FreeOnlyRxPbufs(FXmacOs *instance_p) in FreeOnlyRxPbufs() argument
663 if (instance_p->buffer.rx_pbufs_storage[index] != 0) in FreeOnlyRxPbufs()
665 p = (struct pbuf *)instance_p->buffer.rx_pbufs_storage[index]; in FreeOnlyRxPbufs()
667 instance_p->buffer.rx_pbufs_storage[index] = (uintptr)0; in FreeOnlyRxPbufs()
673 static void FreeTxRxPbufs(FXmacOs *instance_p) in FreeTxRxPbufs() argument
678 rx_queue_len = FXmacPqQlength(&instance_p->recv_q); in FreeTxRxPbufs()
683 p = (struct pbuf *)FXmacPqDequeue(&instance_p->recv_q); in FreeTxRxPbufs()
688 FreeOnlyTxPbufs(instance_p); in FreeTxRxPbufs()
689 FreeOnlyRxPbufs(instance_p); in FreeTxRxPbufs()
694 static void FXmacHandleDmaTxError(FXmacOs *instance_p) in FXmacHandleDmaTxError() argument
699 FreeTxRxPbufs(instance_p); in FXmacHandleDmaTxError()
700 status = FXmacCfgInitialize(&instance_p->instance, &instance_p->instance.config); in FXmacHandleDmaTxError()
708 FXmacInitOnError(instance_p); /* need to set mac filter address */ in FXmacHandleDmaTxError()
709 dmacrreg = FXMAC_READREG32(instance_p->instance.config.base_address, FXMAC_DMACR_OFFSET); in FXmacHandleDmaTxError()
711 FXMAC_WRITEREG32(instance_p->instance.config.base_address, FXMAC_DMACR_OFFSET, dmacrreg); in FXmacHandleDmaTxError()
712 FXmacSetupIsr(instance_p); in FXmacHandleDmaTxError()
713 FXmacInitDma(instance_p); in FXmacHandleDmaTxError()
715 FXmacStart(&instance_p->instance); in FXmacHandleDmaTxError()
719 void FXmacHandleTxErrors(FXmacOs *instance_p) in FXmacHandleTxErrors() argument
723 netctrlreg = FXMAC_READREG32(instance_p->instance.config.base_address, in FXmacHandleTxErrors()
726 FXMAC_WRITEREG32(instance_p->instance.config.base_address, in FXmacHandleTxErrors()
728 FreeOnlyTxPbufs(instance_p); in FXmacHandleTxErrors()
730 CleanDmaTxdescs(instance_p); in FXmacHandleTxErrors()
731 netctrlreg = FXMAC_READREG32(instance_p->instance.config.base_address, FXMAC_NWCTRL_OFFSET); in FXmacHandleTxErrors()
733 FXMAC_WRITEREG32(instance_p->instance.config.base_address, FXMAC_NWCTRL_OFFSET, netctrlreg); in FXmacHandleTxErrors()
740 FXmacOs *instance_p; in FXmacErrorHandler() local
742 instance_p = (FXmacOs *)arg; in FXmacErrorHandler()
743 rxring = &FXMAC_GET_RXRING(instance_p->instance); in FXmacErrorHandler()
744 txring = &FXMAC_GET_TXRING(instance_p->instance); in FXmacErrorHandler()
754 FXmacHandleDmaTxError(instance_p); in FXmacErrorHandler()
771 FXmacHandleDmaTxError(instance_p); in FXmacErrorHandler()
776 FXmacHandleTxErrors(instance_p); in FXmacErrorHandler()
781 FXmacHandleTxErrors(instance_p); in FXmacErrorHandler()
786 FXmacHandleTxErrors(instance_p); in FXmacErrorHandler()
791 FXmacProcessSentBds(instance_p, txring); in FXmacErrorHandler()
803 FXmacOs *instance_p; in FXmacLinkChange() local
805 instance_p = (FXmacOs *)arg; in FXmacLinkChange()
806 xmac_p = &instance_p->instance; in FXmacLinkChange()
888 enum lwip_port_link_status FXmacLwipPortLinkDetect(FXmacOs *instance_p) in FXmacLwipPortLinkDetect() argument
891 FXmac *xmac_p = &instance_p->instance; in FXmacLwipPortLinkDetect()
938 enum lwip_port_link_status FXmacPhyReconnect(FXmacOs *instance_p) in FXmacPhyReconnect() argument
942 xmac_p = &instance_p->instance; in FXmacPhyReconnect()
977 return FXmacLwipPortLinkDetect(instance_p); in FXmacPhyReconnect()
1000 static void FXmacSetupIsr(FXmacOs *instance_p) in FXmacSetupIsr() argument
1004 …FXmacSetHandler(&instance_p->instance, FXMAC_HANDLER_DMARECV, FXmacRecvSemaphoreHandler, instance_… in FXmacSetupIsr()
1005 FXmacSetHandler(&instance_p->instance, FXMAC_HANDLER_ERROR, FXmacErrorHandler, instance_p); in FXmacSetupIsr()
1006 FXmacSetHandler(&instance_p->instance, FXMAC_HANDLER_LINKCHANGE, FXmacLinkChange, instance_p); in FXmacSetupIsr()
1008 …rt_hw_interrupt_install(instance_p->instance.config.queue_irq_num[0], FxmacOsIntrHandler, &instanc… in FXmacSetupIsr()
1009 rt_hw_interrupt_umask(instance_p->instance.config.queue_irq_num[0]); in FXmacSetupIsr()
1014 static void FXmacInitOnError(FXmacOs *instance_p) in FXmacInitOnError() argument
1018 xmac_p = &instance_p->instance; in FXmacInitOnError()
1021 status = FXmacSetMacAddress(xmac_p, (void *)(instance_p->hwaddr), 1); in FXmacInitOnError()
1037 FError FXmacOsInit(FXmacOs *instance_p) in FXmacOsInit() argument
1045 FASSERT(instance_p != NULL); in FXmacOsInit()
1046 FASSERT(instance_p->mac_config.instance_id < FXMAC_NUM); in FXmacOsInit()
1048 xmac_p = &instance_p->instance; in FXmacOsInit()
1049 LOG_I("instance_id IS %d", instance_p->mac_config.instance_id); in FXmacOsInit()
1050 mac_config_p = FXmacLookupConfig(instance_p->mac_config.instance_id); in FXmacOsInit()
1053 LOG_E("FXmacLookupConfig is error , instance_id is %d", instance_p->mac_config.instance_id); in FXmacOsInit()
1060 switch (instance_p->mac_config.interface) in FXmacOsInit()
1075 … LOG_E("Update interface is error , interface is %d", instance_p->mac_config.instance_id); in FXmacOsInit()
1080 if (instance_p->mac_config.autonegotiation) in FXmacOsInit()
1089 switch (instance_p->mac_config.phy_speed) in FXmacOsInit()
1101 LOG_E("Setting speed is not valid , speed is %d", instance_p->mac_config.phy_speed); in FXmacOsInit()
1105 switch (instance_p->mac_config.phy_duplex) in FXmacOsInit()
1121 if (instance_p->config & FXMAC_OS_CONFIG_JUMBO) in FXmacOsInit()
1126 if (instance_p->config & FXMAC_OS_CONFIG_MULTICAST_ADDRESS_FILITER) in FXmacOsInit()
1132 if (instance_p->config & FXMAC_OS_CONFIG_COPY_ALL_FRAMES) in FXmacOsInit()
1137 status = FXmacSetMacAddress(xmac_p, (void *)(instance_p->hwaddr), 0); in FXmacOsInit()
1144 if (instance_p->config & FXMAC_OS_CONFIG_CLOSE_FCS_CHECK) in FXmacOsInit()
1164 FXmacInitDma(instance_p); in FXmacOsInit()
1168 FXmacSetupIsr(instance_p); in FXmacOsInit()
1183 struct pbuf *FXmacOsRx(FXmacOs *instance_p) in FXmacOsRx() argument
1185 FASSERT(instance_p != NULL); in FXmacOsRx()
1189 if (FXmacPqQlength(&instance_p->recv_q) == 0) in FXmacOsRx()
1194 p = (struct pbuf *)FXmacPqDequeue(&instance_p->recv_q); in FXmacOsRx()
1199 static FError FXmacOsOutput(FXmacOs *instance_p, struct pbuf *p) in FXmacOsOutput() argument
1203 status = FXmacSgsend(instance_p, p); in FXmacOsOutput()
1218 FError FXmacOsTx(FXmacOs *instance_p, void *tx_buf) in FXmacOsTx() argument
1223 FASSERT(instance_p != NULL); in FXmacOsTx()
1227 txring = &(FXMAC_GET_TXRING(instance_p->instance)); in FXmacOsTx()
1228 FXmacProcessSentBds(instance_p, txring); in FXmacOsTx()
1231 if (IsTxSpaceAvailable(instance_p)) in FXmacOsTx()
1233 ret = FXmacOsOutput(instance_p, p); in FXmacOsTx()
1249 FXmacOs *instance_p; in FXmacOsGetInstancePointer() local
1257 instance_p = &fxmac_os_instace[config_p->instance_id]; in FXmacOsGetInstancePointer()
1258 memcpy(&instance_p->mac_config, config_p, sizeof(FXmacOsControl)); in FXmacOsGetInstancePointer()
1259 return instance_p; in FXmacOsGetInstancePointer()
1262 void FXmacOsStart(FXmacOs *instance_p) in FXmacOsStart() argument
1264 FASSERT(instance_p != NULL); in FXmacOsStart()
1267 instance_p->instance.mask &= (~FXMAC_IXR_TXCOMPL_MASK); in FXmacOsStart()
1268 FXmacStart(&instance_p->instance); in FXmacOsStart()
1432 enum lwip_port_link_status eth_link_detect(FXmacOs *instance_p) in eth_link_detect() argument
1434 if (instance_p->instance.is_ready != FT_COMPONENT_IS_READY) in eth_link_detect()
1439 return FXmacPhyReconnect(instance_p); in eth_link_detect()