Commit Graph

10339 Commits

Author SHA1 Message Date
mjacob c9de53f96e Create a kernel thread for Fibre Channel cards. This is the new
way of doing business- modulo some startup spasms and peculiarities
of the way kthreads are started (*after* configuration, weird) and
some strangeness with the freeze/thaw code, what now happens is
that any of Loop Down, LIP, Loop Reset or Port Datbase or Name
Server Database Changed ASYNC events cause the queues to freeze
for this channel.  The arrival of a Loop UP is not relevant.

What *is* relevant is that the Port Datbase or Name Server Changed
async event indicate that it's okay to go and (re)evaluate the
state of the FC link and (re)probe local loop and fabric membership.
We have a kthread do this because it's *sooooo* much nicer to be
able to sleep while doing the 130-250 mailbox commands it'll take
to re-evaluate things.

When the state is well known again, we can unfreeze the channel
queues.  Then, as commands start arriving, we simply can start them
or bounce them with XS_SELTIMEOUT (if the device in question has
gone away).  Previously, we did lazy evaluation, which meant that
if a change occurred, we would wait until the very *next* command
to go rebuild stuff.

The reason this is not sensible is:

 a) Even with sleeping, you can hang up your system because you might be
 making some poor stat(2) call pay the price of re-evaluating the whole
 fabric.

 b) If we ever really want to get to dynamic attachment/detachment, we
 should find out sooner, rather than later, where things get to.

Split off ispminphys_1020 from ispminphys- a 1020 has a 24 bit limit-
not anything newer.

Re-enable LIPs and Loop Resets as async events- this allows the outer
layer to set policy about them.

Roll platform major && minor. Remove bogus waitq (no longer used).
Remove callout entry in softc (no longer used). Define some shorthands
for channels. Clean up a variety of cruft left over from the
thorpej_scsipi changeover.
2001-05-25 21:45:55 +00:00
tshiozak 5b51f5ebe2 fix forgotten/malformed initialization of some variables.
(pointed out by Krister Walfridsson.)
2001-05-25 19:33:36 +00:00
hannken 339a9c8de2 Fix two typos in the BYTE_ORDER != LITTLE_ENDIAN case. 2001-05-25 08:54:40 +00:00
itojun 6229248ec0 minor style 2001-05-24 08:12:28 +00:00
itojun 85efd7edb1 correct multicast filter handling. without this, we cannot run IPv6 on an*. 2001-05-24 08:06:04 +00:00
petrov 9d59ae231c adjust fas register fields names 2001-05-23 18:32:26 +00:00
bouyer a98b728b88 Call scsipi_channel_thaw() after scsipi_done() so that command ordering
is preserved.
2001-05-23 15:51:32 +00:00
bouyer 72b4ba8aed In scsipi_channel_thaw(), if the count drops to 0, call scsipi_run_queue(). 2001-05-23 15:50:32 +00:00
chs fae4d6d720 fix typo in previous revision so that the scsi code compiles again. 2001-05-23 02:16:19 +00:00
fvdl 24b32e8f08 Add missing definitions for hw checksumming. 2001-05-23 00:56:58 +00:00
mjacob d298a26243 Add back in (again) ISPASYNC_LIP and ISPASYNC_LOOP_RESET async
notifications. Let each platform set policy as to what to do
with these.
2001-05-22 19:32:41 +00:00
mjacob b9eb902304 Make SDRETRIES an option you can dig out of opt_scsi.h.
Add SD_IO_TIMEOUT (an option in opt_scsi.h) also, which defaults to the
normal 60 * 1000 timeout for normal read/write commamds. This allows you
to shorten or lengthen the timeout as needed.
2001-05-22 18:59:57 +00:00
mjacob 38f6ada8b6 Add SDRETRIES and SD_IO_TIMEOUT option for sd. 2001-05-22 18:58:15 +00:00
thorpej 607b14bf7b Add mii_bitbang attribute to gsip, pointed out by Andrew Gillham. 2001-05-22 16:58:23 +00:00
thorpej a888f6ef73 If the cache line size in the BHLC register is not configured,
then clear the MRL/MRM/MWI command-ok flags when attaching a
device.
2001-05-22 16:10:44 +00:00
soren 79859fb138 Regen. 2001-05-22 16:07:56 +00:00
thorpej 6e2bc5b352 Enable the PCI MWI command for memory writes on the i82558 and
higher.
2001-05-22 16:05:01 +00:00
soren b16ba1d8cd Add i82562ET id. 2001-05-22 16:04:27 +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
bouyer 2a604875d6 Remove one extra byte from scsipi_mode_select; pointed out by Juergen
Hannken-Illjes.
2001-05-22 15:14:24 +00:00
augustss e25bf167a1 Regen. 2001-05-22 10:43:15 +00:00
augustss f43e2c6ba1 Add Scanjet 4300. 2001-05-22 10:38:56 +00:00
thorpej a5a03e13dd Report 82558, 82559, etc. based on chip revision. Also, remember which
revsion we have for feature enables later.
2001-05-22 01:23:25 +00:00
jhawk 4af61a686a oops. Make it compile. 2001-05-22 00:43:12 +00:00
jhawk b5805fa0c8 Sigh. Regen correctly. 2001-05-22 00:41:52 +00:00
thorpej 611e112566 A little slight cleanup. 2001-05-22 00:27:01 +00:00
jhawk 7a31dfa328 Supoprt the IOGEAR/ATEN UC-232A, which uses the Prolific 2303.
Make this the "PRODUCT_PL2303" because it's actually id 0x2303
and change the old PRODUCT_PL2303 to PRODUCT_RSAQ.
2001-05-22 00:18:03 +00:00
thorpej fb4607ec45 Add some additional register definitions, from FreeBSD. 2001-05-22 00:07:32 +00:00
thorpej 0064d69faf Re-arrange the transmit control data somewhat so that we can
use the extended TxCB format (that change will happen later).
2001-05-21 23:58:44 +00:00
minoura 92d92b1cb2 Correct an easy mistake in initializing gain registers.
This will fix the L-R imbalance.
Suggested by Ryo HAYASAKA <ryoh@jaist.ac.jp>.
2001-05-21 23:55:04 +00:00
thorpej 65ac078927 Sigh, typo in last. 2001-05-21 23:21:27 +00:00
thorpej 00f922fa70 Change NTXSEGS from 16 to 8, and the TXQUEUE len from 128 to 256. Also
increase the number of Rx buffers from 64 to 128.

