Commit Graph

101 Commits

Author SHA1 Message Date
christos
53524e44ef Kill caddr_t; there will be some MI fallout, but it will be fixed shortly. 2007-03-04 05:59:00 +00:00
christos
168cd830d2 __unused removal on arguments; approved by core. 2006-11-16 01:32:37 +00:00
christos
4d595fd7b1 - sprinkle __unused on function decls.
- fix a couple of unused bugs
- no more -Wno-unused for i386
2006-10-12 01:30:41 +00:00
jmcneill
f135e0d607 Add "name" parameter to powerhook_establish, to aid debugging. No objections
on tech-kern@
2006-09-24 03:53:07 +00:00
thorpej
3ddf26777f Use device_is_active() rather than testing dv_flags for DVF_ACTIVE
directly.
2006-02-20 16:50:36 +00:00
perry
93124077ae Remove leading __ from __(const|inline|signed|volatile) -- it is obsolete. 2005-12-24 20:27:29 +00:00
christos
95e1ffb156 merge ktrace-lwp. 2005-12-11 12:16:03 +00:00
jdolecek
91669fdaa7 use VLAN_OUTPUT_TAG() 2005-10-15 19:32:36 +00:00
abs
90eafdf511 Make receiver lock-up workaround conditional on setting link1, as we have
too many false positives - should address PR/30505
2005-10-12 19:26:10 +00:00
junyoung
b0c452fd1f Make microcode loading work on big endian machines.
Reported and patch supplied by yongari@freebsd a long time ago.
2005-08-12 01:07:16 +00:00
christos
80f7d2107b - sprinkle const.
- avoid variable shadowing.
2005-05-29 22:10:28 +00:00
yamt
330cc0a11e split IFCAP_CSUM_xxx to IFCAP_CSUM_xxx_Rx and IFCAP_CSUM_xxx_Tx. 2005-05-02 15:34:31 +00:00
thorpej
cc4d390c49 Use log() instead of printf(). 2004-11-23 21:41:57 +00:00
thorpej
e9818f5b5e When adding/deleting multicast addresses, only whack the address
filter if the interface is marked RUNNING.

Fixes kern/27678.
2004-10-30 18:08:34 +00:00
simonb
74b1235f26 Fix a typo in a comment. 2004-09-20 07:32:02 +00:00
thorpej
56906b900a Patch from HITOSHI Osada:
* Add PAUSE-related event counters.
* Return flow control bits in fxp_mii_mediastatus().
2004-05-16 02:59:04 +00:00
thorpej
7e156484d4 Patch from HITOSHI Osada:
* Newer chips do not need the receiver lock-up workaround; detect when it
  is required.
