summaryrefslogtreecommitdiff
path: root/sys/dev/pci/if_bnx.c
AgeCommit message (Collapse)Author
2007-05-22Add the BCM5709 PCI device Id. It is disabled for now since we do notReyk Floeter
support SerDes-based (1000base-SX fibre) bnx(4) devices yet. The reason is simple - we do not have any fibre bnx(4) to test and port the SerDes changes from the other bnx drivers. From brad found in the Linux driver
2007-05-22adress -> addressJasper Lievisse Adriaanse
from brad ok claudio@
2007-05-22Use BNX_PRINTF instead of printf with missing argument.Ray Lai
OK reyk@, earlier version OK tedu@, dlg@, and miod@.
2007-05-21fix bnx vlan tagging in the rx path; do not attach the vlan tag twiceReyk Floeter
if the firmware has been told to keep it and copy the tag in network byte order in the other case. ok mcbride@ dlg@
2007-03-05remove jumbo frame support by replacing MEXTALLOC with MCLGET, andReyk Floeter
simplify the VLAN code. this will close PR 5356 (system panics under high load). From claudio@ who is currently not around to commit this fix tested and ok by mcbride@, reyk@, todd@, Paul Hirsch, and brad
2007-03-03instead of establishing the interrupt in the mounthook, move it backReyk Floeter
to the attach function and set a flag in the mounthook to start accepting interrupts (there are possible problems with establishing interrupts after the ioapics are enabled in i386 GENERIC.MP). also suggested by kettenis tested by mcbride, me, and some others ok dlg@
2007-03-03Replacing some spaces with tabs and some typo fixesTodd T. Fries
from brad@
2007-03-02oops, this is $OpenBSD$Reyk Floeter
2007-03-02- remove the code to bring down the PHY in bnx_stop(), it's wrongReyk Floeter
(ifm_data isn't updated) and lead to a panic in mii_phy_setmedia(), or reading past the end mii_media_table[]. - make sure the dma_map matches the mbuf in the rx structures. We would sync/unload the wrong map, leading to a DIAGNOSTIC panic, or eventually leaking memory when bounce buffers are needed. From NetBSD ok marco@, brad@
2007-01-30Allow the bnx(4) driver to make use of all of the available hardwareKenneth R Westerback
multicast hash slots. The bnx(4) hardware supports 8 slots instead of 4 like the bge(4) hardware. From Mike Karels via FreeBSD Tested by Brad, biorn@ and Johan M:son Lindman
2007-01-27Enable transmit TCP/UDP checksum offload.Kenneth R Westerback
From Brad, tested by Brad, biorn@ and Johan M:son Lindman.
2007-01-21Remove bogus check for old firmware.Ryan Thomas McBride
Identical fixes from myself and brad@, also reported by chefren@pi.net.
2007-01-20move the interrupt establishment till after everything in the softc isDavid Gwynne
set up and allocated (which happens in a mountroothook). this prevents an early call to the interrupt handler from causing a null deref when trying to look into the unallocated regions. found by mcbride when ciss and bnx were sharing an interrupt. mounting root caused interrupts before the bnx was properly set up. "commit your fix" mcbride@
2007-01-19bnx_init() takes a pointer to sc, not ifp.Ryan Thomas McBride
2007-01-10change firmware byte order to be same on all architecturesTheo de Raadt
THIS MEANS YOU NEED TO UPDATE YOUR FIRMWARE FILE BEFORE BOOTING WITH A NEW KERNEL tested by marco, biorn
2006-12-24use the right size when loading the rx/tx descriptor bus dma maps.Reyk Floeter
from the NetBSD port tested by bion@ and others from tech@ ok marco@ brad@
2006-11-26commented out entry for the BCM5709.Brad Smith
2006-11-20only try to do HW checksum offload for TCP and UDP.Brad Smith
2006-11-20Due to an incorrect macro, it appears that the driver has always beenBrad Smith
accidentally truncating off the VLAN tag field in the TX descriptor. Fix this by splitting up the vlan_tag and flags fields into separate fields, and handling them appropriately. From scottl@FreeBSD
2006-11-19In bnx_start, check the used_tx_bd count rather than the descriptorsBrad Smith
mbuf pointer to see if the transmit ring is full. The mbuf pointer is set only in the last descriptor of a multi-descriptor packet. By relying on the mbuf pointers of the earlier descriptors, the driver would sometimes overwrite a descriptor belonging to a packet that wasn't completed yet. Also, tx_chain_prod wasn't updated inside the loop, causing the wrong descriptor to be checked after the first iteration. The upshot of all this was the loss of some transmitted packets at medium to high packet rates. In bnx_tx_encap, remove a couple of old statements that shuffled around the tx_mbuf_map pointers. These now correspond 1-to-1 with the transmit descriptors, and they are not supposed to be changed. Correct a couple of inaccurate comments. From jdp@FreeBSD
2006-10-26do the minimal initialization of the firmware so that ASF alwaysBrad Smith
works. From ambrisko@FreeBSD
2006-10-25replace a few more instances of hand rolled code with theBrad Smith
LIST_FOREACH macro.
2006-10-22now with the right revision of this diff which compiles. ok pedro, mglocker.Brad Smith
- Ensure that at least 16 TX descriptors are kept unused in the ring. - Use more complete error handling for TX load problems. From scottl@FreeBSD
2006-10-21does not compileTheo de Raadt
2006-10-21- Ensure that at least 16 TX descriptors are kept unused in the ring.Brad Smith
- Use more complete error handling for TX load problems. From scottl@FreeBSD
2006-10-19make the exit label naming scheme match the current function names, removesBrad Smith
a FreeBSD-ism from the original driver.
2006-10-19Overhaul the transmit path:Brad Smith
- Eliminate the bnx_dmamap_arg structure. - Refactor the loop that fills the buffer descriptor so that it can be done with a single set of logic in a single loop instead of two sets of logic. - Eliminate the need to cache and pass descriptor indexes between the start loop and the encap function. - Change the start loop to always check the ifnet sendq for more work. From scottl@FreeBSD
2006-10-14- Simplify the arguments to bnx_tx_encap.Brad Smith
- Don't copy the bd_chain head pointers into temporary objects, they are available globally. From scottl@FreeBSD
2006-10-04Use loadfirmware(9) to get /etc/firmware/bnx instead of hard-coding aTheo de Raadt
gigantic firmware into the kernel; checked by brad
2006-08-25don't need to clear if_timer during attach.Brad Smith
2006-08-21ramdisks do not have vlan, drop mbuf; ok bradTheo de Raadt
2006-08-21simplfy code a bit and fix comments, this is the MRU being set not theBrad Smith
MTU.
2006-08-21enable Jumbo support.Brad Smith
2006-08-20remove a comment.Brad Smith
2006-08-20cosmetic tweaks.Brad Smith
2006-08-20- replace IF_DEQUEUE/IF_PREPEND with IFQ_POLL/IFQ_DEQUEUE.Brad Smith
- enable RX checksum offload. - remove some unused code.
2006-08-19set the capabilities VLAN MTU flag.Brad Smith
2006-08-14And some more KNF.Marco Peereboom
2006-08-14KNFMarco Peereboom
2006-08-14More KNF; no functional change.Marco Peereboom
2006-08-14First in a series of KNF. No functional change.Marco Peereboom
2006-08-14disable debugging.Brad Smith
2006-08-14Change bus_dmamap_create to use the appropriate values. This fixes theMarco Peereboom
issues brad was seeing. Help from jason. ok brad.
2006-08-13Get rid of _HI & _LO macros altogether since they used a wrong idiom.Marco Peereboom
This was pointed out by mickey The driver now uses the same idiom as mpi. help from miod, mickey and kettenis ok brad
2006-08-13fix a typo, BNX_DRBUG -> BNX_DEBUGBrad Smith
2006-08-10unmap memory address space in bnx_release_resources().Brad Smith
2006-08-10cosmetic tweaking.Brad Smith
2006-08-10remove typedef's.Brad Smith
2006-08-09Reorder dmamap & dmamem to match man page.Marco Peereboom
Redo detection of _LO & _HI macro; help from miod and jordan. ok beck brad
2006-06-26do not allow a Jumbo size MTU yet.Brad Smith