Lines Matching defs:AdapterInfo

38   while ((InByte (AdapterInfo, cmd_ioaddr) != 0) && --wait_count >= 0)  \
39 DelayIt (AdapterInfo, 10); \
41 DelayIt (AdapterInfo, 50); \
57 // TODO: AdapterInfo - add argument and description to function comment
60 IN NIC_DATA_INSTANCE *AdapterInfo,
66 (*AdapterInfo->Mem_Io) (
67 AdapterInfo->Unique_ID,
89 // TODO: AdapterInfo - add argument and description to function comment
92 IN NIC_DATA_INSTANCE *AdapterInfo,
98 (*AdapterInfo->Mem_Io) (
99 AdapterInfo->Unique_ID,
121 // TODO: AdapterInfo - add argument and description to function comment
124 IN NIC_DATA_INSTANCE *AdapterInfo,
130 (*AdapterInfo->Mem_Io) (
131 AdapterInfo->Unique_ID,
154 // TODO: AdapterInfo - add argument and description to function comment
157 IN NIC_DATA_INSTANCE *AdapterInfo,
165 (*AdapterInfo->Mem_Io) (
166 AdapterInfo->Unique_ID,
189 // TODO: AdapterInfo - add argument and description to function comment
192 IN NIC_DATA_INSTANCE *AdapterInfo,
200 (*AdapterInfo->Mem_Io) (
201 AdapterInfo->Unique_ID,
224 // TODO: AdapterInfo - add argument and description to function comment
227 IN NIC_DATA_INSTANCE *AdapterInfo,
235 (*AdapterInfo->Mem_Io) (
236 AdapterInfo->Unique_ID,
249 @param AdapterInfo TODO: add argument description
260 IN NIC_DATA_INSTANCE *AdapterInfo,
273 if (AdapterInfo->VersionFlag == 0x30) {
274 if (AdapterInfo->Virt2Phys_30 == (VOID *) NULL) {
275 *PhyAddr = (UINT64) AdapterInfo->MemoryPtr;
277 (*AdapterInfo->Virt2Phys_30) (MemAddr, (UINT64) (UINTN) PhyAddr);
284 if (AdapterInfo->Map_Mem == (VOID *) NULL) {
294 (*AdapterInfo->Map_Mem) (
295 AdapterInfo->Unique_ID,
311 @param AdapterInfo TODO: add argument description
322 IN NIC_DATA_INSTANCE *AdapterInfo,
329 if (AdapterInfo->VersionFlag > 0x30) {
333 if (AdapterInfo->UnMap_Mem != (VOID *) NULL) {
334 (*AdapterInfo->UnMap_Mem) (
335 AdapterInfo->Unique_ID,
351 @param AdapterInfo Pointer to the NIC data structure
360 IN NIC_DATA_INSTANCE *AdapterInfo,
364 if (AdapterInfo->VersionFlag == 0x30) {
365 (*AdapterInfo->Delay_30) (MicroSeconds);
367 (*AdapterInfo->Delay) (AdapterInfo->Unique_ID, MicroSeconds);
374 @param AdapterInfo Pointer to the NIC data structure
383 IN NIC_DATA_INSTANCE *AdapterInfo,
387 if (AdapterInfo->VersionFlag == 0x30) {
388 (*AdapterInfo->Block_30) (flag);
390 (*AdapterInfo->Block) (AdapterInfo->Unique_ID, flag);
398 @param AdapterInfo TODO: add argument description
405 NIC_DATA_INSTANCE *AdapterInfo
415 AdapterInfo->RxTotals = 0;
416 AdapterInfo->TxTotals = 0;
421 wait_for_cmd_done (AdapterInfo->ioaddr + SCBCmd);
422 OutLong (AdapterInfo, (UINT32) AdapterInfo->stat_phy_addr, AdapterInfo->ioaddr + SCBPointer);
423 OutByte (AdapterInfo, CU_STATSADDR, AdapterInfo->ioaddr + SCBCmd);
424 AdapterInfo->statistics->done_marker = 0;
426 wait_for_cmd_done (AdapterInfo->ioaddr + SCBCmd);
427 OutLong (AdapterInfo, 0, AdapterInfo->ioaddr + SCBPointer);
428 OutByte (AdapterInfo, RX_ADDR_LOAD, AdapterInfo->ioaddr + SCBCmd);
430 wait_for_cmd_done (AdapterInfo->ioaddr + SCBCmd);
431 OutLong (AdapterInfo, 0, AdapterInfo->ioaddr + SCBPointer);
432 OutByte (AdapterInfo, CU_CMD_BASE, AdapterInfo->ioaddr + SCBCmd);
441 @param AdapterInfo TODO: add argument description
449 NIC_DATA_INSTANCE *AdapterInfo,
455 wait_for_cmd_done (AdapterInfo->ioaddr + SCBCmd);
465 status = InWord (AdapterInfo, AdapterInfo->ioaddr + SCBStatus);
475 OutWord (AdapterInfo, SCB_STATUS_CNA, AdapterInfo->ioaddr + SCBStatus);
483 OutLong (AdapterInfo, cmd_ptr->PhysTCBAddress, AdapterInfo->ioaddr + SCBPointer);
484 OutByte (AdapterInfo, CU_START, AdapterInfo->ioaddr + SCBCmd);
491 OutByte (AdapterInfo, CU_RESUME, AdapterInfo->ioaddr + SCBCmd);
501 @param AdapterInfo TODO: add argument description
508 NIC_DATA_INSTANCE *AdapterInfo
519 cmd_ptr = GetFreeCB (AdapterInfo);
530 my_filter = (UINT8) ((AdapterInfo->Rx_Filter & PXE_OPFLAGS_RECEIVE_FILTER_PROMISCUOUS) ? 1 : 0);
531 my_filter = (UINT8) (my_filter | ((AdapterInfo->Rx_Filter & PXE_OPFLAGS_RECEIVE_FILTER_BROADCAST) ? 0 : 2));
534 data_ptr[19] = (UINT8) (AdapterInfo->Duplex ? 0xC0 : 0x80);
535 data_ptr[21] = (UINT8) ((AdapterInfo->Rx_Filter & PXE_OPFLAGS_RECEIVE_FILTER_ALL_MULTICAST) ? 0x0D : 0x05);
540 if ((AdapterInfo->PhyRecord[0] & 0x8000) != 0) {
545 BlockIt (AdapterInfo, TRUE);
548 IssueCB (AdapterInfo, cmd_ptr);
549 wait_for_cmd_done (AdapterInfo->ioaddr + SCBCmd);
551 BlockIt (AdapterInfo, FALSE);
553 CommandWaitForCompletion (cmd_ptr, AdapterInfo);
564 SetFreeCB (AdapterInfo, cmd_ptr);
572 @param AdapterInfo TODO: add argument description
579 NIC_DATA_INSTANCE *AdapterInfo
589 eaddrs = (UINT16 *) AdapterInfo->CurrentNodeAddress;
591 cmd_ptr = GetFreeCB (AdapterInfo);
604 BlockIt (AdapterInfo, TRUE);
605 IssueCB (AdapterInfo, cmd_ptr);
606 wait_for_cmd_done (AdapterInfo->ioaddr + SCBCmd);
607 BlockIt (AdapterInfo, FALSE);
609 CommandWaitForCompletion (cmd_ptr, AdapterInfo);
620 SetFreeCB (AdapterInfo, cmd_ptr);
628 @param AdapterInfo Pointer to the NIC data structure
636 IN NIC_DATA_INSTANCE *AdapterInfo
639 if (AdapterInfo->Receive_Started) {
644 wait_for_cmd_done (AdapterInfo->ioaddr + SCBCmd);
649 OutWord (AdapterInfo, INT_MASK, AdapterInfo->ioaddr + SCBCmd);
650 OutWord (AdapterInfo, INT_MASK | RX_ABORT, AdapterInfo->ioaddr + SCBCmd);
652 AdapterInfo->Receive_Started = FALSE;
662 @param AdapterInfo Pointer to the NIC data structure
672 NIC_DATA_INSTANCE *AdapterInfo
676 if (AdapterInfo->Receive_Started) {
683 AdapterInfo->cur_rx_ind = 0;
684 AdapterInfo->Int_Status = 0;
686 wait_for_cmd_done (AdapterInfo->ioaddr + SCBCmd);
688 OutLong (AdapterInfo, (UINT32) AdapterInfo->rx_phy_addr, AdapterInfo->ioaddr + SCBPointer);
689 OutByte (AdapterInfo, RX_START, AdapterInfo->ioaddr + SCBCmd);
691 wait_for_cmd_done (AdapterInfo->ioaddr + SCBCmd);
693 AdapterInfo->Receive_Started = TRUE;
701 @param AdapterInfo Pointer to the NIC data structure
712 IN NIC_DATA_INSTANCE *AdapterInfo
720 if (AdapterInfo->MemoryLength < MEMORY_NEEDED) {
725 AdapterInfo,
726 AdapterInfo->MemoryPtr,
727 AdapterInfo->MemoryLength,
729 (UINT64)(UINTN) &AdapterInfo->Mapped_MemoryPtr
736 CfgHdr = (PCI_CONFIG_HEADER *) &(AdapterInfo->Config[0]);
741 AdapterInfo->int_num = CfgHdr->int_line;
745 // if (AdapterInfo->int_num == 0 || AdapterInfo->int_num == 0xff)
748 AdapterInfo->ioaddr = 0;
749 AdapterInfo->VendorID = CfgHdr->VendorID;
750 AdapterInfo->DeviceID = CfgHdr->DeviceID;
751 AdapterInfo->RevID = CfgHdr->RevID;
752 AdapterInfo->SubVendorID = CfgHdr->SubVendorID;
753 AdapterInfo->SubSystemID = CfgHdr->SubSystemID;
754 AdapterInfo->flash_addr = 0;
761 if (E100bReadEepromAndStationAddress (AdapterInfo) != 0) {
770 AdapterInfo->TxBufCnt = TX_BUFFER_COUNT;
771 AdapterInfo->RxBufCnt = RX_BUFFER_COUNT;
772 rx_size = (AdapterInfo->RxBufCnt * sizeof (RxFD));
773 tx_size = (AdapterInfo->TxBufCnt * sizeof (TxCB));
774 AdapterInfo->rx_ring = (RxFD *) (UINTN) (AdapterInfo->MemoryPtr);
775 AdapterInfo->tx_ring = (TxCB *) (UINTN) (AdapterInfo->MemoryPtr + rx_size);
776 AdapterInfo->statistics = (struct speedo_stats *) (UINTN) (AdapterInfo->MemoryPtr + rx_size + tx_size);
778 AdapterInfo->rx_phy_addr = AdapterInfo->Mapped_MemoryPtr;
779 AdapterInfo->tx_phy_addr = AdapterInfo->Mapped_MemoryPtr + rx_size;
780 AdapterInfo->stat_phy_addr = AdapterInfo->tx_phy_addr + tx_size;
785 AdapterInfo->PhyAddress = 0xFF;
786 AdapterInfo->Rx_Filter = PXE_OPFLAGS_RECEIVE_FILTER_BROADCAST;
787 AdapterInfo->Receive_Started = FALSE;
788 AdapterInfo->mcast_list.list_len = 0;
789 return InitializeChip (AdapterInfo);
796 @param AdapterInfo Pointer to the NIC data structure
805 IN NIC_DATA_INSTANCE *AdapterInfo
813 if ((AdapterInfo->int_mask & PXE_OPFLAGS_INTERRUPT_RECEIVE) != 0) {
814 cmd_word = InWord (AdapterInfo, AdapterInfo->ioaddr + SCBCmd);
816 OutWord (AdapterInfo, cmd_word, AdapterInfo->ioaddr + SCBCmd);
821 OutWord (AdapterInfo, INT_MASK, AdapterInfo->ioaddr + SCBCmd);
824 if ((AdapterInfo->int_mask & PXE_OPFLAGS_INTERRUPT_SOFTWARE) != 0) {
828 AdapterInfo->int_mask &= ~(PXE_OPFLAGS_INTERRUPT_SOFTWARE);
829 cmd_word = InWord (AdapterInfo, AdapterInfo->ioaddr + SCBCmd);
831 OutWord (AdapterInfo, cmd_word, AdapterInfo->ioaddr + SCBCmd);
843 @param AdapterInfo Pointer to the NIC data structure
855 NIC_DATA_INSTANCE *AdapterInfo,
871 old_filter = AdapterInfo->Rx_Filter;
881 XmitWaitForCompletion (AdapterInfo);
883 if (AdapterInfo->Receive_Started) {
884 StopRU (AdapterInfo);
887 AdapterInfo->Rx_Filter = (UINT8) (new_filter | PXE_OPFLAGS_RECEIVE_FILTER_BROADCAST);
888 Configure (AdapterInfo);
900 mc_count = AdapterInfo->mcast_list.list_len = (UINT16) (cpbsize / PXE_MAC_LENGTH);
904 AdapterInfo->mcast_list.mc_list[Index][Index2] = mc_list->MCastList[Index][Index2];
916 mc_count = AdapterInfo->mcast_list.list_len;
922 AdapterInfo->Rx_Filter |= PXE_OPFLAGS_RECEIVE_FILTER_FILTERED_MULTICAST;
928 AdapterInfo->Rx_Filter &= (~PXE_OPFLAGS_RECEIVE_FILTER_FILTERED_MULTICAST);
934 XmitWaitForCompletion (AdapterInfo);
936 if (AdapterInfo->Receive_Started) {
937 StopRU (AdapterInfo);
941 cmd_ptr = GetFreeCB (AdapterInfo);
955 data_ptr->m_list[Index][Index2] = AdapterInfo->mcast_list.mc_list[Index][Index2];
962 BlockIt (AdapterInfo, TRUE);
963 IssueCB (AdapterInfo, cmd_ptr);
964 wait_for_cmd_done (AdapterInfo->ioaddr + SCBCmd);
966 BlockIt (AdapterInfo, FALSE);
968 CommandWaitForCompletion (cmd_ptr, AdapterInfo);
976 SetFreeCB (AdapterInfo, cmd_ptr);
983 AdapterInfo->Rx_Filter = (UINT8) (AdapterInfo->Rx_Filter | (new_filter | PXE_OPFLAGS_RECEIVE_FILTER_UNICAST));
984 StartRU (AdapterInfo);
989 if (AdapterInfo->Receive_Started) {
990 StopRU (AdapterInfo);
993 AdapterInfo->Rx_Filter |= (~PXE_OPFLAGS_RECEIVE_FILTER_UNICAST);
1003 @param AdapterInfo TODO: add argument description
1012 NIC_DATA_INSTANCE *AdapterInfo,
1032 if (AdapterInfo->in_transmit) {
1037 AdapterInfo->in_transmit = TRUE;
1044 if ((tcb_ptr = GetFreeCB (AdapterInfo)) == NULL) {
1045 AdapterInfo->in_transmit = FALSE;
1049 AdapterInfo->TxTotals++;
1068 SetFreeCB (AdapterInfo, tcb_ptr);
1069 AdapterInfo->in_transmit = FALSE;
1077 AdapterInfo,
1084 SetFreeCB (AdapterInfo, tcb_ptr);
1085 AdapterInfo->in_transmit = FALSE;
1101 AdapterInfo,
1108 SetFreeCB (AdapterInfo, tcb_ptr);
1109 AdapterInfo->in_transmit = FALSE;
1121 BlockIt (AdapterInfo, TRUE);
1122 IssueCB (AdapterInfo, tcb_ptr);
1123 BlockIt (AdapterInfo, FALSE);
1134 DelayIt (AdapterInfo, 10);
1148 AdapterInfo,
1158 AdapterInfo,
1167 SetFreeCB (AdapterInfo, tcb_ptr);
1168 AdapterInfo->in_transmit = FALSE;
1172 SetFreeCB (AdapterInfo, tcb_ptr);
1177 AdapterInfo->in_transmit = FALSE;
1186 @param AdapterInfo TODO: add argument description
1195 NIC_DATA_INSTANCE *AdapterInfo,
1212 status = InWord (AdapterInfo, AdapterInfo->ioaddr + SCBStatus);
1213 AdapterInfo->Int_Status = (UINT16) (AdapterInfo->Int_Status | status);
1217 OutWord (AdapterInfo, (UINT16) (status & 0xfc00), (UINT32) (AdapterInfo->ioaddr + SCBStatus));
1222 status = AdapterInfo->Int_Status;
1226 rx_ptr = &AdapterInfo->rx_ring[AdapterInfo->cur_rx_ind];
1233 AdapterInfo->RxTotals++;
1284 if (hdr_ptr->dest_addr[Index] != AdapterInfo->CurrentNodeAddress[Index]) {
1293 if (hdr_ptr->dest_addr[Index] != AdapterInfo->BroadcastNodeAddress[Index]) {
1326 Recycle_RFD (AdapterInfo, AdapterInfo->cur_rx_ind);
1327 AdapterInfo->cur_rx_ind++;
1328 if (AdapterInfo->cur_rx_ind == AdapterInfo->RxBufCnt) {
1329 AdapterInfo->cur_rx_ind = 0;
1335 Recycle_RFD (AdapterInfo, AdapterInfo->cur_rx_ind);
1336 AdapterInfo->cur_rx_ind++;
1337 if (AdapterInfo->cur_rx_ind == AdapterInfo->RxBufCnt) {
1338 AdapterInfo->cur_rx_ind = 0;
1341 rx_ptr = &AdapterInfo->rx_ring[AdapterInfo->cur_rx_ind];
1345 AdapterInfo->Int_Status &= (~SCB_STATUS_FR);
1348 status = InWord (AdapterInfo, AdapterInfo->ioaddr + SCBStatus);
1354 SetupReceiveQueues (AdapterInfo);
1355 OutLong (AdapterInfo, (UINT32) AdapterInfo->rx_phy_addr, AdapterInfo->ioaddr + SCBPointer);
1356 OutWord (AdapterInfo, RX_START, AdapterInfo->ioaddr + SCBCmd);
1357 AdapterInfo->cur_rx_ind = 0;
1367 @param AdapterInfo TODO: add argument description
1374 NIC_DATA_INSTANCE *AdapterInfo
1384 eedata = (UINT16 *) (&AdapterInfo->NVData[0]);
1387 addr_len = E100bGetEepromAddrLen (AdapterInfo);
1392 AdapterInfo->NVData_Len = eeprom_len = (UINT16) (1 << addr_len);
1395 value = E100bReadEeprom (AdapterInfo, Index, addr_len);
1399 AdapterInfo->PermNodeAddress[Index2++] = (UINT8) value;
1400 AdapterInfo->PermNodeAddress[Index2++] = (UINT8) (value >> 8);
1409 AdapterInfo->CurrentNodeAddress[Index] = AdapterInfo->PermNodeAddress[Index];
1413 AdapterInfo->BroadcastNodeAddress[Index] = 0xff;
1417 AdapterInfo->CurrentNodeAddress[Index] = 0;
1418 AdapterInfo->PermNodeAddress[Index] = 0;
1419 AdapterInfo->BroadcastNodeAddress[Index] = 0;
1436 @param AdapterInfo TODO: add argument description
1443 NIC_DATA_INSTANCE *AdapterInfo
1452 cur_ptr = &(AdapterInfo->tx_ring[0]);
1454 for (Index = 0; Index < AdapterInfo->TxBufCnt; Index++) {
1459 (UINT32) AdapterInfo->tx_phy_addr + (Index * sizeof (TxCB));
1466 if (Index < AdapterInfo->TxBufCnt - 1) {
1474 tail_ptr = &cur_ptr[AdapterInfo->TxBufCnt - 1];
1479 AdapterInfo->FreeCBCount = AdapterInfo->TxBufCnt;
1480 AdapterInfo->FreeTxHeadPtr = head_ptr;
1485 AdapterInfo->FreeTxTailPtr = tail_ptr;
1487 AdapterInfo->xmit_done_head = AdapterInfo->xmit_done_tail = 0;
1496 @param AdapterInfo TODO: add argument description
1503 NIC_DATA_INSTANCE *AdapterInfo
1511 if (AdapterInfo->FreeCBCount <= 1) {
1512 CheckCBList (AdapterInfo);
1521 if (AdapterInfo->FreeCBCount <= 1) {
1525 BlockIt (AdapterInfo, TRUE);
1526 free_cb_ptr = AdapterInfo->FreeTxHeadPtr;
1527 AdapterInfo->FreeTxHeadPtr = free_cb_ptr->NextTCBVirtualLinkPtr;
1528 --AdapterInfo->FreeCBCount;
1529 BlockIt (AdapterInfo, FALSE);
1537 @param AdapterInfo TODO: add argument description
1545 IN NIC_DATA_INSTANCE *AdapterInfo,
1556 AdapterInfo->FreeTxTailPtr = cb_ptr;
1557 ++AdapterInfo->FreeCBCount;
1589 @param AdapterInfo TODO: add argument description
1596 IN NIC_DATA_INSTANCE *AdapterInfo
1604 Tmp_ptr = AdapterInfo->FreeTxTailPtr->NextTCBVirtualLinkPtr;
1609 if (next (AdapterInfo->xmit_done_tail) != AdapterInfo->xmit_done_head) {
1610 AdapterInfo->xmit_done[AdapterInfo->xmit_done_tail] = Tmp_ptr->free_data_ptr;
1613 AdapterInfo,
1620 AdapterInfo->xmit_done_tail = next (AdapterInfo->xmit_done_tail);
1623 SetFreeCB (AdapterInfo, Tmp_ptr);
1644 @param AdapterInfo TODO: add argument description
1651 IN NIC_DATA_INSTANCE *AdapterInfo
1658 AdapterInfo->cur_rx_ind = 0;
1659 rx_ptr = (&AdapterInfo->rx_ring[0]);
1661 for (Index = 0; Index < AdapterInfo->RxBufCnt; Index++) {
1679 if (Index < AdapterInfo->RxBufCnt - 1) {
1680 rx_ptr[Index].cb_header.link = (UINT32) AdapterInfo->rx_phy_addr + ((Index + 1) * sizeof (RxFD));
1684 tail_ptr = (&AdapterInfo->rx_ring[AdapterInfo->RxBufCnt - 1]);
1685 tail_ptr->cb_header.link = (UINT32) AdapterInfo->rx_phy_addr;
1691 AdapterInfo->RFDTailPtr = tail_ptr;
1699 @param AdapterInfo TODO: add argument description
1707 IN NIC_DATA_INSTANCE *AdapterInfo,
1714 // change the EL bit and change the AdapterInfo->RxTailPtr
1716 // AdapterInfo->rx_forwarded[rx_index] = FALSE;
1718 rx_ptr = &AdapterInfo->rx_ring[rx_index];
1719 tail_ptr = AdapterInfo->RFDTailPtr;
1727 AdapterInfo->RFDTailPtr = rx_ptr;
1754 #define eeprom_delay(nanosec) DelayIt (AdapterInfo, nanosec);
1765 IN NIC_DATA_INSTANCE *AdapterInfo,
1777 AdapterInfo - TODO: add argument description
1791 EEAddr = AdapterInfo->ioaddr + SCBeeprom;
1804 Tmp = (UINT8) (InByte (AdapterInfo, EEAddr) &~EE_DI);
1806 OutByte (AdapterInfo, Tmp, EEAddr);
1811 OutByte (AdapterInfo, (UINT8) (Tmp | EE_SHIFT_CLK), EEAddr);
1816 OutByte (AdapterInfo, (UINT8) (Tmp &~EE_SHIFT_CLK), EEAddr);
1825 @param AdapterInfo TODO: add argument description
1832 IN NIC_DATA_INSTANCE *AdapterInfo
1840 EEAddr = AdapterInfo->ioaddr + SCBeeprom;
1851 Tmp = InByte (AdapterInfo, EEAddr);
1852 OutByte (AdapterInfo, (UINT8) (Tmp | EE_SHIFT_CLK), EEAddr);
1854 Tmp = InByte (AdapterInfo, EEAddr);
1859 OutByte (AdapterInfo, (UINT8) (Tmp &~EE_SHIFT_CLK), EEAddr);
1872 @param AdapterInfo Pointer to the NIC data structure
1882 IN NIC_DATA_INSTANCE *AdapterInfo
1888 if ((AdapterInfo->DeviceID == D102_DEVICE_ID) ||
1889 (AdapterInfo->RevID >= D102_REVID)) {
1895 tmp = InByte (AdapterInfo, AdapterInfo->ioaddr + SCBGenCtrl2);
1897 OutByte (AdapterInfo, tmp, AdapterInfo->ioaddr + SCBGenCtrl2);
1899 DelayIt (AdapterInfo, 50);
1900 tmp = InByte (AdapterInfo, AdapterInfo->ioaddr + SCBGenCtrl2);
1919 @param AdapterInfo Pointer to the NIC data structure
1928 IN NIC_DATA_INSTANCE *AdapterInfo
1933 if ((AdapterInfo->DeviceID == D102_DEVICE_ID) ||
1934 (AdapterInfo->RevID >= D102_REVID)) {
1936 tmp = InByte (AdapterInfo, AdapterInfo->ioaddr + SCBGenCtrl2);
1938 OutByte (AdapterInfo, tmp, AdapterInfo->ioaddr + SCBGenCtrl2);
1940 DelayIt (AdapterInfo, 50);
1948 @param AdapterInfo Pointer to the NIC data structure
1959 IN NIC_DATA_INSTANCE *AdapterInfo,
1970 EEAddr = AdapterInfo->ioaddr + SCBeeprom;
1978 E100bSetEepromLockOut (AdapterInfo);
1990 Tmp = (UINT8) (InByte (AdapterInfo, EEAddr) & 0xF2);
1991 OutByte (AdapterInfo, (UINT8) (Tmp | EE_CS), EEAddr);
1996 shift_bits_out (AdapterInfo, ReadCmd, (UINT8) (3 + AddrLen));
2001 RetVal = shift_bits_in (AdapterInfo);
2006 Tmp = InByte (AdapterInfo, EEAddr);
2008 OutByte (AdapterInfo, Tmp, EEAddr);
2013 OutByte (AdapterInfo, (UINT8) (Tmp | EE_SHIFT_CLK), EEAddr);
2016 OutByte (AdapterInfo, (UINT8) (Tmp &~EE_SHIFT_CLK), EEAddr);
2022 E100bReSetEepromLockOut (AdapterInfo);
2032 @param AdapterInfo Pointer to the NIC data structure
2041 IN NIC_DATA_INSTANCE *AdapterInfo
2052 EEAddr = AdapterInfo->ioaddr + SCBeeprom;
2058 E100bSetEepromLockOut (AdapterInfo);
2067 Tmp = (UINT8) (InByte (AdapterInfo, EEAddr) & 0xF2);
2072 OutByte (AdapterInfo, (UINT8) (Tmp | EE_CS), EEAddr);
2077 shift_bits_out (AdapterInfo, ReadCmd, (UINT8) (3 + 6));
2089 Tmp = InByte (AdapterInfo, EEAddr);
2091 OutByte (AdapterInfo, (UINT8) (Tmp &~EE_DI), EEAddr);
2097 OutByte (AdapterInfo, (UINT8) (Tmp | EE_SHIFT_CLK), EEAddr);
2103 OutByte (AdapterInfo, (UINT8) (Tmp &~EE_SHIFT_CLK), EEAddr);
2105 Tmp = InByte (AdapterInfo, EEAddr);
2112 shift_bits_in (AdapterInfo);
2117 Tmp = InByte (AdapterInfo, EEAddr);
2119 OutByte (AdapterInfo, Tmp, EEAddr);
2124 OutByte (AdapterInfo, (UINT8) (Tmp | EE_SHIFT_CLK), EEAddr);
2127 OutByte (AdapterInfo, (UINT8) (Tmp &~EE_SHIFT_CLK), EEAddr);
2133 E100bReSetEepromLockOut (AdapterInfo);
2142 @param AdapterInfo TODO: add argument description
2151 NIC_DATA_INSTANCE *AdapterInfo,
2162 wait_for_cmd_done (AdapterInfo->ioaddr + SCBCmd);
2167 AdapterInfo->statistics->done_marker = 0;
2173 AdapterInfo,
2175 (UINT32) (AdapterInfo->ioaddr + SCBCmd)
2191 DelayIt (AdapterInfo, 100);
2197 switch (AdapterInfo->statistics->done_marker) {
2235 db.Data[0x01] = AdapterInfo->statistics->rx_good_frames;
2237 db.Data[0x02] = AdapterInfo->statistics->rx_runt_errs;
2239 db.Data[0x08] = AdapterInfo->statistics->rx_crc_errs +
2240 AdapterInfo->statistics->rx_align_errs;
2244 AdapterInfo->statistics->rx_resource_errs +
2245 AdapterInfo->statistics->rx_overrun_errs;
2249 db.Data[0x0B] = AdapterInfo->statistics->tx_good_frames;
2251 db.Data[0x0E] = AdapterInfo->statistics->tx_coll16_errs +
2252 AdapterInfo->statistics->tx_late_colls +
2253 AdapterInfo->statistics->tx_underruns +
2254 AdapterInfo->statistics->tx_one_colls +
2255 AdapterInfo->statistics->tx_multi_colls;
2257 db.Data[0x14] = AdapterInfo->statistics->tx_total_colls;
2261 AdapterInfo->statistics->tx_lost_carrier;
2276 @param AdapterInfo TODO: add argument description
2284 IN NIC_DATA_INSTANCE *AdapterInfo,
2293 OutWord (AdapterInfo, INT_MASK, AdapterInfo->ioaddr + SCBCmd);
2298 CheckCBList (AdapterInfo);
2300 XmitWaitForCompletion (AdapterInfo);
2302 if (AdapterInfo->Receive_Started) {
2303 StopRU (AdapterInfo);
2306 InitializeChip (AdapterInfo);
2313 save_filter = AdapterInfo->Rx_Filter;
2319 AdapterInfo->Rx_Filter &= (~PXE_OPFLAGS_RECEIVE_FILTER_FILTERED_MULTICAST);
2320 E100bSetfilter (AdapterInfo, save_filter, (UINT64) 0, (UINT32) 0);
2327 AdapterInfo->int_mask = 0;
2332 E100bSetInterruptState (AdapterInfo);
2341 @param AdapterInfo TODO: add argument description
2348 IN NIC_DATA_INSTANCE *AdapterInfo
2354 OutWord (AdapterInfo, INT_MASK, AdapterInfo->ioaddr + SCBCmd);
2359 if (AdapterInfo->Receive_Started) {
2360 StopRU (AdapterInfo);
2366 CheckCBList (AdapterInfo);
2367 if (AdapterInfo->FreeCBCount != AdapterInfo->TxBufCnt) {
2368 wait_for_cmd_done (AdapterInfo->ioaddr + SCBCmd);
2375 InitializeChip (AdapterInfo);
2376 SelectiveReset (AdapterInfo);
2386 @param AdapterInfo pointer to the structure that contains
2398 IN NIC_DATA_INSTANCE *AdapterInfo,
2414 OutLong (AdapterInfo, WriteCommand, AdapterInfo->ioaddr + SCBCtrlMDI);
2419 DelayIt (AdapterInfo, 20);
2423 while ((InLong (AdapterInfo, AdapterInfo->ioaddr + SCBCtrlMDI) &
2425 DelayIt (AdapterInfo, 20);
2435 @param AdapterInfo pointer to the structure that contains
2446 IN NIC_DATA_INSTANCE *AdapterInfo,
2461 OutLong (AdapterInfo, ReadCommand, AdapterInfo->ioaddr + SCBCtrlMDI);
2466 DelayIt (AdapterInfo, 20);
2471 while ((InLong (AdapterInfo, AdapterInfo->ioaddr + SCBCtrlMDI) &
2473 DelayIt (AdapterInfo, 20);
2477 *DataValue = InWord (AdapterInfo, AdapterInfo->ioaddr + SCBCtrlMDI);
2485 @param AdapterInfo pointer to the structure that contains
2492 NIC_DATA_INSTANCE *AdapterInfo
2505 AdapterInfo,
2507 AdapterInfo->PhyAddress,
2544 @param AdapterInfo pointer to the structure that contains
2555 NIC_DATA_INSTANCE *AdapterInfo
2564 eedata = (UINT16 *) (&AdapterInfo->NVData[0]);
2573 AdapterInfo->PhyRecord[0] = eedata[6];
2574 AdapterInfo->PhyRecord[1] = eedata[7];
2575 AdapterInfo->PhyAddress = (UINT8) (AdapterInfo->PhyRecord[0] & 7);
2581 if (AdapterInfo->PhyAddress == 32) {
2587 AdapterInfo->LinkSpeed = 10;
2595 if ((AdapterInfo->PhyAddress > 0) && (AdapterInfo->PhyAddress < 32)) {
2602 AdapterInfo,
2604 AdapterInfo->PhyAddress,
2609 AdapterInfo,
2611 AdapterInfo->PhyAddress,
2624 AdapterInfo,
2626 AdapterInfo->PhyAddress,
2634 return (SetupPhy(AdapterInfo));
2647 MdiRead (AdapterInfo, MDI_CONTROL_REG, 0, &MdiControlReg);
2648 MdiRead (AdapterInfo, MDI_STATUS_REG, 0, &MdiStatusReg);
2661 if (AdapterInfo->PhyAddress == 0x0000) {
2668 if (AdapterInfo->CableDetect != 0) {
2677 return SetupPhy (AdapterInfo);
2682 AdapterInfo->PhyAddress = 32;
2688 AdapterInfo->LinkSpeed = 10;
2705 AdapterInfo,
2707 AdapterInfo->PhyAddress,
2714 DelayIt (AdapterInfo, 100);
2722 AdapterInfo,
2731 DelayIt (AdapterInfo, 100);
2737 AdapterInfo,
2750 MdiRead (AdapterInfo, MDI_STATUS_REG, 0, &MdiStatusReg);
2751 MdiRead (AdapterInfo, MDI_STATUS_REG, 0, &MdiStatusReg);
2757 DelayIt (AdapterInfo, 100);
2764 MdiRead (AdapterInfo, MDI_STATUS_REG, 0, &MdiStatusReg);
2774 if (AdapterInfo->CableDetect != 0) {
2785 MdiWrite (AdapterInfo, MDI_CONTROL_REG, 0, MDI_CR_ISOLATE);
2790 DelayIt (AdapterInfo, 100);
2796 AdapterInfo,
2798 AdapterInfo->PhyAddress,
2805 DelayIt (AdapterInfo, 100);
2811 AdapterInfo,
2813 AdapterInfo->PhyAddress,
2820 return (SetupPhy (AdapterInfo));
2827 AdapterInfo->PhyAddress = 0;
2828 return (SetupPhy(AdapterInfo));
2846 @param AdapterInfo pointer to the structure that contains
2857 IN NIC_DATA_INSTANCE *AdapterInfo
2875 if (((AdapterInfo->LinkSpeedReq) || (AdapterInfo->DuplexReq))) {
2880 AdapterInfo,
2882 AdapterInfo->PhyAddress,
2890 AdapterInfo,
2892 AdapterInfo->PhyAddress,
2905 if (AdapterInfo->LinkSpeedReq == 10) {
2909 if ((AdapterInfo->DuplexReq & PXE_FORCE_HALF_DUPLEX) != 0) {
2915 } else if ((AdapterInfo->DuplexReq & PXE_FORCE_FULL_DUPLEX) != 0) {
2941 else if (AdapterInfo->LinkSpeedReq == 100) {
2945 if ((AdapterInfo->DuplexReq & PXE_FORCE_HALF_DUPLEX) != 0) {
2952 } else if ((AdapterInfo->DuplexReq & PXE_FORCE_FULL_DUPLEX) != 0) {
2982 AdapterInfo,
2984 AdapterInfo->PhyAddress,
2991 DelayIt (AdapterInfo, 100);
3001 AdapterInfo,
3003 AdapterInfo->PhyAddress,
3007 AdapterInfo,
3009 AdapterInfo->PhyAddress,
3027 AdapterInfo,
3029 AdapterInfo->PhyAddress,
3036 AdapterInfo,
3038 AdapterInfo->PhyAddress,
3043 FindPhySpeedAndDpx (AdapterInfo, PhyId);
3059 @param AdapterInfo pointer to the structure that contains
3068 IN NIC_DATA_INSTANCE *AdapterInfo,
3081 AdapterInfo->LinkSpeed = AdapterInfo->LinkSpeedReq;
3082 AdapterInfo->Duplex = (UINT8) ((AdapterInfo->DuplexReq & PXE_FORCE_FULL_DUPLEX) ?
3090 if (AdapterInfo->LinkSpeed && AdapterInfo->Duplex) {
3103 AdapterInfo,
3105 AdapterInfo->PhyAddress,
3109 AdapterInfo,
3111 AdapterInfo->PhyAddress,
3120 AdapterInfo->LinkSpeed = 10;
3121 AdapterInfo->Duplex = HALF_DUPLEX;
3135 AdapterInfo,
3137 AdapterInfo->PhyAddress,
3145 AdapterInfo->LinkSpeed = 100;
3147 AdapterInfo->LinkSpeed = 10;
3154 AdapterInfo->Duplex = FULL_DUPLEX;
3156 AdapterInfo->Duplex = HALF_DUPLEX;
3165 AdapterInfo,
3167 AdapterInfo->PhyAddress,
3175 AdapterInfo,
3177 AdapterInfo->PhyAddress,
3194 AdapterInfo,
3196 AdapterInfo->PhyAddress,
3210 AdapterInfo->LinkSpeed = 100;
3212 AdapterInfo->LinkSpeed = 10;
3219 AdapterInfo->Duplex = HALF_DUPLEX;
3222 AdapterInfo->Duplex = FULL_DUPLEX;
3225 AdapterInfo->Duplex = HALF_DUPLEX;
3228 AdapterInfo->Duplex = FULL_DUPLEX;
3231 AdapterInfo->Duplex = HALF_DUPLEX;
3244 AdapterInfo->Duplex = HALF_DUPLEX;
3251 AdapterInfo,
3253 AdapterInfo->PhyAddress,
3261 AdapterInfo->LinkSpeed = 10;
3263 AdapterInfo->LinkSpeed = 100;
3272 AdapterInfo->LinkSpeed = 10;
3280 @param AdapterInfo TODO: add argument description
3287 NIC_DATA_INSTANCE *AdapterInfo
3292 if (AdapterInfo->FreeCBCount == AdapterInfo->TxBufCnt) {
3300 TxPtr = AdapterInfo->FreeTxTailPtr->NextTCBVirtualLinkPtr;
3301 while (TxPtr != AdapterInfo->FreeTxHeadPtr) {
3302 CommandWaitForCompletion (TxPtr, AdapterInfo);
3303 SetFreeCB (AdapterInfo, TxPtr);
3313 @param AdapterInfo TODO: add argument description
3321 NIC_DATA_INSTANCE *AdapterInfo
3327 DelayIt (AdapterInfo, 10);
3341 @param AdapterInfo TODO: add argument description
3348 NIC_DATA_INSTANCE *AdapterInfo
3362 OutLong (AdapterInfo, PORT_RESET, AdapterInfo->ioaddr + SCBPort);
3366 DelayIt (AdapterInfo, 5000);
3387 if (AdapterInfo->VendorID == D102_DEVICE_ID ||
3388 AdapterInfo->VendorID == ICH3_DEVICE_ID_1 ||
3389 AdapterInfo->VendorID == ICH3_DEVICE_ID_2 ||
3390 AdapterInfo->VendorID == ICH3_DEVICE_ID_3 ||
3391 AdapterInfo->VendorID == ICH3_DEVICE_ID_4 ||
3392 AdapterInfo->VendorID == ICH3_DEVICE_ID_5 ||
3393 AdapterInfo->VendorID == ICH3_DEVICE_ID_6 ||
3394 AdapterInfo->VendorID == ICH3_DEVICE_ID_7 ||
3395 AdapterInfo->VendorID == ICH3_DEVICE_ID_8 ||
3396 AdapterInfo->RevID >= 8) { // do the TCO fix
3400 OutByte (AdapterInfo, CU_CMD_BASE, AdapterInfo->ioaddr + SCBCmd);
3404 wait_for_cmd_done (AdapterInfo->ioaddr + SCBCmd);
3414 tco_stat = InByte (AdapterInfo, AdapterInfo->ioaddr + 0x1b);
3423 DelayIt (AdapterInfo, 1);
3441 @param AdapterInfo TODO: add argument description
3448 IN NIC_DATA_INSTANCE *AdapterInfo
3456 OutLong (AdapterInfo, POR_SELECTIVE_RESET, AdapterInfo->ioaddr + SCBPort);
3464 DelayIt (AdapterInfo, 2000);
3467 stat = InLong (AdapterInfo, AdapterInfo->ioaddr + SCBPort);
3475 DelayIt (AdapterInfo, 1000);
3489 @param AdapterInfo TODO: add argument description
3496 IN NIC_DATA_INSTANCE *AdapterInfo
3500 if (SoftwareReset (AdapterInfo) != 0) {
3507 OutWord (AdapterInfo, INT_MASK, AdapterInfo->ioaddr + SCBCmd);
3513 if ((ret_val = Load_Base_Regs (AdapterInfo)) != 0) {
3517 if ((ret_val = SetupCBlink (AdapterInfo)) != 0) {
3521 if ((ret_val = SetupReceiveQueues (AdapterInfo)) != 0) {
3529 AdapterInfo->PhyAddress = 0xFF;
3531 if (AdapterInfo->CableDetect != 0) {
3532 if (!PhyDetect (AdapterInfo)) {
3537 if ((ret_val = E100bSetupIAAddr (AdapterInfo)) != 0) {
3541 if ((ret_val = Configure (AdapterInfo)) != 0) {