| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
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@.
|
|
|
|
|
|
|
|
| |
ifconfig done by a user won't alter our negotiated flow control settings.
Both problems were identified by David Imhoff <dimhoff_devel @ xs4all !nl>
Tested by David on 5719, 5720, 5721, Hrvoje Popovski on 5704 B0, sthen@ on
5723/5784, naddy@ and jmatthew@ on 5702/5703, benno@ on 5704 A3 and me on
5715 and 5719.
|
|
|
|
|
|
|
|
|
|
| |
- fixup the Random Backoff Register value masking;
- keep the GPIO settings when modifying the Misc Local Control
register value.
Tested by Rob Sessink on 5719, David Imhoff on 5719, 5720, 5721,
me on 5719 and 5715; ok dlg
|
|
|
|
|
|
|
| |
ring we expect to run out of rx descriptors as a matter of course, its not
an error.
ok mikeb@
|
|
|
|
| |
David Imhoff. No functional change.
|
|
|
|
| |
DCTL flag defines. Now with the right defines, doh!
|
|
|
|
| |
DCTL flag defines. No binary change.
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
might be called from a timeout(9); ok kettenis, dlg, deraadt
|
|
|
|
|
| |
found by david imhoff.
tested by david on a 5719 and by me on a 5720 and 5721
|
|
|
|
|
|
| |
From David Imhoff.
ok dlg@ sthen@
|
|
|
|
|
|
|
|
|
| |
- Do not touch the jumbo replenish threshold register on chips that do not have jumbo support
- Add/sync some of the comments
From FreeBSD
Tested by dlg@ sthen@ naddy@ and OK dlg@ sthen@
|
|
|
|
|
|
|
|
|
|
|
| |
but no functional change.
- Add a workaround for BCM5717 / BCM5718 / BCM5719 A0 and BCM5720 A0 chipsets
to not count the interface input drops counter for input errors due to HW
errata.
From FreeBSD
ok sthen@
|
|
|
|
|
|
|
| |
"APE lock request failed!" errors with HP 331T (5719) and 332T (5720)
cards.
found and fixed by masanobu saitoh
|
|
|
|
| |
ok sthen@
|
|
|
|
|
|
|
| |
within the ifmedia update function. It is supposed to come after the BGE_MAC_MODE
register write.
ok sthen@
|
|
|
|
|
|
| |
more than 4 pci functions.
pointed out by masanobu saitoh
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
reduce the diff between Fx and Ox. OK gcc
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
if (thing == foo || thing == bar || thing == baz) is ugly.
no functional change.
|
|
|
|
|
|
|
| |
probe every address and have bge_miibus_read fail at the wrong address.
needed to support recent chips which have phys in locations other than
phy address 1 (and removes a conditional in an io path).
|
|
|
|
|
|
|
| |
Only the BCM5700-BCM5704 adapters had TBI interfaces for fibre
and anyting newer uses the MII interface.
From Brad.
|
|
|
|
|
|
|
| |
as they're FastE chipsets. So ifconfig media doesn't list
GigE for FastE-only capable PHY.
From Brad.
|
|
|
|
| |
to the public; from broadcom/linux via brad
|
|
|
|
|
|
| |
actual id.
ok kettenis@
|
| |
|
|
|
|
| |
ok claudio krw
|
|
|
|
|
| |
detaching from the bus on some of the machines.
tested by many, ok miod@
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
| |
DVACT_SUSPEND, therefore DVACT_QUIECE can do standard sleeping operations
to get ready.
Discussed quite a while back with kettenis and jakemsr, oga suddenly needed
it as well and wrote half of it, so it was time to finish it.
proofread by miod.
|
| |
|
|
|
|
|
|
| |
Instead of fixing it, make it call the activate function which does
the full job
ok kettenis
|
|
|
|
|
|
|
| |
Bogus chunks pointed out by matthew@ and miod@. No cookies for
marco@ and jasper@.
ok deraadt@ miod@ matthew@ jasper@ macro@
|
|
|
|
|
|
| |
is perfectly capable to get things going again all by itself.
ok deraadt@
|
| |
|
|
|
|
| |
ok deraadt@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- 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.
|
|
|
|
|
| |
that could be PCI-X. This bit is not valid for PCIe controllers.
From Brad
|
|
|
|
|
|
|
|
| |
set IFF_OACTIVE and try again later. Previously bge(4) reserved 16 send
BDs after loading DMA maps but the hardware only requires one reserved
send BD.
From FreeBSD, via Brad
|
|
|
|
|
|
|
|
|
| |
loop iteration as it can be updated by the card while we process
the RX ring, forcing us to process RX descriptors for which DMA
synchronisation has not been performed. This fixes a bug where
bge(4) will drop packets packets under heavy load.
Adapted from FreeBSD by Brad.
|
|
|
|
| |
BCM577xx chipsets. From Brad.
|
|
|
|
|
|
|
|
| |
- add BCM5724 chipset
from Linux driver via Brad.
- sort by device-id
|