| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
| |
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@
|
| |
|
|
|
|
|
|
| |
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>...
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
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@
|
|
|
|
| |
tested locally on a dell poweredge 2950
|
|
|
|
|
| |
don't have to. Just remove these include lines.
Compiled on amd64 i386 sparc64; OK henning@ mikeb@
|
|
|
|
| |
ok dlg@
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
| |
Tested on 5706, 5708, 5709, 5716 chipsets.
From Brad
OK phessler@, sthen@, mikeb@,
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
| |
traversal code to suspend/resume
ok oga kettenis blambert
|
|
|
|
|
| |
Tested by Brad on: BCM5706, BCM5708C
Tested by me on: BCM5716 (BCM5709 PHY)
|
|
|
|
|
|
|
|
| |
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@
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
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@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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@
|
|
|
|
|
| |
filter handling to take advantage of ac_multirangecnt and have correct
IFF_ALLMULTI handling. From Brad.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
| |
systems) because the RX chain was corrupted when an mbuf was mapped to
an unexpected number of buffers.
From davidch@FreeBSD
|
|
|
|
| |
From davidch @ FreeBSD
|
|
|
|
|
|
|
|
|
|
|
| |
- 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@
|
|
|
|
|
|
| |
Tested with copper adapters by brad@, johan@ and Jung <moorang at gmail dot com>
ok dlg@
|
|
|
|
| |
ok brad@
|
|
|
|
|
|
| |
From FreeBSD
ok dlg@
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
| |
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@
|
|
|
|
|
|
|
|
|
|
|
| |
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@
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
| |
- 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
|
|
|
|
|
|
|
| |
- Don't copy the bd_chain head pointers into temporary objects, they are
available globally.
From scottl@FreeBSD
|
|
|
|
| |
gigantic firmware into the kernel; checked by brad
|
| |
|
|
|
|
|
|
|
| |
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 RX checksum offload.
- remove some unused code.
|
|
|
|
|
|
|
|
| |
This was pointed out by mickey The driver now uses the same idiom as mpi.
help from miod, mickey and kettenis
ok brad
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Redo detection of _LO & _HI macro; help from miod and jordan.
ok beck brad
|
|
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@
|