summaryrefslogtreecommitdiffstats
path: root/sys/dev/pci/if_bnxreg.h (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Make the bnx interrupt handler mpsafe, and perform rx and tx completionjmatthew2015-12-051-7/+5
| | | | | | | | | | | | | outside the kernel lock. Remove tx descriptor lists (essentially backing out if_bnx.c r1.77), add an interrupt barrier in bnx_stop, check the rx ring state before receiving packets, adjust the tx counter with atomic operations, and rework bnx_start to check for ring space before dequeueing and drop the packet if bnx_encap fails. tested on BCM5708 by me and on BCM5709 by Hrvoje Popovski ok dlg@
* You only need <net/if_dl.h> if you're using LLADDR() or a sockaddr_dl.mpi2015-11-241-2/+1
|
* Do not include <net/if_vlan_var.h> when it's not necessary.mpi2015-11-141-6/+1
| | | | | | Because of the VLAN hacks in mpw(4) this file still contains the definition of "struct ifvlan" which depends on <sys/refcnt.h> which in turns pull <sys/atomic.h>...
* Make room for media types of the future. Extend the ifmedia word to 64 bits.stsp2015-09-111-2/+2
| | | | | | | | | | | | | | | | This changes numbers of the SIOCSIFMEDIA and SIOCGIFMEDIA ioctls and grows struct ifmediareq. Old ifconfig and dhclient binaries can still assign addresses, however the 'media' subcommand stops working. Recompiling ifconfig and dhclient with new headers before a reboot should not be necessary unless in very special circumstances where non-default media settings must be used to get link and console access is not available. There may be some MD fallout but that will be cleared up later. ok deraadt miod with help and suggestions from several sharks attending l2k15
* unifdef INET. missed a few headers in previous roundstedu2014-12-261-3/+1
|
* Fewer <netinet/in_systm.h>mpi2014-07-221-3/+1
|
* cut things that relied on mclgeti for rx ring accounting/restriction overdlg2014-07-081-2/+2
| | | | | | | | | | to using if_rxr. cut the reporting systat did over to the rxr ioctl. tested as much as i can on alpha, amd64, and sparc64. mpi@ has run it on macppc. ok mpi@
* replace the workq bits to supply new tx pkt descriptors with a task.dlg2013-10-301-3/+3
| | | | tested locally on a dell poweredge 2950
* Most network drivers include netinet/in_var.h, but apparently theybluhm2013-08-071-2/+1
| | | | | don't have to. Just remove these include lines. Compiled on amd64 i386 sparc64; OK henning@ mikeb@
* - remove ununsed PCI_ANY_ID macrosjasper2013-02-081-3/+1
| | | | ok dlg@
* Under some circumstances (currently only reproducible with IPsec)mikeb2012-12-101-1/+2
| | | | | | bnx can be left w/o clusters on the receive ring and will stall. To prevent that schedule a timeout if refill fails. Bug was reported by jj@, fix tested by me, ok dlg
* Add flow control to bnx(4)phessler2012-07-051-1/+3
| | | | | | | | Tested on 5706, 5708, 5709, 5716 chipsets. From Brad OK phessler@, sthen@, mikeb@,
* Stop doing shutdown hooks in network drivers where possible. We alreadyderaadt2010-09-201-2/+1
| | | | | | | take all interfaces down, via their xxstop routines. Claudio and I have verified that none of the shutdown hooks do much extra beyond what xxstop was already doing; it is largely a pile of junk. ok claudio, some early comments by sthen; also read by matthew, jsg
* remove the powerhook code. All architectures now use the ca_activate treederaadt2010-09-071-2/+1
| | | | | traversal code to suspend/resume ok oga kettenis blambert
* Support fibre PHY on BCM5709S. From FreeBSD via Brad.sthen2010-05-241-1/+2
| | | | | Tested by Brad on: BCM5706, BCM5708C Tested by me on: BCM5716 (BCM5709 PHY)
* bnx(4) is a bit special. The chip itself is capable of swapping endianessclaudio2009-11-231-4/+8
| | | | | | | | so there is no need for htoleXX calls. The only thing needed is the correct layout of the DMA-ed structures. Additionally it uses PAGE_SIZE but assumed that it is always 4k. Fix the macros that failed to respect that so that it works on 8k PAGE_SIZE systems. This makes bnx(4) work on sparc64. Tested on amd64 by dlg@. OK dlg@, deraadt@
* u_int32_t not u_int32_ts in debug code.claudio2009-09-051-2/+2
|
* fix a typo; from bradderaadt2009-07-031-2/+2
|
* this is a rather large change to add support for the BCM5709.dlg2009-07-031-11/+196
| | | | | | | | | | | the 5709s use a the b09 firmwares, which is different to the b06 used by all the other chips supported by bnx. the majority of the diff comes from special handling for some indirect reads and writes, and because it needs more host memory to operate with. ive tried to keep the cosmetic changes to a minimum. "go for it" deraadt@
* newer bnx chips use a separate firmware to the "old" ones. this updatesdlg2009-07-031-72/+77
| | | | | | | | | | | | | | | the b06 firmware for the older chips, and adds the b09 firmware. there are three variants of the rv2p code thats loaded onto the chips, so this has been split out into separate firmware files as well. the driver has been updated to handle the split firmwares, and to easily allow loading of the different versions. this change only supports the loading of the firmwares for the currently supported chips. after this change you must build the new firmwares and install them as well as your new kernel. "go to it" deraadt@
* Rewrite the interface flag handling case code and update the receivenaddy2009-06-201-3/+1
| | | | | filter handling to take advantage of ac_multirangecnt and have correct IFF_ALLMULTI handling. From Brad.
* replace arrays of dmamaps and mbuf pointers used to manage packetsdlg2009-04-221-5/+19
| | | | | | | | | | | | | | on the tx rings (one mbuf ptr/dmamap array entry was created for every tx descriptor slot at attach time) with a dynamically grown list of mbuf pointers and dmamaps. bnx used to have 512 dmamaps/mbuf pointers for the tx ring, now my system is running with 8 under moderate load. the big bonus from this is that the dmamap handling is greatly simplified. reyk@ likes this a lot
* tweak the whitespace in the softc a bit to make it easier to read.dlg2009-04-211-145/+145
|
* Fixed a problem that would cause errors (especially when in low memorybrad2008-06-241-2/+14
| | | | | | | systems) because the RX chain was corrupted when an mbuf was mapped to an unexpected number of buffers. From davidch@FreeBSD
* Remove slack space for RX/TX chains since it only covers sloppy coding.brad2008-06-131-3/+5
| | | | From davidch @ FreeBSD
* - Add a debug message to mention when a 2.5Gb adapter is found.brad2008-05-291-1/+5
| | | | | | | | | | | - Change invalid PHY address debug message in bnx_miibus_write_reg() from warn level to verbose. - Add two new softc fields and store the shared and port hw config data. From FreeBSD ok dlg@
* Add initial bits for fiber support with the BCM5706/BCM5708 chipsets.brad2008-02-281-3/+1
| | | | | | Tested with copper adapters by brad@, johan@ and Jung <moorang at gmail dot com> ok dlg@
* Avoid unaligned PCI config space access.kettenis2008-02-221-2/+2
| | | | ok brad@
* add two new chip revisions.brad2007-09-141-1/+3
| | | | | | From FreeBSD ok dlg@
* remove jumbo frame support by replacing MEXTALLOC with MCLGET, andreyk2007-03-051-2/+3
| | | | | | | | | | 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
* instead of establishing the interrupt in the mounthook, move it backreyk2007-03-031-1/+2
| | | | | | | | | | 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@
* move the interrupt establishment till after everything in the softc isdlg2007-01-201-1/+3
| | | | | | | | | | | 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@
* Due to an incorrect macro, it appears that the driver has always beenbrad2006-11-201-2/+3
| | | | | | | | 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
* Overhaul the transmit path:brad2006-10-191-17/+1
| | | | | | | | | | | - 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
* - Simplify the arguments to bnx_tx_encap.brad2006-10-141-2/+1
| | | | | | | - Don't copy the bd_chain head pointers into temporary objects, they are available globally. From scottl@FreeBSD
* Use loadfirmware(9) to get /etc/firmware/bnx instead of hard-coding aderaadt2006-10-041-63/+62
| | | | gigantic firmware into the kernel; checked by brad
* new structure for the firmware blob; ok bradderaadt2006-10-021-6/+68
|
* export a structure for the firmware file header. Unfortunately this isderaadt2006-09-201-1/+26
| | | | | | | one of the more gross firmwares around (as in, the broadcom supplied header file has 30+ ugly global variables.. which we must copy into a header. Kernel and userland must agree about this header, then the kernel can rip the header apart back into it's driver specific "globals"..)
* enable Jumbo support.brad2006-08-211-5/+1
|
* #if 0 -> #ifdef BNX_JUMBObrad2006-08-201-2/+2
|
* - replace IF_DEQUEUE/IF_PREPEND with IFQ_POLL/IFQ_DEQUEUE.brad2006-08-201-2/+2
| | | | | - enable RX checksum offload. - remove some unused code.
* Get rid of _HI & _LO macros altogether since they used a wrong idiom.marco2006-08-131-9/+1
| | | | | | | | This was pointed out by mickey The driver now uses the same idiom as mpi. help from miod, mickey and kettenis ok brad
* unmap memory address space in bnx_release_resources().brad2006-08-101-1/+2
|
* remove typedef's.brad2006-08-101-316/+308
|
* just use BYTE_ORDER directly instead of setting the drivers endian flags.brad2006-08-101-13/+5
|
* add sys/timeout.hbrad2006-08-091-1/+2
|
* Change #if __LP64__ to #ifdef __LP64__ as requested by bradmarco2006-08-091-2/+2
|
* Reorder dmamap & dmamem to match man page.marco2006-08-091-15/+7
| | | | | Redo detection of _LO & _HI macro; help from miod and jordan. ok beck brad
* Add a rough initial port of the bce driver from FreeBSD, which providesbrad2006-06-261-0/+4875
support for the new line of Broadcom NetXtreme II Gigabit PCI-X and PCIe controllers, though renamed to bnx. This is work in progress, there are some known issues. With help from Reyk with the bus_dma code. Thanks to David Christensen at Broadcom for the driver and for providing some PCI-X and PCIe adapters. ok deraadt@