summaryrefslogtreecommitdiff
path: root/sys/dev/pci/if_em.c
AgeCommit message (Collapse)Author
2007-03-16A new PCI id for Intel's PCIe quad port fiber adapter.Reyk Floeter
2007-01-26Workaround for an issue with em(4) interfaces on Lenovo X60/T60 laptops whereTobias Weingartner
the interface will fail to initialize with an EEPROM error if the interface does not have a link upon boot. Tested by mk@ and janek@ From Jack Vogel@Intel via brad
2007-01-21Fix typo. From brad@Mark Kettenis
2007-01-15Report flow control status.Mark Kettenis
From brad@
2006-12-27Set IFM_ETH_MASTER if local PHY configuration resolved to MASTER.Mark Kettenis
From brad@
2006-12-06Implement em_read_pcie_cap_reg(), where we set the max read size onReyk Floeter
PCIe to 4k. >From kmacy@FreeBSD Tested by mk@ and Johan Mson Lindman <tybollt at solace dot mh dot se> with the 82573 chipset. ok brad@ mglocker@ mk@
2006-12-04report full/half duplex state for non-MII interfacesReyk Floeter
ok brad@
2006-11-21Remove watchdog handler workaround introduced in rev 1.149 which is noBrad Smith
longer necessary.
2006-11-21style changes. no op.Brad Smith
2006-11-18fix commentsBrad Smith
2006-11-17Add a lower TX threshold value and use this when checking the number ofBrad Smith
available TX descriptors in the case that em_encap() has tried to reclaim descriptors. From Jack Vogel@Intel Tested by brad@, mk@, Gabriel Kihlman <gk at stacken dot kth dot se>, Johan Mson Lindman <tybollt at solace dot mh dot se> Tested on amd64/i386/sparc64
2006-11-14Rework the transmit register handling. In em_encap() store the index ofBrad Smith
the EOP descriptor in the first descriptor of the packet. In em_txeof() search for the DD bit set only in the EOP descriptors, embedding the cleanup of all packet's descriptors into the inner loop. This change is important for future chips, where the DD bit is going to be set only in the EOP descriptors. From Jack Vogel@Intel Tested by brad@, mk@, reyk@, Gabriel Kihlman <gk at stacken dot kth dot se>, Johan Mson Lindman <tybollt at solace dot mh dot se>, Jason Dixon and a few others. Tested on i386/amd64/sparc64.
2006-11-10Pre-allocate the TX DMA maps intead of creating and destroying a DMA mapBrad Smith
per packet sent. Tested by brad@, ckuethe@, Gabriel Kihlman <gk at stacken dot kth dot se> and Tim Wiess <tim at nop dot cx>. Tested with amd64/i386/sparc64. ok damien@
2006-11-07em_get_buf():Brad Smith
- Use bus_dmamap_load_mbuf() instead of bus_dmamap_load() + mtod(). - Only BUS_DMASYNC_PREREAD is necessary for the bus_dmamap_sync(). em_allocate_receive_structures(): - Clean up error handling for receive buffer allocation and just have everything done by em_free_receive_structures() now. em_free_receive_structures(): - A few changes here to allow this function to be called from em_stop() as well as em_allocate_receive_structures(). Tested on i386/amd64/sparc64. ok reyk@
2006-11-06Sync up to Intel's latest FreeBSD em driver (6.2.9). Adds supportBrad Smith
for a few newer Intel PCIe boards, some code removal and cleaning and a few bug fixes. From: Jack Vogel@Intel Tested by mk@ wilfried@ brad@ dlg@, Marc Winiger, Gabriel Kihlman, Jason Dixon, Johan Mson Lindman, and a few other end users. Tested with 82543, 82544, 82540, 82545, 82541, 82547, 82546 and 82573.
2006-11-03the 8257E KCS PCI id is not the MAC but an IPMI interface being providedBrad Smith
from the chipset, so remove it.
2006-10-30removed unused variable.David Gwynne
ok brad@
2006-09-29move the checksum stuff under EM_CSUM_OFFLOAD.Brad Smith
2006-09-17Try to reclaim the TX descriptors in the watchdog handler before actuallyBrad Smith
issuing a watchdog reset of the interface. From yongari@FreeBSD
2006-09-17Overhaul RX path to recover from mbuf cluster allocation failure.Brad Smith
- Create a spare DMA map for RX handler to recover from bus_dmamap_load() failure. - Make sure to update status bit in RX descriptors even if we failed to allocate a new buffer. - Don't blindly unload DMA map. Reuse loaded DMA map if received packet has errors. From yongari@FreeBSD Tested by myself and a number of end-users on i386/amd64/sparc64
2006-09-17revert revision 1.131, the code in question was later found to not ensureBrad Smith
the proper alignment requirement for the VLAN layer on strict alignment architectures. This would result in Jumbo's working fine as long as VLANs were not in use. If VLANs were in use and a packet comes in with a size of 2046 bytes or larger, it would be corrupted as it came up through the VLAN layer. Also check the hw max frame size, instead of the MTU, so the alignment fixup is done as appropriate. Fixes PR 5185. Tested by Rui DeSousa with macppc and myself with alpha/sparc64.
2006-08-22- Re-add the m_adj() back into em_get_buf(), but this time checkBrad Smith
the HW max frame size and only call m_adj() if the size is less than or equal to MCLBYTES - ETHER_ALIGN (2046). - Set the HW long packet enable bit on all adapters, even 82573 based adapters which are capable of Jumbo's. - Only do RX alignment fixup on adapters capable of Jumbo frames. ok jason@
2006-08-14replace a incorrect number with a proper define. this is a no-op changeBrad Smith
since E1000_FDX_COLLISION_DISTANCE and E1000_HDX_COLLISION_DISTANCE use the same values. From glebius@FreeBSD
2006-08-09cosmetic tweaks.Brad Smith
2006-08-09Sync up to Intel's latest FreeBSD em driver (6.1.4). Adds PCI id for the PCIeBrad Smith
quad port copper adapter, improvements for media support with fiber adapters, and some fixes for the ICH8 support.
2006-08-09Use the DMA map size from the DMA map instead of the dma_size field withBrad Smith
bus_dma sync's. ok dlg@ marco@
2006-08-04- merge em/ixgb_disable_promisc() into em/ixgb_set_promisc().Brad Smith
- rearrange interface flags ioctl handler.
2006-08-04fix up error messages in em/ixgb_allocate_pci_resources().Brad Smith
2006-08-01(em/ixgb)_(clean_transmit_interrupts/process_receive_interrupts) ->Brad Smith
(em/ixgb)_(txeof/rxeof)
2006-07-10Fully initialize the softc structure before enabling interrupt. ok brad@Dale Rahn
2006-07-08don't add 1000Mbps media types for a 10/100 only PHY.Brad Smith
2006-07-07Sync up to Intel's latest FreeBSD em driver (6.0.5). Adds supportBrad Smith
for new chipset revisions embedded in the ESB2 and ICH8 core logic chipsets. The previous attempt at commiting this included an unrelated change to how the I/O base address was being set and this was the cause of the breakage. From: Intel's web-site
2006-07-05revert back to the older driver as this causes some breakage.Brad Smith
2006-07-03Sync up to Intel's latest FreeBSD em driver (6.0.5). Adds supportBrad Smith
for new chipset revisions embedded in the ESB2 and ICH8 core logic chipsets. From: Intel's web-site
2006-06-28remove some whitespace.Brad Smith
2006-06-24make em_fixup_rx() a void function.Brad Smith
2006-05-31fix Jumbo frames on strict alignment architectures by allocating a new mbuf andBrad Smith
copying the Ethernet header to the new mbuf. The new mbuf is then prepended into the existing mbuf chain. From FreeBSD ok reyk@ pascoe@ jason@
2006-05-28- force the maximum receivable frame size down to 1518 bytes forBrad Smith
strict alignment architectures for the time being. - remove the m_adj() on non-strict alignment architectures as this seems to resolve the Jumbo crashing issue. tested by a few developers. ok reyk@
2006-05-28always set if_hardmtu.Brad Smith
2006-05-28use if_hardmtu for MTU ioctl handler.Brad Smith
2006-05-28unknown ioctl is ENOTTY not EINVALJason Wright
2006-05-27remove IFCAP_JUMBO_MTU interface capabilities flag and set if_hardmtu in a fewBrad Smith
more drivers. ok reyk@
2006-05-26rename jumbo mtu to if_hardmtu; ok brad reykTheo de Raadt
2006-05-25formattingBrad Smith
2006-05-25formatting; ok bradJason Wright
2006-05-20fix pci resource allocation in em, don't crash!Reyk Floeter
fix by brad@
2006-05-20set if_jumbo_mtu and the IFCAP_JUMBO_MTU capabilities flag whereBrad Smith
appropriate. ok reyk@
2006-05-20simplify MTU ioctl switch case.Brad Smith
2006-05-07fix a typo and some KNF.Brad Smith
2006-05-07- Remove unreachable bus_dmamap_unload() in em_dma_malloc().Brad Smith
- Set the dma_tag to NULL upon failure in em_dma_malloc(). - In em_dma_free(), return if dma_tag is NULL.