summaryrefslogtreecommitdiffstats
path: root/sys/dev/nfe
Commit message (Collapse)AuthorAgeFilesLines
* Fix a typo.yongari2008-12-201-1/+1
| | | | Submitted by: clemens fischer via Shigeaki Tagashira
* Add hardware MAC statistics support. Register information wasyongari2008-10-033-25/+287
| | | | | | | | obtained from Linux forcedeth driver. While I'm here move creating a sysctl node for process_limit to function nfe_sysctl_node(). Tested by: "Arno J. Klaassen" < arno <at> heho dot snv dot jussieu dot fr >
* Add device ids for MCP77/79 and set appropriate support flags.yongari2008-10-012-0/+40
| | | | | Obtained from: OpenBSD PR: kern/127529
* Add support for MCP73 chips.yongari2008-04-102-0/+16
| | | | | Tested by: "Daan Vreeken [PA4DAN]" ( Danovitsch AT vitsch DOT net ) MFC after: 1 week
* Nuke local jumbo allocator and switch to use of UMA backed pageyongari2008-03-063-185/+6
| | | | | | | | allocator for jumbo frame. Also remove unneeded jlist lock which is no longer required to protect jumbo buffers. With these changes jumbo frame performance of nfe(4) was slightly increased and users should not encounter jumbo buffer allocation failure anymore.
* Give MEXTADD() another argument to make both void pointers to thephk2008-02-011-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | free function controlable, instead of passing the KVA of the buffer storage as the first argument. Fix all conventional users of the API to pass the KVA of the buffer as the first argument, to make this a no-op commit. Likely break the only non-convetional user of the API, after informing the relevant committer. Update the mbuf(9) manual page, which was already out of sync on this point. Bump __FreeBSD_version to 800016 as there is no way to tell how many arguments a CPP macro needs any other way. This paves the way for giving sendfile(9) a way to wait for the passed storage to have been accessed before returning. This does not affect the memory layout or size of mbufs. Parental oversight by: sam and rwatson. No MFC is anticipated.
* - Retire npe_defrag(), gem_defrag(), msk_defrag(), nfe_defrag(), andjhb2008-01-171-89/+1
| | | | | | re_defrag() and use m_collapse() instead. - Replace a reference to ath_defrag() in a comment in if_wpi.c with m_collapse().
* Fix function prototype for device_shutdown method.yongari2007-11-221-2/+4
|
* use the private task q thread instead of the shared system threadsam2007-11-161-6/+5
| | | | | Reviewed by: yongari MFC after: 1 week
* Apparently some NVIDIA NICs store ethernet address in reverse orderyongari2007-11-061-2/+2
| | | | | | | | | | while other variants have inorder ethernet address for the same chipset. Override ethernet address ordering if we already know how it was stored. This fixes the use of inversed ethernet address on MCP67. Submitted by: ariff MFC after: 3 days
* During boot(before setting IP address) PHY can generate link stateyongari2007-09-141-6/+6
| | | | | | | | | | | | change interrupt if the link is established with link parter. However interrupt handler didn't acknowledge the interrupt if nfe(4) was not running at the time of interrupt delivery. This caused endless interrupt generation. Fix the bug by acknowledging the interrupt regardless of running state of the driver. PR: kern/116295 Submitted by: Mark Derbyshire (mark At taom dot com) Approved by: re (kensmith)
* Fix typo.yongari2007-09-141-2/+2
| | | | | Pointed out: marius Approved by: re (bmah)
* Don't fail on device attach if jumbo frame support was unsuccessful.yongari2007-07-242-9/+26
| | | | | | | | | | | | | Because nfe(4) hardware doesn't support SG on Rx path, supporting jumbo frame requires very large contiguous kernel memory(i.e. several mega bytes). In case of lack of contiguous kernel memory that allocation request may always fail. However nfe(4) can operate on normal sized MTU frames, so go ahead and just disable jumbo frame support. While I'm here add a new tunable "hw.nfe.jumbo_disable" to disable jumbo frame support. In nfe_poll, make sure to invoke correct Rx handler. Approved by: re (kensmith)
* The maximum size of the sum of all segment lengths in a given DMA mappingyongari2007-06-121-1/+1
| | | | | | should be 65535 + link layer headers. Pointed out by: gallatin
* Increase a maximum segment size of DMA to 4096. Previously it usedyongari2007-06-122-2/+4
| | | | | | | | MCLBYTES for the segment size but it used too many Tx descriptors in TSO case. While I'm here adjust maximum size of the sum of all segment lengths in a given DMA mapping to 65535, the maximum size, in bytes, of a IP packet.
* Bring overhauled nfe(4) into tree.yongari2007-06-123-909/+2103
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | o s/printf/device_printf/g o Nuke OpenBSDism. o Nuke NetBSD/OpenBSD specific DMA sync operations.(we don't have a way to sync a single descriptor within a DMA map.) o Remove recursive mutex. o bus_dma(9) clean up. o 40bit DMA address support. o Add protection for Rx map load failure. o Fix a long standing bug for watchdog timeout. [1] o Add additional protections, missing Tx completion interrupt, losing start Tx command, for watchdog timeout. o Switch to taskqueue(9) API to handle interrupts. o Use our own timer for watchdog instead of if_watchdog/if_timer interface. o Advertise VLAN header length/capability correctly to upper layer. o Remove excessive kernel stack consumption in nfe_encap(). o Handle highly fragmented mbuf chains correctly. o Enable etherenet address reprogramming with ifconfig(8). o Add ALTQ/TSO, MSI/MSIX support. o Increased Rx ring to 256 descriptors from 128. o Align Tx/Rx descriptor ring on sizeof(struct nfe_desc64) boundary. o Remove alignment restrictions on Tx/Rx buffers. o Rewritten jumbo frame support code. o Add support for hardware assistend VLAN tag insertion/stripping. o Add support for Tx/Rx flow control based on patches from Peer Chen. [2] o Add a routine that detects whether ethernet address swap routines is required. [3] o Add a workaround that take MAC/PHY out of power down mode. o Add suspend/resume support. o style(9) and code clean up. Special thanks to Shigeaki Tagashira, the original porter of nfe(4), who submitted lots of patches, performed uncountable number of regression tests and maintained nfe(4) for a long time. Without his enthusiastic help and support I could never have completed this overhauling task. The only weak point of nfe(4) compared to nve(4) is instability of manual half-duplex media selection on certain hardwares(auto sensing media type should work for all cases, though). This was a long standing bug of nfe(4) and I still have no idea why it doesn't work on some hardwares. Obtained from: OpenBSD [1] Submitted by: Peer Chen < pchen at nvidia dot com > [2], [3] Reviewed by: Shigeaki Tagashira < shigeaki AT se DOT hiroshima-u DOT ac DOT jp > Tested by: Shigeaki Tagashira, current Discussed with: current Silence from: obrien
* Catch up the rest of the drivers with the ether_vlan_mtap modifications.csjp2007-03-041-1/+1
| | | | | | | | | | If these drivers are setting M_VLANTAG because they are stripping the layer 2 802.1Q headers, then they need to be re-inserting them so any bpf(4) peers can properly decode them. It should be noted that this is compiled tested only. MFC after: 3 weeks
* o break newbus api: add a new argument of type driver_filter_t topiso2007-02-231-1/+1
| | | | | | | | | | | | | bus_setup_intr() o add an int return code to all fast handlers o retire INTR_FAST/IH_FAST For more info: http://docs.freebsd.org/cgi/getmsg.cgi?fetch=465712+0+current/freebsd-current Reviewed by: many Approved by: re@
* Fix TX/RX checksum offload.obrien2006-11-272-16/+21
| | | | Submitted by: Peer Chen at nVIDIA
* Reformat to KNF after revision 1.12.obrien2006-11-271-85/+81
|
* Fix the jumbo frame support.obrien2006-11-273-209/+63
| | | | Submitted by: Peer Chen at nVIDIA (reworked by me)
* Grrr. new .vimrc file is really giving me trouble.. get the whitespace right.obrien2006-11-271-2/+2
|
* Fix editor fatfingering in rev 1.9.obrien2006-11-271-2/+2
|
* nfe_stop() requires lock to be held when calling.obrien2006-11-261-0/+2
|
* Missed two nits in rev 1.7.obrien2006-11-171-2/+2
|
* style(9)obrien2006-10-191-153/+153
|
* style(9) cleanup.obrien2006-10-191-243/+332
|
* Correct the WOL magic value.obrien2006-10-161-1/+1
| | | | Submitted by: Peer Chen at nVIDIA
* Try to be more precise in identifying the various nForce networking adapters.obrien2006-10-161-14/+14
|
* Move ethernet VLAN tags from mtags to its own mbuf packet header fieldandre2006-09-171-16/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | m_pkthdr.ether_vlan. The presence of the M_VLANTAG flag on the mbuf signifies the presence and validity of its content. Drivers that support hardware VLAN tag stripping fill in the received VLAN tag (containing both vlan and priority information) into the ether_vtag mbuf packet header field: m->m_pkthdr.ether_vtag = vlan_id; /* ntohs()? */ m->m_flags |= M_VLANTAG; to mark the packet m with the specified VLAN tag. On output the driver should check the mbuf for the M_VLANTAG flag to see if a VLAN tag is present and valid: if (m->m_flags & M_VLANTAG) { ... = m->m_pkthdr.ether_vtag; /* htons()? */ ... pass tag to hardware ... } VLAN tags are stored in host byte order. Byte swapping may be necessary. (Note: This driver conversion was mechanic and did not add or remove any byte swapping in the drivers.) Remove zone_mtag_vlan UMA zone and MTAG_VLAN definition. No more tag memory allocation have to be done. Reviewed by: thompsa, yar Sponsored by: TCP/IP Optimization Fundraise 2005
* Add support for MCP61 and MCP65 adaptors.obrien2006-09-112-0/+36
| | | | Submitted by: Peer Chen at nVIDIA
* Fix alignment of RX bufs DMA map to be realistic. Maybe it works onru2006-08-141-2/+2
| | | | | | | | | i386 (I don't know) but on amd64 at hand here, it paniced early at boot. (I'm pretty sure that PAGE_SIZE here was miscopied from another place during porting, where in OpenBSD bus_dmamem_alloc() is used, but there PAGE_SIZE means completely different thing.)
* Add a pure open source nForce Ethernet driver, under BSDL.obrien2006-06-263-999/+1484
| | | | | | | | | This driver was ported from OpenBSD by Shigeaki Tagashira <shigeaki@se.hiroshima-u.ac.jp> and posted at http://www.se.hiroshima-u.ac.jp/~shigeaki/software/freebsd-nfe.html It was additionally cleaned up by me. It is still a work-in-progress and thus is purposefully not in GENERIC. And it conflicts with nve(4), so only one should be loaded.
* Import the nfe (nForce Ethernet) driver from OpenBSD.obrien2006-06-263-0/+2009
This is a pure open source NIC driver with a BSD license. These bits were taken from the OpenBSD public CVS repository on 1-May-06.
OpenPOWER on IntegriCloud