| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
dlg@, deraadt@, mpi@
|
|
|
|
| |
ok deraadt@
|
|
|
|
|
|
|
| |
program it as such and not as a 64KB window; fortunately none of the current
users of these macros would cross a 32KB boundary.
ok dlg@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
To make rxeof safe, use a separate ring refill timeout for each ring.
We activate the refill timeout for a ring when it's too empty to receive
packets, which ensures we won't attempt to refill it from interrupt context.
To make txeof safe, remove the list of dma maps and just allocate maps based on
the ring slots occupied by the packet, and use atomic operations to adjust
bge_txcnt. Rework some parts of the txeof and start loops so that we only
adjust bge_txcnt after exiting the loop, and only take actions such as setting
or clearing OACTIVE based on the final value.
tested on 5703, 5714, 5721 by me, 5753 by semarie@, 5761 by naddy@, and
also in snapshots for a while
ok mpi@, dlg@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
chipsets.
ok mikeb@ "i think it should go in" dlg@
|
| |
|
|
|
|
|
|
|
|
|
|
| |
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@
|
|
|
|
|
|
|
| |
- Have the BGE_RXLP_LOCSTAT_IFIN_DROPS workaround cover for the BCM5762 ASIC.
From Linux
ok naddy@
|
|
|
|
| |
ok naddy@
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
chipsets
- Add support for the new BCM5762 ASIC (BCM5725 / BCM5727 / BCM57767)
- Add all of the newer PCI ids
Tested with BCM5719 / BCM5720 and BCM57765 / BCM57766 and a bunch of older
chipsets.
ok naddy@
|
|
|
|
| |
ok mikeb@
|
|
|
|
|
|
|
|
| |
exception being the BCM5714 family for now.
Tested on a variety of newer chipsets.
ok sthen@
|
|
|
|
|
|
|
|
|
|
|
|
| |
properly updated by the newer hardware (seen in the TX completion case).
This leads to very poor transmit performance in the beginning of a TCP
connection. Linux and FreeBSD don't rely on BGE_STATFLAG_UPDATED bit
since they enable MSI and tagged status for 5717+. Doing the same does
indeed fix an issue.
Change was tested by David Imhoff on 5719, 5720 and 5721/5750, Hrvoje
Popovski on 5704 B0, sthen@ on 5723/5784, benno@ on 5704 A3, and
me on 5719, 5720 adn 5714/5715. No objections from kettenis@ and dlg@.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
maximum payload size handling from FreeBSD. Fixes RX path on 5719
found in newer machines such as HP DL3[68]0 G8 and Dell R320.
Tested by dlg@ on 5714, 5719 (Sun V445) and 5720, 5721 (Dell R420);
David Imhoff on 5719, 5720, 5721 (various Dell servers);
Rob Sessnik on 5719 (HP DL360p G8); mikeb@ on 5719 (HP DL380p G8).
ok dlg
|
|
|
|
|
|
|
|
|
| |
Figured out by David Imhoff, checked against FreeBSD, Linux and official
documentation. Fixes up link negotiation on BCM5719.
Original diff by David, tweaked by me; tested on BCM5702X and BCM5761 by
naddy@; BCM5714, BCM5719, BCM5720 and BCM5721 by dlg@, BCM5721 and
BCM5719 by David and BCM5719 by me. ok dlg
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
the problems i had on the xserve g5 are mostly likely specific to
that machine and im inclined to agree. we're going to see a lot
more machines with the new chips than people with xserve g5s.
this also includes fixes for ip checksum handling compared to the
code i put in before.
tested by various people again.
sthen@ and claudio@ have agreed to babysit this. they can back it
out if im not around.
ok deraadt@
|
|
|
|
|
|
|
|
| |
- Add some macros for working with the various newer generations of chipsets
- Make use of the 5717 macro in a few places
- Add some bits for identifying and supporting some of the newer chipsets
ok sthen@
|
|
|
|
|
|
| |
and i cant fix it without breaking a 5721 in another box.
sthen@ agrees it is sad.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
5719 and 5720 chips that have popped up in a lot of new machines.
this diff is largely a merge of the freebsd code. thanks to srebrenko
sehic for providing me hardware to do the work on. also, a huge
thanks to claudio for trawling through the diff to fix merge issues,
understand the changes, and actually make it work.
tested by sthen@ naddy@ jmatthew@ claudio@ jj@ and me
tested chips include:
bge0 at pci2 dev 3 function 0 "Broadcom BCM5704C" rev 0x10, BCM5704 B0 (0x2100): apic 2 int 8, address 00:30:48:59:52:44
brgphy0 at bge0 phy 1: BCM5704 10/100/1000baseT PHY, rev. 0
bge0 at pci3 dev 0 function 0 "Broadcom BCM5723" rev 0x10, BCM5784 A1 (0x5784100): apic 2 int 18, address e4:11:5b:12:bd:d6
brgphy0 at bge0 phy 1: BCM5784 10/100/1000baseT PHY, rev. 4
bge0 at pci3 dev 4 function 0 "Broadcom BCM5714" rev 0xa3, BCM5715 A3 (0x9003): ivec 0x795, address 00:14:4f:a9:34:90
brgphy0 at bge0 phy 1: BCM5714 10/100/1000baseT/SX PHY, rev. 0
bge0 at pci2 dev 0 function 0 "Broadcom BCM5761" rev 0x10, BCM5761 A1 (0x5761100): apic 2 int 18, address 00:10:18:4b:23:b4
brgphy0 at bge0 phy 1: BCM5761 10/100/1000baseT PHY, rev. 0
bge0 at pci0 dev 5 function 0 "Broadcom BCM5702X" rev 0x02, BCM5702/5703 A2 (0x1002): eb164 irq 2, address 00:10:18:00:98:e9
brgphy0 at bge0 phy 1: BCM5703 10/100/1000baseT PHY, rev. 2
bge0 at pci2 dev 2 function 0 "Broadcom BCM5703" rev 0x00, BCM5702/5703 A2 (0x1002): ivec 0x7dc, address 00:14:4f:16:a0:23
and of course:
bge1 at pci5 dev 0 function 0 "Broadcom BCM5720" rev 0x00, BCM5720 A0 (0x5720000), APE firmware NCSI 1.0.85.0: apic 0 int 16, address d4:ae:52:a7:05:38
brgphy1 at bge1 phy 1: BCM5720C 10/100/1000baseT PHY, rev. 0
bge2 at pci5 dev 0 function 1 "Broadcom BCM5720" rev 0x00, BCM5720 A0 (0x5720000), APE firmware NCSI 1.0.85.0: apic 0 int 17, address d4:ae:52:a7:05:39
brgphy2 at bge2 phy 2: BCM5720C 10/100/1000baseT PHY, rev. 0
either sthen@ or i will be around to handle any issues after this commit.
|
| |
|
| |
|
|
|
|
| |
No binary change.
|
|
|
|
|
|
|
| |
phys as 1, 2, 8, or 9 depending on which pci function its on and whether
its serdes.
this tells every other bge that the phy is still at 1, so they still work.
|
|
|
|
|
| |
just extra cruft, it doesnt change anything that already exists so it cant
(and empirically doesnt) change existing chip support.
|
|
|
|
|
|
|
|
|
|
|
| |
auto-negotiation results in half-duplex operation, excess collision
on the ethernet link may cause internal chip delays that may result
in subsequent valid frames being dropped due to insufficient
receive buffer resources. The workaround is to choose de-pipeline
method as a flow control decision for SDI. De-pipeline method
allows only 1 data in TxMbuf at a time such that a request to RDMA
from SDI is made only when TxMbuf is empty.
From FreeBSD; ok miod@; ok kettenis@
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Disable initiation of multiple DMA reads for BCM5717 chipset
to workaround errata.
- Performance tweak for BCM5785 chipset.
- Correct the return ring count used for BCM5717 / BCM57765 chipsets.
- Fix fiber media detection for BCM5717 chipsets as they use a MII-based
fiber PHY.
From Brad, based on info gleaned from the Linux tg3 driver.
Should only affect the new chipsets, but tested for regressions
anyway (on BCM5701, BCM5703, BCM5704C, BCM5705M Alt, BCM5722, BCM5751,
BCM5751M, BCM5780) by Brad, weerd@, myself and Denis Doroshenko.
|
|
|
|
| |
BCM577xx chipsets. From Brad.
|
|
|
|
| |
Based on info gleaned from the Linux tg3 driver. From Brad, ok naddy@
|
|
|
|
| |
But also use the flag where it makes sense. From Brad; ok sthen@
|
| |
|
|
|
|
|
|
|
| |
info from the firmware. Some of it will be required for
further work on both older and newer chipsets.
Gleaned from the Linux tg3 driver. From Brad.
|
|
|
|
| |
set at attach; from Brad
|
|
|
|
| |
gleaned from the Linux tg3 driver; from Brad
|
| |
|
|
|
|
|
| |
from Brad; testing by phessler, naddy, myself and others on a range
of older and newer devices. ok dlg@.
|
|
|
|
|
|
| |
allocate mbufs for it. Another jumbo allocator bites the dust!
ok dlg@
|
|
|
|
|
|
| |
try again later.
tested by many
|
|
|
|
|
|
| |
tested by many including henning@ sthen@ naddy@ krw@ robert@ jmc@ jsg@
weerd@ and ingo schwarze on a variety of machines include i386, amd64,
alpha, and sparc64.
|
|
|
|
|
|
|
| |
amount of memory and interrupt time each bge uses) without discussing
it with other people. lots of people are complaining about the lack
of communication in your process, and you are going to have to change
that.
|
| |
|
|
|
|
|
|
|
|
| |
chipsets.
From the Linux tg3 driver via FreeBSD.
Tested by Jordi Creix <jbcreix dot mail at gmail dot com>
|
|
|
|
|
|
| |
slightly different from the other chipsets using the BCM5705 ASIC.
ok jsg@
|
|
|
|
|
|
|
|
| |
mode (4KB) for PCIe chips. This resolves the poor TX performance for
the PCIe chips. The result being a bit under double the TX performance
on a Gig connection (roughly 495 Mb/s -> 940 Mb/s).
Tested by reyk@, sthen@, brad@ and a few end users.
|
|
|
|
|
|
|
|
| |
revisions.
From Linux via FreeBSD.
ok dlg@
|
|
|
|
|
|
|
|
|
|
| |
comments.
Tested by a number of users with a variety of chipsets.
From FreeBSD
ok kettenis@
|