2004-05-16 02:41:46 +00:00
briggs
8f451cfae0 When we are recovering from a resource exhaustion on receive, make sure
that the RU is stopped before issuing an RU_START.
Fix suggested by Takahiro Kambe in PR kern/10622.
2004-04-28 15:25:45 +00:00
briggs
3d68e2f46f Back out revision 1.82. It seems to cause a number of device timeouts
on x86 boxes.  There must be a better way to deal with this that works
well for everyone.  In the meantime, back out to the version that works
for more people.
2004-04-28 03:37:58 +00:00
briggs
1c0ca89048 Be more careful about issuing CU_RESUME in fxp_start()--only doing
it if we think it's probably necessary.  Then do it again in the
tx interrupt handler, if we again think it's necessary.  This
reduces the number of commands we issue the chip.  Prior to this
change, the i82550 (running without extended feature set, so like
a '559) would sometimes fail in fxp_scb_wait() prior to issuing
another CU_RESUME, resulting in
	fxp0: WARNING: SCB timed out!
messages on the console, often followed by device timeouts.
2004-03-31 14:48:31 +00:00
yamt
635ee237b0 support h/w assisted vlan tag insertion. 2004-02-19 14:21:40 +00:00
yamt
9324f158e1 support h/w assisted vlan tag removal. 2004-02-19 13:34:51 +00:00
hpeyerl
e3c5164736 On some 'fast' i386 motherboards, the timing between consecutive reads
and writes of the EEPROM are too fast so invalid data is returned. So we
increase the DELAY()s.  The right thing would be to check a ready bit
on the E^2 if such a thing exists.  (checked by potr)
2004-02-09 22:29:26 +00:00
yamt
3b65e1745b - disable ipv4 checksum offloading as it seems to have a problem.
- add comments to describe it.
2003-12-06 11:27:28 +00:00
wiz
c5670263e0 Fix some typos. From Tom Cosgrove via jmc@openbsd. 2003-11-02 11:07:44 +00:00
scw
5aa077f5cf In fxp_intr(), bail early without touching any registers if sc_enabled is
zero, otherwise we could cause PCI master aborts if the card is in D3 power
state and we happen to share a PCI interrupt line with some other device.
2003-08-01 14:54:12 +00:00
yamt
b1286467f1 ip/tcp/udp checksum offloading support for i82550.
largely from FreeBSD.
2003-05-26 16:14:49 +00:00
yamt
b57a775a7d check and MCLAIM correct mbuf in fxp_copy_small path. 2003-05-25 15:10:23 +00:00
matt
65e5548a17 Add MBUFTRACE kernel option.
Do a little mbuf rework while here.  Change all uses of MGET*(*, M_WAIT, *)
to m_get*(M_WAIT, *).  These are not performance critical and making them
call m_get saves considerable space.  Add m_clget analogue of MCLGET and
make corresponding change for M_WAIT uses.
Modify netinet, gem, fxp, tulip, nfs to support MBUFTRACE.
Begin to change netstat to use sysctl.
2003-02-26 06:31:08 +00:00
thorpej
b7f3c62431 Use bus_dmamap_load_mbuf() in fxp_add_rfabuf(). 2003-02-04 17:50:53 +00:00
thorpej
749715f6ee Use aprint_*(). 2003-01-31 00:26:25 +00:00
wiz
c6f1277bfa synchronous, not syncronous. 2003-01-06 13:10:25 +00:00
enami
eb0cfdb469 Cosmetic changes. 2002-11-15 03:30:26 +00:00
thorpej
8b0970afaf Fix signed/unsigned comparison warnings. 2002-11-07 07:46:39 +00:00
fair
96b8b890ed Change the "dontcare bits" argument to ifmedia_init() to IFM_IMASK
so that it is possible select PHY instances other than the first
one (instance zero), if there is more than one PHY attached.
2002-10-22 00:01:55 +00:00
he
33afd46155 Add newlines to the WARNING messages printed for the dynamic standby bug. 2002-06-06 17:20:50 +00:00
mycroft
44024682c7 The FIX_RESUME_BUG hack does not work, so remove it.
Also, attempt to clarify the message slightly when updating the EEPROM.
2002-05-20 15:23:01 +00:00
thorpej
60e2bbd09a Add support for the "CPUSaver" receive interrupt mitigating microcode
on the following PRO/100 chips:

	* i82558 step A4
	* i82558 step B0
	* i82559 step A0
	* i82559S step A
	* i82550
	* i82550 step C

The interrupt delay is configurable on all microcodable chips.  The
maximum "bundle" size (packet count) is configurable on all but the
i82558.

The microcode is enabled by setting IFF_LINK0 on the interface.

Derived from code in FreeBSD.
2002-04-05 19:51:04 +00:00
thorpej
769ca97e2b Address Intel 82801BA/82801BAM Specification Update, Errata #30:
The ICH on-board Ethernet and some i82559 chips have a bug which
will cause a PCI protocol violation if the chip receives a CU_RESUME
command as it is entering the IDLE state by deasserting #CLKRUN.
(This is the so-called "resume bug" that we previously had an incomplete
work-around for on ICH chipsets.)

The work-around is to disable Dynamic Standby Mode, such that the
chip will never deasert #CLKRUN.  Dynamic Standby Mode is disabled
by clearing a bit in the EEPROM and updating the EEPROM (and EEPROM
checksum).

Unfortunately, the chip will only consult the EEPROM setting after
a PCI bus reset, so a system reboot is required once the EEPROM
has been updated (the EEPROM update only needs to happen once,
and the driver usses a warning instructing the user to reboot the
system once the work-around has been applied).

Issue pointed out by David Brownlee, and code more-or-less lifted
from FreeBSD.
2002-04-04 23:15:43 +00:00
thorpej
4a9f5c0fc7 Move the code which shifts bits into the EEPROM into its own function. 2002-04-04 21:11:16 +00:00
lukem
a4bae8b066 add/cleanup RCSID 2001-11-13 13:14:31 +00:00
wiz
456dff6cb8 Spell 'occurred' with two 'r's. 2001-09-16 16:34:23 +00:00
enami
4977f2fb2d Advertize pause capability (802.3x flow control) to peer. 2001-08-06 09:51:40 +00:00
thorpej
623f83a793 Use BUS_DMA_READ and BUS_DMA_WRITE in some obvious places. 2001-07-19 16:25:23 +00:00
thorpej
0884f20bf7 bzero -> memset 2001-07-07 16:13:44 +00:00
thorpej
06ff822b44 bcopy -> strcpy 2001-07-07 15:57:50 +00:00
thorpej
4c49d6fa2a Split the Tx and Rx interrupt routines into separate functions,
and add some (optional) event counters.
2001-06-15 22:16:00 +00:00
thorpej
9988acd41e Don't need INET or NS includes here. 2001-06-12 22:28:15 +00:00
thorpej
2da55b9a39 Define some extra configuration block bits used on the i82550 (a.k.a.
PRO 100/S), including the extended RFA format.  Don't hard-code the
RFA size to allow us to use the extended format in the future.
2001-06-02 01:04:01 +00:00
thorpej
188e0d6625 Some changes from the new FreeBSD `fxp' driver:
- Add some additional config block bits for the i82558/i82559.
- Change the config block template to only fill in the must-be-one
  reserved bits, leave fxp_init() to fill in all the important things.
- On the i82558/i82559, we can use "Receive Long Frames" rather than
  "Save Bad Frames" to support the VLAN MTU.
- Use 802.3x flow control on the i82558/i82559.  This is all handled
  transparently by the hardware.  When in promiscuous mode, allow
  wire-watchers to see the flow control frames.
- Use the Extended TxCB format on the i82558/i82559.  This places two
  Transmit Buffer Descriptors directly in the TxCB, which should cover
  the vast majority of packets transmitted.  This saves PCI transactions
  that would otherwise be required to fetch the TBD list.

With the tansmit queue length changes from yesterday, this gets us up to
11.5MB/s TCP transmit speed, out of an absolute maximum of 12MB/s possible
on a 100Mb/s link.
2001-05-22 15:29:30 +00:00