Age | Commit message (Collapse) | Author |
|
- recognize BCM5704 B0
- recognize BCM5780 which is supposedly part of the BCM5714 family
according to the Linux driver but there is a BCM5714 core too. huh?
ok deraadt@
|
|
Noticed by niklas@ on some newer hardware
ok deraadt@
|
|
pcisubmatch(); kettenis@ testing; brad@ ok
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ok krw@
|
|
5750 revisions.
Info from the Broadcom Linux driver
|
|
|
|
|
|
* Add workaround for revision Bx bcm5700: chip bugs in decoding
of PCI register writes may leave the hardware in (partial) powersave state,
such that writes to "indirect" registers do not work.
Explicitly force chip into D0 state at attach time.
From NetBSD
|
|
and
rev 1.25
* bcm5700 chips rev Bx wedge up if given DMA descriptors of
eight bytes or less. Once hit, only reovery is a watchdog timeout/reset.
If the offending packet is retransmitted, the chip will wedge again...
Check for teeny fragments in a Tx request, and either fold the
teeny chunk residue into an adjacent mbuf, or m_dup the entire buffer.
From NetBSD
Tested on alpha/amd64/macppc by krw@ and ok krw@
|
|
|
|
- remove unused FreeBSD specific code
|
|
- recognize BCM5750 B1
|
|
ok brad henning jason
|
|
add support for the BCM5714.
|
|
|
|
From FreeBSD
|
|
some IBM/Intel blade servers.
From FreeBSD
|
|
ok krw@ canacar@
|
|
driver does. ok deraadt@, testing and ok krw@, markus@
|
|
Noticed/tested by aaron@
|
|
from FreeBSD.
ok brad@.
|
|
recognized.
|
|
machines (macppc) but not others (sparc64). No-op for little-endian
architectures.
Diff from NetBSD with tweaks by drahn@.
ok brad@
|
|
crash on sparc64. From FreeBSD.
|
|
|
|
pointed out by Theo 2003/12/13.
ok brad@.
|
|
ok brad@.
|
|
|
|
|
|
ok krw@
|
|
Possibloe fix for some bge chip revisions taking a long time to reset
(e.g., polling for a half-second or more at splnet(), blocking most
interrupts, durin an ifconfig down/ifconfig up).
Appears to help for a 5704C rev A3, which is the only chip I've
ever seen that had even a mild version of the reported problem.
rev 1.61
Check for BGE_PCI_PCISTATE register failing to revert on reset.
if it occurs, print a message indicating why the reset took so long.
From NetBSD
|
|
* Set buffer management high water marks for MTU > 1514.
* Set BGE_MAX_RX_FRAME_LOWAT (from Linux driver).
rev 1.25
* Update onchip buffer tunables to recommended values from Linux drivers.
* Increase Tx interrupt-coalescing thresholds, to reduce Tx-done interrupts.
From NetBSD
ok krw@
|
|
Based on NetBSD driver
ok krw@
|
|
except printing the ASIC model and rev in dmesg. will be used
instead of checking ASIC revs all over the place.
From NetBSD
|
|
When stopping the various functional blocks of the chip, clear the
bit and then read it back in a loop (with appropriate delays) waiting
for it to read back clear.
This fixes a problem where the bus would hang when bringing down
the interface or changing interface flags on a system with a
sufficiently fast CPU (e.g. 2GHz P4 Xeon).
From NetBSD
ok krw@
|
|
Put some delay in the loops that poll for MII transaction
completion. Without this, reading the PHY can hang the bus
on a sufficiently fast CPU.
From NetBSD
|
|
2) Create tx_map's large enough to map jumbo buffers.
3) Set length of jumbo frame to BGE_JLEN rather than ETHER_MAX_DIX_LEN.
4) Activate jumbo rx ring when MTU changed. (From FreeBSD).
Makes jumbo frames work on bge.
ok brad@.
|
|
|
|
|
|
From FreeBSD
ok deraadt@
|
|
Add some special case code to fix a problem with the BCM5704 in TBI (fiber)
mode. The 5704 apparently has some s00p3r s33kr1t registers for setting
the advertisement of pause frame ability (i.e flow control) when in
autoneg mode. If we don't set these registers correctly, we may not
be able to negotiate a proper link with some switches. (Symptom is that
the NIC reports the link as up (PCS synched) but no traffic can be
exchanged.)
rev 1.73
Commit patch to supress spurious link change events. Apparently, with
copper NICs, a link change event is posted whenever MII autopolling is
toggled off and on, which happens whenever someone calls
bge_miibus_readreg() or bge_miibus_writereg() to access the PHY
registers. This means anytime someone called the SIOCGIFMEDIA ioctl
on a bge interface, the link would reset. Even a simple "ifconfig bge0"
would do it, though other apps like dhclient or the PPPoE daemon could
trigger it as well. An obvious symptom of this problem is lots of
"bgeX: gigabit link up" messages appearing on the console for no
apparent reason.
Through experimentation, I determined that when a real link change
event occurs, the BGE_MIMODE_AUTOPOLL in the BGE_MI_MODE register
is always set, so now if we have a copper NIC and an link change
event occurs and the BGE_MIMODE_AUTOPOLL bit is clear, we ignore
the event.
Note that this does not apply to the original BCM5700 chip since we
use a different method for sensing link changes with that chip (the
status block method was broken), nor to fiber optic NICs since they
don't use the GMII PHY access registers.
From FreeBSD
ok deraadt@
|
|
Add support for BCM5705K
rev 1.74
Add support for the BCM5750/5751. Unfortunately the documentation
I have from Broadcom does not give much information on these devices,
so the Broadcom Linux driver was used for clues to what these chips
support. It turns out they are similar to the 5705 with the 5751
being the PCI-Express version and needing special work-arounds and
settings.
From FreeBSD
|
|
|
|
{ether,atm,fddi}_ifattach already does this.
ok mcbride@ markus@ henning@
|