These mirror some performance tweaks made to the sip(4) driver.
2001-05-21 22:20:31 +00:00
thorpej afdab0cab8 The ICH3 also has the Resume Bug. 2001-05-21 22:12:08 +00:00
thorpej a0f9e3c6fb Regen; add ICH3 network controller IDs. 2001-05-21 22:11:31 +00:00
thorpej 6b51adfbff Add ICH3 network controller IDs. 2001-05-21 22:11:06 +00:00
thorpej d84e2452ea Fix non-fatal typo -- CB_NOP -> CU_NOP in the ICH work-around (they
have the same value).
2001-05-21 21:49:51 +00:00
thorpej b4538a0165 The 82801BA built-in Ethernet has a bug which requires us to
issue a NOP before a CU_RESUME when in 10baseT mode.  Handle
this.
2001-05-21 21:47:52 +00:00
thorpej e7a0ef6145 ANSI'ify. 2001-05-21 20:59:38 +00:00
jhawk ecb3a30463 add $NetBSD$ 2001-05-21 20:47:13 +00:00
mjacob 3462fe5d99 Remove reference to adapter_q in scsipi structure. Comment about the
usage of channel_q.
2001-05-21 15:50:46 +00:00
ichiro 598241f757 add product COREGA FEther-PCC-TXF
kern/11357 and report from goro@venus.dti.ne.jp
2001-05-21 13:48:25 +00:00
ichiro fd7d5008e8 regen 2001-05-21 13:45:10 +00:00
ichiro 4108bc4645 add product COREGA FEther PCC-TXF 2001-05-21 13:44:48 +00:00
christos 2ed6d9dbf7 PR/12991: Dave Huang: DVD ioctls don't work because we send the wrong size
CDB (16 instead of 12).
2001-05-20 21:07:58 +00:00
bjh21 86e12294cd Add Multi-media/Ethernet card from Irlam. 2001-05-20 21:07:06 +00:00
bjh21 65165c3deb 16-bit podules I acquired at Wakefield:
- Added SJ Research Nexus
 - Note HCCS use same ID for IDE and SCSI cards
 - Update Castle EtherSCSI entry
2001-05-20 20:40:19 +00:00
ichiro cb675810e0 add more comment about firmware of EVAL-CARD. 2001-05-20 13:14:54 +00:00
ichiro c13971f816 chenge chip and card identity,
print RF-chipset, Medium Access Controller(MAC) and CARD-identity
2001-05-20 12:57:57 +00:00
ichiro 309a9b433c delete RCS Id from pcmciadevs rev 1.128 2001-05-20 10:47:50 +00:00
ichiro 3b35709de7 make compile again
(fix warning : missing white space after `#define....)
2001-05-20 09:54:47 +00:00