Commit Graph

2501 Commits

Author SHA1 Message Date
wiz c03a48d64f withough -> without 2001-06-13 10:45:57 +00:00
thorpej 015345c74b Don't need INET or NS includes here. 2001-06-12 22:32:51 +00:00
thorpej 9988acd41e Don't need INET or NS includes here. 2001-06-12 22:28:15 +00:00
bjh21 18e8d752f6 No need to pull in INET or NS headers -- that's all done by ether_ioctl() now. 2001-06-12 20:53:39 +00:00
wiz 0a600be867 receive, not recieve 2001-06-12 15:17:10 +00:00
wiz 2a8c778f1b retrieve, not retreive 2001-06-12 14:59:27 +00:00
wiz b50f28c38a underrun, not underun 2001-06-12 11:48:51 +00:00
bjh21 33afab3251 Add a short-circuit return from wdcprobe for IDE controllers without pullup
resistors, which return the last value written to the bus on a read.  This
makes detecting empty channels on my HCCS and D.T. Software IDE interfaces
rather faster.
2001-06-11 21:18:36 +00:00
wiz 40ac848024 Fix various misspellings of compatible/compatibility. 2001-06-11 01:50:48 +00:00
wiz 0a3b1c29a1 transceiver, not transciever. 2001-06-11 01:19:53 +00:00
ad bfac43a1c8 Centralise the geometry fudge. 2001-06-10 10:48:42 +00:00
ad 5f1286dfb9 Don't make assumptions about the contents of the system drive table. 2001-06-10 10:34:44 +00:00
scw 737763fde7 Forgot to commit this as part of the mvme68k evcnt(9) changes. 2001-06-10 08:27:42 +00:00
briggs acf06d2e27 If the adapter is returning a selection timeout, then we should be
returning XS_SELTIMEOUT, not XS_TIMEOUT.  Pointed out by Andrew Doran.
2001-06-09 18:08:20 +00:00
briggs 8c948a0386 Patches from takashi.yamamoto@bigfoot.com in kern/13139.
- Set XS_TIMEOUT on a selection timeout condition.
- Do not bother to call AscStartChip() in AscResetChipAndScsiBus()--
  just clear the chip status.
- Make sure address is word-aligned in AscWriteLramByte().

Tested on my adv (AdvanSys ABP-9xxUA) with CRW8424S and UMAX SuperVista S-12.
Earlier versions of the system would get stuck trying to recover from error
conditions when the CD-RW drive was in heavy use.  I have not seen that
behavior with these small patches.
2001-06-09 17:18:21 +00:00
tsutsui 14f1650c62 Remove unused members from SCSI command block structure. 2001-06-09 13:43:02 +00:00
tsutsui 9cd36c6539 Fix an uninitialized variable in #ifdef DIAGNOSTIC.
Pointed out by soda.
2001-06-09 12:59:50 +00:00
thorpej ff5871412e Correct the receive mode mask in the RXCMD register. 2001-06-07 05:19:26 +00:00
thorpej 025decbccb Don't clear a callout on a scsipi_xfer that has been scsipi_done()'d. 2001-06-07 03:44:00 +00:00
soren 26603afde8 Update URL to documentation PDF. 2001-06-06 22:11:42 +00:00
tsutsui 15f8692183 Make some functions __inline. 2001-06-05 12:42:44 +00:00
thorpej 8ee014b439 Handle the DL10022 case. 2001-06-05 02:31:16 +00:00
mrg 46762d3560 fix lint exposed by GCC 3.0 20010604 (prerelease). 2001-06-04 20:56:51 +00:00
toshii 13aba87bcb Don't pass nonpositive repeat count to CSR_*_MULTI_2.
Should fix kern/13092.
2001-06-04 03:34:47 +00:00
tsutsui bcdd082840 Add a driver for the Initio INIC-940/950 PCI SCSI controllers.
Based on OpenBSD's iha driver, and modified some structures by me.

Tested on arc, i386 and macppc.
2001-06-03 13:43:45 +00:00
thorpej 37368cb858 Use the correct bitbang ops on the DL10022 (oops!). 2001-06-03 04:39:52 +00:00
thorpej ca4d373730 Implement support for IP/TCP/UDP checksum offloading provided by
network interfaces.  This works by pre-computing the pseudo-header
checksum and caching it, delaying the actual checksum to ip_output()
if the hardware cannot perform the sum for us.  In-bound checksums
can either be fully-checked by hardware, or summed up for final
verification by software.  This method was modeled after how this
is done in FreeBSD, although the code is significantly different in
most places.

We don't delay checksums for IPv6/TCP, but we do take advantage of the
cached pseudo-header checksum.

Note: hardware-assisted checksumming defaults to "off".  It is
enabled with ifconfig(8).  See the manual page for details.

Implement hardware-assisted checksumming on the DP83820 Gigabit Ethernet,
3c90xB/3c90xC 10/100 Ethernet, and Alteon Tigon/Tigon2 Gigabit Ethernet.
2001-06-02 16:17:06 +00:00
toshii 9590a56496 Use bus_space_{read,write}_multi_stream_2 where available. 2001-06-02 15:49:16 +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
jdolecek f6af05f407 Back the last revision off, upon Bill Sommerfeld's request 2001-06-02 00:46:00 +00:00
jdolecek 5dbe622e77 When polling, raise priority level to tty, to block keyboard interrupts
when the system is "warm", i.e. interrupts are not blocked anymore.
This seems to be necessary on my PS/2 Model 70 keyboard - without this,
system ends up in endless loop calling the keyboard intr routine if a key
is pressed when polling. This _may_ be just specific to level-triggered
interrupts PS/2 MCA uses, though it's more likely it's just the way the
particular keyboard controller works.

Discussed on tech-kern@.
2001-06-02 00:01:04 +00:00
lukem d84d2c6c85 add missing #include "opt_kgdb.h" 2001-05-30 15:24:23 +00:00
mrg c13e3a6693 use _KERNEL_OPT 2001-05-30 11:40:35 +00:00
onoe a62b5c1e2e add a comment why IFF_PROMISC is handled separately for SIOCSIFFLAGS:
Handle special case for IFF_PROMISC.  If only IFF_PROMISC
	flag is changed, do not call an_init() to avoid initiating
	reassociation to another access point.  It is really
	helpful for tcpdump(8).
2001-05-28 00:46:35 +00:00
bjh21 6d8a82ebc2 Use bus_space on arm26.
Update the comment to match list of bus_space-using ports.
Delete oak from list of drivers that need converting.
2001-05-26 20:55:48 +00:00
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
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
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
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
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
thorpej 611e112566 A little slight cleanup. 2001-05-22 00:27:01 +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
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 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
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
bouyer 8aa2f73d43 Enable tagged queuing again; should work now with scsipi_base rev 1.42 2001-05-18 12:57:42 +00:00
fredette d76bcda838 Fixed some typos, removed unused asm() labels. Removed
the DMA map creation, now the bus glue does this.
2001-05-18 12:51:58 +00:00
drochner bc8eda57c9 increase the delay after PHY reset - it seems that mii register accesses
can fail if attempted too soon after reset
2001-05-17 19:00:18 +00:00
drochner 323adb5a41 support BNC interfaces (serial mode) as on the SMC9432BTX and 100FX
on the SMC9432FTX
2001-05-17 17:32:47 +00:00
drochner 5e1115908d Revert previous change; this breaks for the old controllers which 1.6
should help for. Instead, weaken the "echo" test: don't insist in
getting the same value back which was written.
2001-05-17 10:48:39 +00:00
scw d1bc67e029 In osiop_scsidone(), call scsipi_done() even for polled operations.
This fixes a `hang' on shutdown when the `Synchronise Cache' command
is sent to a disk. (It uses polled mode because it is called from inside
a shutdown hook).
2001-05-17 10:35:30 +00:00
mjacob 90cabee3fb Per helpful suggestion from LukeM- make INLINE usage consistent (and
use correct __inline format).
2001-05-16 21:41:52 +00:00
jdolecek 8e532c1ad1 Make sure to allocate big enough mbuf data area before elevating
interrupt priority, to avoid allocating additional mbufs on
splsched(). Move some other misc bits out of splched()-guarded
section. This should make the code a bit more friendly wrt e.g.
clock interrupts. Sligh performance improvement was observed with
this change (like 1-2% on slow machine), even.

This also fixes ancient kern/2478 by Bill Sommerfeld.
2001-05-16 20:30:52 +00:00
ichiro 8a78799bf4 support BUFFALO AirStation WLI-PCM-S11
this card are PRISM2.5 card.
2001-05-16 14:33:21 +00:00
tsubai eef5fa50d3 Big-endian support. 2001-05-16 10:45:36 +00:00
ichiro 15833cae3b add prism chip identity, Prism2 with SST flush. 2001-05-16 07:53:28 +00:00
lukem 927097774a delint: remove volatile from fxp_mdi_read() decl 2001-05-16 04:20:55 +00:00
mjacob b81e69fa8e beginning basic 2300 infrstructure support 2001-05-16 03:58:34 +00:00
mjacob 9f2c2c7a8c Keep up with the Joneses.... further synchronization for the eventual
implementation in NetBSD for target mode.
2001-05-16 03:58:03 +00:00
mjacob 73eba1a839 Long overdue- put locks on the usage of the mailbox command stuff. This
keeps us from stomping on ourselves.

Say we're in the middle of re-evaluating a loop (and sleeping) when a
command completes, or a timer refires, and this *other* thread decides
*it* wants to start re-evaluating the loop. Bad news.

We have to be a bit careful- if we can't acquire the MBOX semaphore at
interrupt level, we will simulate a host interface error. This is a bit
of a temp workaround. There's some work underway driven by a NetBSD
commercial user that will try and force most mailbox stuff into a
part A/part B interrupt driven model.
2001-05-16 03:55:15 +00:00
mjacob a1dd9d78ee It's 'role None', not 'role No'.
Also, pay attention to the difference in the ISPASYNC_CHANGE_NOTIFY
between loop and fabric changes.
2001-05-16 03:52:10 +00:00
ichiro 9a3074ffce cosmetic change.
change version format: <major>.<minor> variant <num>
2001-05-16 02:36:37 +00:00
christos 6ae38c2f7a Try the kbc_auxtest if the random write/read to the aux port fails (it returns
0xfe on my gateway 2000 circa 1993). That should not affect broken controllers
that choke on the kbc_auxtest, because for those the write/read test succeeds.
2001-05-15 22:01:07 +00:00
lukem d62b92e0f7 delint: () protect some macro args 2001-05-15 15:41:27 +00:00
ad ae0203ee27 Correct arguments to bus_dmamap_create(), and add a reset routine for the v3
interface.
2001-05-15 12:49:37 +00:00
ichiro 0071e88a8c fixed mistake.
major version and minor version were made reverse.
2001-05-15 11:45:50 +00:00
ichiro 08d33f4cc0 Fix indentation in recent commit. 2001-05-15 09:06:15 +00:00
ichiro 4afb07bd12 getting prism2 firm ver routine to wi_get_id().
if firm ver is more than 0.8c3, promiscuous mode is off.

typo WI_RID_STA_IDENEITY -> WI_RID_STA_IDENTITY
2001-05-15 09:01:27 +00:00
ichiro caa399b739 WEP cannot be used when Prism2 Firm version is lower than 0.8.3.
Although WEP is used in Windows also in an old firm,
because WEP is processed by the windows driver side.
If Prism2 Firm version is more than 0.8.3, WEP does work without 'Promiscuous ON'.
2001-05-15 04:27:22 +00:00
ichiro 2970b99ac9 It enabled it to control roaming mode and authentication mode.
Roaming mode can change value into 'firm mode' and disable.
Authentication mode can change into 'Open System authentication'
and 'Shared Key Authentication' with Prism2 chip.

wi_get_id() was introduced in order that chip might judge automatically
whether it is Prism2 chip. Therefore, a pp_prism2 entry in
"struct wi_pcmcia_product" became unnecessary.
2001-05-15 04:14:06 +00:00
jdolecek 85c02ac331 epintr(): eliminate write-only variable 'addrandom' 2001-05-14 09:28:49 +00:00
jdolecek 6ff7de5716 remove unneeded #includes, fix typo 2001-05-14 08:01:23 +00:00
jdolecek 497bb809df do not use the synchronous read mode for MCA 3c529 2001-05-14 07:03:50 +00:00
thorpej 240de9a426 Definitions for the Dallas Semiconductor DS1286/DS1386 Real Time Clock.
From Rafal K. Boni.
2001-05-11 02:07:09 +00:00
thorpej 18e25d5feb Add a flag to suppress SCC reset at attach time.
From Rafal K. Boni.
2001-05-11 01:40:48 +00:00
fvdl ba2882488a Despite what the hardware docs say, the global reset command is not
done when the command-in-progress bit has been cleared. The 1ms
time that is mentioned also seems wrong; 20,000us is not enough
on at least one machine. So, do a delay(100000) in ex_reset.
Fortunately, this function is only called when the card is
attached or when hardware failure is suspected.

While here, only mask one 1 bit in the 'reset hack' case.
2001-05-10 22:57:44 +00:00
tsutsui 330ab2b636 Print a clock frequency of the chip. 2001-05-09 16:24:43 +00:00
ichiro 09858f6fc8 change promisc mode in case of SIOCSIFFLAGS of wi_ioctl.
Fix indentation.
2001-05-08 16:42:49 +00:00
ichiro 1480c8fae2 delay(10) is too much enough for command waiting routine. 2001-05-08 13:42:04 +00:00
lukem a9bf1b0410 delint 2001-05-07 08:15:41 +00:00
ad 95450fbced Make provision for resetting the board at start-up. 2001-05-06 19:53:04 +00:00
ichiro 8bb5cfe6aa divided into PCMCIA attachment and common code of wi.
since if_wi_ieee.h does not depend for pcmcia,
sys/dev/pcmcia/if_wi_ieee.h was moved to sys/dev/ic/wi_ieee.h .
2001-05-06 03:26:38 +00:00
ross e3f2f91bfb Split pci and eisa/isa attachment calls, plus misc cleanup. 2001-05-03 20:34:54 +00:00
fvdl 487447a9bf Bump values of the number of up- and downlaod descriptors such that
saturating a 100Mbit link will not lead to running out of them.
2001-05-03 17:59:24 +00:00
minoura 58b62ea0cf Correct playing mu-law and linear. 2001-05-03 02:09:11 +00:00
minoura ff3917c60f Oops, it contained some debug code. 2001-05-02 13:34:33 +00:00
minoura 1a9388aa50 Software codec for Oki MSM6258 voice synthesizer.
Recording untested.
2001-05-02 12:53:31 +00:00
scw 2963ff5c58 Add `l_poll' to `struct linesw' and provide an xxxpoll() entry point
in each tty driver to indirect through it.

This allows tty line-disciplines to handle poll(2) system calls.
2001-05-02 10:32:08 +00:00
bouyer 6baecd7e87 Don't forget to init chan_bustype. 2001-05-02 10:31:41 +00:00
lukem 796f5b43a7 delint 2001-05-01 16:40:03 +00:00
bouyer 19b0c05827 Ops, don't forget to increment li->used for each tagged command. 2001-04-30 13:58:32 +00:00
bouyer 2cc0fbbe14 remplace /*
*/
with
#ifdef notdef
#endif
to avoid:
../../../../dev/ic/hmereg.h:275: warning: `/*' within comment
2001-04-30 12:22:42 +00:00
tsutsui 613923b42e Add a MI driver for the Symbios/NCR 53c710 SCSI controller.
This is based on amiga's siop driver, but converted to use
bus_space(9) functions and modified to fit bus_dma(9) framework.

Currently tested on NetBSD/arc with jazzio 53c710 SCSI,
which really requires bus_dma(9) functions :-)
Sync transfers and disconnect/reconnect are also working.

TODO:
- Test under more heavy load
- Clean up osiop_checkintr() hander
- Reorganize command queue and sync negotiation handling more suitable
  for thorpej-scsipi mid-layer
- Re-think defered interrupt handling for amiga
2001-04-30 04:47:50 +00:00
lukem b3b4a527b3 remove trigraph 2001-04-30 03:53:19 +00:00
lukem 5de219fbef delint 2001-04-30 03:49:12 +00:00
lukem c83fa97ec8 remove trigraph 2001-04-30 03:48:06 +00:00
lukem 52a1d62934 delint 2001-04-30 03:45:35 +00:00
lukem 786063e4da use #if 0 rather than // or /* to comment out blocks of code 2001-04-30 03:43:09 +00:00
lukem f863105161 remove some lint, including ansifying funcs 2001-04-30 02:55:08 +00:00
lukem abf1970c82 delint newline in string 2001-04-30 02:17:55 +00:00
lukem 599ac910c6 this is _C_ not _C++_, and // is NOT valid in _C_ 2001-04-30 01:34:04 +00:00
erh acc17cc823 Set the delta for the particular source so telling mixerctl to decrease the
volume (using --) adjusts it far enough to stick.
2001-04-29 02:47:25 +00:00
bouyer 1346d56311 - don't wait when called from interrupt context (basically this means we
can't sleep in HBA drivers)
- pool_get can fail, so return XS_RESOURCE_SHORTAGE instead of panic()
- don't try to bzero() a NULL pointer
2001-04-28 15:09:42 +00:00
jdolecek 6589e65051 Don't panic if the memory size is "weird", but instead compute
reasonable transmit/receive buffer count.
This is needed for e.g. SKNET adapters, which use top 30 bytes of 16KB
memory to map registers and PROM and hence not all the memory is
available for buffers.
2001-04-27 17:08:02 +00:00
bouyer af5fd4c7d8 Stopgap measure for PR kern/12762: cut the number of openings per device
to 16 or 4 (depending on capabilities of adapter), as it was before
thorpej_scsipi integration
Waiting feedback to known whenever the problem with openings set to AHC_SCB_MAX
existed before.
2001-04-27 14:49:11 +00:00
bouyer 856411129e Disable tagged queuing for now, it causes commands timeouts.
Note that it's not worse since thorpej_scsipi integration: tagged queuing
was not used before, because of a tag message rejected at probe time.
2001-04-26 17:09:39 +00:00
bouyer d032d80637 Redo xfer sync/wide/tag notification again: we need to notify upper layer
that we can do tag.
Start sync/wide nego at first command, but wait ADAPTER_REQ_SET_XFER_MODE
to notify upper level.
2001-04-26 16:56:53 +00:00
kanaoka 0d6646292e - Fix typo in comment.
- Add (missed)powerhook_disestablish() in ex_detach().
 - Sync with below.     Original commit log message:
 Add new powerhook argument values, PWR_SOFTSUSPEND, PWR_SOFTSTANDBY and
 PWR_SOFTRESUME. Apm calls powerhook with the values in normal interrupt
 priority level while others are protected with splhigh().
2001-04-26 08:21:51 +00:00
bouyer 937a7a3ed9 Pull up the thorpej_scsipi branch to main branch.
This is a completely rewritten scsipi_xfer execution engine, and the
associated changes to HBA drivers. Overview of changes & features:
- All xfers are queued in the mid-layer, rather than doing so in an
  ad-hoc fashion in individual adapter drivers.
- Adapter/channel resource management in the mid-layer, avoids even trying
  to start running an xfer if the adapter/channel doesn't have the resources.
- Better communication between the mid-layer and the adapters.
- Asynchronous event notification mechanism from adapter to mid-layer and
  peripherals.
- Better peripheral queue management: freeze/thaw, sorted requeueing during
  recovery, etc.
- Clean separation of peripherals, adapters, and adapter channels (no more
  scsipi_link).
- Kernel thread for each scsipi_channel makes error recovery much easier
  (no more dealing with interrupt context when recovering from an error).
- Mid-layer support for tagged queueing: commands can have the tag type
  set explicitly, tag IDs are allocated in the mid-layer (thus eliminating
  the need to use buggy tag ID allocation schemes in many adapter drivers).
- support for QUEUE FULL and CHECK CONDITION status in mid-layer; the command
  will be requeued, or a REQUEST SENSE will be sent as appropriate.

Just before the merge syssrc has been tagged with thorpej_scsipi_beforemerge
2001-04-25 17:53:04 +00:00
tsutsui f39a68828d Make sure to check SC_ACCEL_TAGS in ncr53c9x_ioctl()
even if sync transfer is disabled or not supported.
2001-04-21 07:28:22 +00:00
tsutsui 64eed5859d Clean up ncr53c9x_select():
- Define NCR_F_SELATN3 for sc_features and use it to check if the chip
  supports SELATN3 command
- Make conditions of sending messages a bit simpler.
2001-04-21 05:35:20 +00:00
tsutsui f2e3f6d5d4 Cosmetics. (tab/space etc.) 2001-04-20 17:32:33 +00:00
fredette 31d512c2e3 Added support for the chipset used on the Sun2 "sc" SCSI adapters.
A little rough around the edges, but definitely a starting point.
2001-04-20 16:35:22 +00:00
ragge 849d818db4 Remove some unused variables. 2001-04-15 15:01:35 +00:00
ross 7e0b361d84 Fix for kernel alignment crash reported on port-alpha. A developer went on
a happy code sweep (in the kernel!) and constified a random selection of
kernel objects. This changed the alignment of the previously-aligned-by-
accident seqprog array, and exposed a lurking bug.  I can't decide if this
is good or bad.
2001-04-14 19:37:17 +00:00
thorpej bf2dcec4f5 Remove the use of splimp() from the NetBSD kernel. splnet()
and only splnet() is allowed for the protection of data structures
used by network devices.
2001-04-13 23:29:55 +00:00
thorpej a3fd502107 Nuke some unneeded splimp. 2001-04-12 03:16:56 +00:00
thorpej d94ce2f426 splimp -> splnet 2001-04-12 03:10:35 +00:00
wiz b7f59127c9 re-add bt8xx.h (needed for fxtv, without which bktr is pretty much useless) 2001-04-11 09:07:21 +00:00
jdolecek 372e5956ef Only install headers which are actually used by our userland. This
saves about 2.2MB under /usr/include/dev/. Discussed on tech-kern@
recently.

I HOPE to get the list right. The headers I left in are ones
used for MI tools and those whose usage I discovered by grep over tree sources.
Feel free to put needed includes back in if you encounter anything which
should not be removed from lists.
2001-04-11 07:42:31 +00:00
mjacob dfb8f5f43f Include isp_ioctl.h. 2001-04-10 21:52:15 +00:00
mjacob 78a44662f5 Add initial implementation of ISP_SDBLEV, ISP_RESETHBA, ISP_FC_RESCAN,
ISP_FC_LIP and ISP_FC_GETDINFO ioctls.
2001-04-10 21:52:00 +00:00
mjacob 7bcf01a29a Note one other place that bogus interrupts can be measured. 2001-04-10 21:51:21 +00:00
mjacob 81a6d0ec41 Add isp_ioctl.h. 2001-04-10 21:50:53 +00:00
mjacob 5f8aa905e6 Add some HBA ioctl functions (LIP resets, rescan, setting debugging level). 2001-04-10 21:50:40 +00:00
fredette b27eda4ead Added. 2001-04-10 12:46:26 +00:00
fvdl 0ccb3965dd Fix missing splx calls. One of them from OpenBSD. 2001-04-09 23:51:28 +00:00
bjh21 fd7c4f1c79 ether_ioctl() expects i82586_init() to return an errno. Have it do so
(admittedly only EIO at present).
2001-04-09 22:31:16 +00:00
drochner 9e9590f441 Change the way the aux port is probed for. Some older chipsets w/o
mouse port seem to interpret the "test aux port" (0xa9) command differently,
leading to a non-working keyboard.
Now we try to echo a byte through the aux port by means of the "echo aux"
(0xd3) command, which is what Linux does.
Thanks to Christoph Badura for detailed reports and testing.
2001-04-09 15:45:50 +00:00
ad e637d8a38d - Some firmware fills the system drive table with junk, so get the number
of system drives from an ENQUIRY.
- Complain if there's more than 1 segment when issuing some kind of enquiry
  (this needs to be fixed properly).
- Fix the ID hack for 2.xx firmware.
- Fix an argument to bus_dmamap_sync().
2001-04-09 15:40:09 +00:00
tsutsui aa31658cf0 Correct values for sanity checks. 2001-04-08 17:05:10 +00:00
tsutsui c65417c92f Make sure to print "\n" at the end of the attach line on non-DEBUG case. 2001-04-08 11:45:45 +00:00
tsutsui 2f9f69455f Fix some bus_dma(9) usage:
- bus_dmamap_sync() takes offset into the dmamap, not VA.
- Use BUS_DMA_STREAMING for the data dmamap, not BUS_DMA_COHERENT.
2001-04-07 10:50:13 +00:00
bjh21 03e45ae8c7 In ea_writembuf(), reset the DMA pointer for each mbuf we copy, since
odd-sized mbufs will confuse things.  This makes transmission of odd-sized
packets work.
2001-04-06 00:02:49 +00:00
bjh21 d109dd795a Add a bit of voodoo code from the old "eb" driver that seems to prevent the
80C04 returning garbage when we read from it.  This driver can now handle flood
pings without dropping packets.
2001-04-05 22:55:46 +00:00
mjacob 5dafac6e18 Add a few opcodes for target mode. Define firmware attributes (for FC f/w). 2001-04-05 02:28:53 +00:00
mjacob ad454c818c Keep up with the Joneses: sync with common core target mode code. Eventually
we'll do something with it here.
2001-04-05 02:28:17 +00:00
mjacob 6c28def28f Change how SCSI defaults are latched if we're supporting Target Mode.
Make sure we pick up the channel for dual bus cards when enabling target
mode. Catch a silly null pointer dereference.
2001-04-05 02:27:33 +00:00
bjh21 0c5b5be69f Tweak product ID printing in light of the 80C04A data sheet.
Split out Rx and Tx interrupt handlers into their own functions for clarity.
2001-04-02 22:25:17 +00:00
bjh21 7b7d57c2da Add some definitions for the 80C04A, thanks to Reinoud, who found me a data
sheet for it.
2001-04-01 21:15:15 +00:00
jdolecek 5a3d02fe8b fix the copyright - Charles's name was added here by mistake, use
standard TNF cookie instead
2001-03-31 09:49:00 +00:00
jdolecek 592dfdc76b Prepare for MCA attachment:
* split off sharable stuff to dev/ic/ate_subr.[ch], move ate(4) device
  definition to conf/files
* cosmetic: attach with ate_isa
2001-03-31 00:26:53 +00:00
bjh21 f6ec9b4ab2 On an 80C04, try not to start reads at addresses of the form xx,ea, xx,ee, or
xx,f0.  This appears to heavily alleviate, but not to eliminate entirely,
the problems I've been seeing with garbage being read from the rx buffer.
I suspect the real solution lies elsewhere.
2001-03-29 20:49:44 +00:00
bjh21 2f6fd6b040 Print a warning message when the DMA FIFO fails to fill or empty before we
time out.
2001-03-29 17:46:39 +00:00
jdolecek 2a2070aec3 kill bunch of unneeded includes 2001-03-29 08:48:55 +00:00
petrov b0605f71d5 fas support added 2001-03-29 02:58:38 +00:00
bjh21 758fa94327 Print the address within the Rx buffer whenever anything goes wrong: it seems
to be significant.
2001-03-27 22:17:51 +00:00
bjh21 4beebf7d5d Clean up debugging printfs a little. 2001-03-27 21:43:13 +00:00
bjh21 8fc709ee67 Add some extra diagnostics:
* Use the timer to timoe out transmit operations.
 * Spot when the "next packet" pointer falls outside the recieve buffer and
   reset the interface.
 * Don't reset the interface when we get a bad packet (unless there's
   something else wrong as well).
2001-03-27 20:26:45 +00:00
bjh21 7dae264309 Comment and #ifdef cleanup. 2001-03-27 18:03:04 +00:00
bouyer f099a26df2 Cast to u_int64_t when computing callout argument, to avoid int overflow.
Fixes kern/12471.
2001-03-27 17:24:03 +00:00
ad d54c705158 Missing splx(). From OpenBSD. 2001-03-25 14:48:28 +00:00
is 51144af34f improve readibility 2001-03-25 14:38:23 +00:00
bjh21 39c267bb01 Tweak handling of multicast on 80C04. I think we need to set the match mode
to "multicast" for it to work, but I could be wrong.

Also make ALLMULTI work on 80C04, but this is untested.
2001-03-25 01:06:59 +00:00
bjh21 304809f5f1 Re-arrange board memory to suit the current (crude) transmit code.
Add ea_writembuf() from mark's code, and re-work eatxpacket() to use it.
2001-03-24 23:31:06 +00:00
bjh21 b94b953e92 Enormous pile of changes from mark's (uncommitted) work on this driver.
About the only bit of his code not here is the transmit routines, which I'll
merge in separately.

Also a few bug-fixes, so (for instance) multicast on an 8005 doesn't
immediately fall back to IFF_ALLMULTI.
2001-03-24 20:38:41 +00:00
bjh21 b83b8ac01f Change all the register definitions to match the names using in mark's
improved version of the driver.
2001-03-24 13:40:41 +00:00
martin 5171d409a5 First step to cleanup the hardware driver <-> upper layers interface.
This now provides slightly more functionality than the FreeBSD layer1-newbus
interface. It was meant to be a simple change to one header and a few
c files, but the change rippled all through various stuff.

To prevent a change to the kernel<->userland interface right now the kernel
is now lying about card types to userland (but who cares). This will be fixed
when the userland interface changes, after layer 3 <-> layer 4 has been
fixed.

Functional changes:

Provide a clean interface for hardware drivers to attach to the upper
layers. This will need another small change in the B-channel handling
when a similar change to the layer 3 <-> layer 4 interface happens.

Avoid passing indices into global arrays of pointers around, instead pass
the pointers itself. Don't code hardware driver types by predefined magic
numbers (think LKM). Prepare for detachable drivers (think pcmcia).

While there remove some sets of function pointers always pointing to the
same function (meant to be the configurable set of D channel protocol
handlers). It is unlikely another supported D-channel protocol will fit into
that (maximal layer interface) abstraction. When we get support for another
protocol, we will need to come up with a workable interface. Besides, the
old implementation was, uhm, strange.
2001-03-24 12:40:29 +00:00
bjh21 18db220fba Handle IFF_ALLMULTI correctly. We can now cope with multicast, but for
some reason DAD fails when starting IPv6.
2001-03-24 00:16:41 +00:00
jdolecek 6d79f8ce1e Split we(4) driver to bus independant and ISA-specific parts, in preparation
for MCA attachment.
2001-03-23 17:34:41 +00:00
jdolecek 031c6d8c24 Add MCA ep(4) attachment, for 3Com 3c529-type cards. Tested with 3c529-TP,
provided to me by David Brownlee (thanks!).

Performance of this card is quite poor on my PS/2 with 386DX, like 100KB/s
at best, but as low as 5KB/s when transferring bigger files due to
packet overruns. It would be good to revisit this later, probably by
teaching the ic code to use RX Early.
2001-03-22 16:54:45 +00:00
jdolecek 4ffa6a80d6 convert to use ether_ioctl()
fix bunch of typos
2001-03-22 12:00:26 +00:00
bouyer be5f917514 Add a small delay before reset at attach time, required by one old ATAPI
CD. Reported by Onno van der Linden.
2001-03-21 08:44:14 +00:00
is a4dce1a3f4 Don't need to use the hash filter for a single individual address; make
sure concurrent receive processing is disabled.
2001-03-16 13:43:31 +00:00
bouyer 2b318d4800 Note that SF_CHIP_QUAD is for clock quadrupler with busy wait for PPL.
SF_CHIP_DBLR is for clock doubler or quadrupler.
2001-03-15 17:38:59 +00:00
tsutsui 585b6f2b0a Fix tyop in comments. 2001-03-15 13:45:00 +00:00
chs ac3bc537bd eliminate the KERN_* error codes in favor of the traditional E* codes.
the mapping is:

KERN_SUCCESS			0
KERN_INVALID_ADDRESS		EFAULT
KERN_PROTECTION_FAILURE		EACCES
KERN_NO_SPACE			ENOMEM
KERN_INVALID_ARGUMENT		EINVAL
KERN_FAILURE			various, mostly turn into KASSERTs
KERN_RESOURCE_SHORTAGE		ENOMEM
KERN_NOT_RECEIVER		<unused>
KERN_NO_ACCESS			<unused>
KERN_PAGES_LOCKED		<unused>
2001-03-15 06:10:32 +00:00
mjacob c67c3d855d Clean up and update copyright (remove advertising clause). Clean
up header guard.  Clean up structure definition for at2_entry so
it's correct rather than derived from at_entry- this is important
for unswizzling purposes. Add a whole bunch of unswizzle macros-
they're not quite right yet but at least they're a start. Note that
we now have, for at_entry, a 16 bit firmware handle as part of what
had been at_reserved- this is to correlate ATIOs with CTIOs- and
this must be carried along as part of a tag value to use with all
CTIOs we send in relation to this ATIO. ANSIfy.
2001-03-14 05:46:50 +00:00
mjacob 98381c7a2d ANSIfy source. 2001-03-14 05:44:46 +00:00
mjacob 8d81f18e84 Handles are now 16 bits. ANSIfy. 2001-03-14 05:44:21 +00:00
mjacob 765a49664e Roll core minor. ANSify. 2001-03-14 05:14:36 +00:00
mjacob 6112b6b2e7 Clean up some comments. Expand usage of cd_reserved. Expand cd_tagval
to 32 bits so it can haul along this furshlugginer handle for parallel
SCSI as well as a regular vanilla 8 bit SCSI tag.
2001-03-14 05:10:38 +00:00
mjacob 928cef6eb8 Clean up license && copyright a tad. ct_reserved should now be more
properly called ct_syshandle.
2001-03-14 05:01:54 +00:00
mjacob 5d68eec9d1 Handles are now u_int16_t instead of u_int32_t. ANSIfy (NetBSD was the holdout). 2001-03-14 04:55:21 +00:00
mjacob 4a005e2d38 Update copyright date. ANSIfy isp.c (NetBSD was the holdout of all
the platforms this code runs on). Handles are now u_int16_t, so adjust
code as required.
2001-03-14 04:54:13 +00:00
tsutsui 06237a6a03 Add some delay in zstty_attach() to wait previous console output
to complete before hardware initialization.
2001-03-12 15:46:56 +00:00
bouyer 9ea2b5098b Preliminary support for SYM53C1010-33 (at 80MB/s only for now), based on
patches sent by Matthias Drochner <M.Drochner@fz-juelich.de> and
Kenneth R Westerback <kwesterback@home.com>
2001-03-12 10:00:50 +00:00
wdk 688a84b1b2 Add missing \n during probe if port is dedicated to kgdb 2001-03-11 09:06:09 +00:00
jdolecek 9d66d7180b add 'why' argument to the channel attention hook function; this argument
is similar to the one passed to hwreset hook function
2001-03-10 20:04:30 +00:00
jdolecek c0d40387a0 improve the error messages for IE_TDR_OPEN & IE_TDR_SHORT 2001-03-10 19:59:13 +00:00
jdolecek a557028a27 improve description of IE_TDR_OPEN & IE_TDR_SHORT a bit 2001-03-10 19:57:38 +00:00
briggs 0828a1bcd0 Make this work on a PowerPC system:
- Load the DMA address a byte at a time, and
 - Use bus_space_read_stream_2() instead of bus_space_read_2() when reading
   the byte-stream of configuration data from the card.

Sanity-checked on both i386 and sandpoint.  Reviewed by ad.
2001-03-10 13:30:55 +00:00
thorpej 32a284db3a Make sure data after the header is aligned, so that this works on
systems with strict alignment constraints.
kern/12356, Feico Dillema <feico@pasta.cs.uit.no>.
2001-03-08 16:33:43 +00:00
thorpej 09cc55c97c Add additional padding to the status record, needed by the AIR-PCM342.
kern/12357, Feico Dillema <feico@pasta.cs.uit.no>.
2001-03-08 16:30:50 +00:00
thorpej 54bb0eddd9 Preliminary support for detaching an "adv" instance. This
could use some more work.

Derived from kern/12341, takashi.yamamoto@bigfoot.com.
2001-03-08 06:49:49 +00:00
thorpej fd7ed72be1 Add BUS_DMA_STREAMING to data transfer maps. 2001-03-07 23:07:12 +00:00
mjacob bf630787f7 Fix isp_print_qentry to print all four lines- it's been broken for months. 2001-03-02 04:51:14 +00:00
thorpej 8f79095477 Differentiate a couple of similar error message, and add newlines
on the end of them.
2001-03-01 22:10:57 +00:00
itojun 0913c0736c IPv6 support, from fujiwara@rcac.tdi.co.jp 2001-03-01 00:40:41 +00:00
mjacob bcc65cfc34 roll platform minor 2001-02-28 05:53:59 +00:00
ad 8be33f9cc5 Remove mlxvar.h, which was added for no apparent reason. 2001-02-25 16:15:07 +00:00
cgd c105346203 Avoid sequence point issues. 2001-02-24 00:03:12 +00:00
cgd 023e9f0649 C requires that labels be followed by statements. 2001-02-24 00:01:22 +00:00
mjacob baf0985f2a Fix a longstanding bug- we had the sense of what bit 14
for the ICB firmware options meant- *I* had taken it to
mean that if you set it, Node Name would be ignored and
derived from Port Name. Actually, it meant the opposite.
As a consequence- change ICBOPT_USE_PORTNAME to the
define ICBOPT_BOTH_WWNS- makes more sense.
2001-02-23 05:38:27 +00:00
jdolecek 522f569810 make some more constant arrays 'const' 2001-02-21 21:39:52 +00:00
martin f0d6660cf4 Filename cleanup: remove i4b_ prefixes outside sys/netisdn, last round.
Renamed in sys/dev/ic:
i4b_hscx.c -> hscx.c
i4b_hscx.h -> hscx.h
i4b_ipac.h -> ipac.h
i4b_isac.c -> isac.c
i4b_isac.h -> isac.h
i4b_isic.c -> isic.c
i4b_isicbchan.c -> isic_bchan.c
i4b_isicl1.c -> isic_l1.c
i4b_isicl1.h -> isic_l1.h
i4b_isicl1fsm.c -> isic_l1fsm.c
2001-02-20 22:24:31 +00:00
mjacob 1c40195bea Add ISPCTL_RUN_MBOXCMD control op and ISPASYNC_UNHANDLED_RESPONSE async event. 2001-02-20 01:11:35 +00:00
mjacob 3f7d69fe2c Add ISPCTL_RUN_MBOXCMD control function and ISPASYNC_UNHANDLED_RESPONSE
async event. Call ISP_DUMPREGS on f/w erro. Correct problem in bitmap
for MBOX_DUMP_RAM.
2001-02-20 01:10:50 +00:00
taca 47e672bfdc Add mlxvar.h as include files to install. 2001-02-18 14:17:45 +00:00
thorpej 4027cab9ea Support for the MII on the D-Link DL10019/DL10022 NE2000-compatible
Ethernet chips.
2001-02-13 01:43:02 +00:00
mjacob a898cb6cb0 Eliminate ISP2100_FABRIC- we always allow for fabric now. Add an
isp_iid_set/isp_iid for fibre channel- this is because we now
fake a port database entry for ourselves. Add the additional loop
states between LOOP_PDB_RCVD and LOOP_READY.

Change and comment on a wad of Fibre Channel isp_control functions.
Change and comment on some of the ISPASYNC Fibre Channel events.

Add was_fabric_dev/fabric_dev tags to our local FC database structure
(so we can see rapidly whether something was a fabric device but is
now gone).

Add a tag which says what role this adapter should take. It can take
on the value of None, Target, Initiator or Both. None is useful for
warm failover purposes. Remove the ISP_CFG_NOINIT silliness since
a role of "None" does this.

Add a isp_lastmbxcmd tag to store the opcode for the last mailbox
command used.
2001-02-12 23:33:49 +00:00
mjacob b01ecfe65c Put in offset definitions for FPM and FBM registers, plus just enough
bits defined so we can reset them.
2001-02-12 23:33:11 +00:00
mjacob a86729db93 Add structure defining FC-AL position maps. The only tool that I know of
that really uses this is luxadm(8) under Solaris.
2001-02-12 23:32:44 +00:00
mjacob 4409fa23b2 Remove ISP2100_FABRIC (we're always fabric now). Fix usage of isp_lastmbxcmd
to report the mailbox command that times out. Fix isp_unswizzle_sns_rsp
which for reasons *I* find obscurer just doesn't work correctly on sparc64
with words past 128. I have no idea why this *does* work on SparcLinux.
2001-02-12 23:32:11 +00:00
mjacob 25bc760687 Do some cleanup based upon adapter role- mainly not enabling interrupts
if we're ISP_ROLE_NONE. Change ISPASYNC_LOGGED_INOUT to ISPASYNC_PROMENADE.
Make sure we note if something is a fabric device.
2001-02-12 23:30:12 +00:00
mjacob d9696b793a Add isp_fc_runstate function- this function's purpose is to, in stages,
and depending on role, make sure link is up, scan the fabric (if we're
connected to a fabric), scan the local loop (if appropriate), merge
the results into the local port database then, check once again
to make sure we have f/w at FW_READY state and the the loopstate
is LOOP_READY.
2001-02-12 23:29:26 +00:00
mjacob 85b0326ec6 Minor stuff:
Remove ISP2100_FABRIC defines- we always handle fabric now. Insert
isp_getmap helper function (for getting Loop Position map). Make
sure we (for our own benefit) mark req_state_flags with RQSF_GOT_SENSE
for Fibre Channel if we got sense data- the !*$)!*$)~*$)*$ Qlogic
f/w doesn't do so. Add ISPCTL_SCAN_FABRIC, ISPCTL_SCAN_LOOP, ISPCTL_SEND_LIP,
and ISPCTL_GET_POSMAP isp_control functions. Correctly send async notifications
upstream for changes in the name server, changes in the port database, and
f/w crashes. Correctly set topology when we get a ASYNC_PTPMODE event.

When resetting the Qlogic 2X00 units, reset the FPM (Fibre Protocol
Module) and FBM (Fibre Buffer Modules). Also remember to clear the
semaphore registers. Tell the RISC processor to not halt on FPM
parity errors.


Finally, use a new tag in the softc to store the opcode for the
last mailbox command used so we can report which opcode timed
out.

Major stuff:
Quite massively redo how we handle Loop events- we've now added several
intermediate states between LOOP_PDB_RCVD and LOOP_READY. This allows us
a lot finer control about how we scan fabric, whether we go further
than scanning fabric, how we look at the local loop, and whether we
merge entries at the level or not. This is the next to last step for
moving managing loop state out of the core module entirely (whereupon
loop && fabric events will simply freeze the command queue and a thread
will run to figure out what's changed and *it* will re-enable the queu).
This fine amount of control also gets us closer to having an external
policy engine decide which fabric devices we really want to log into.

Throw out the ISP_CFG_NOINIT silliness and instead go to the use of
adapter 'roles' to see whether one completes initialization or not
(mostly for Fibre Channel). The ultimate intent, btw, of all of this
is to have a warm standby adapter for failover reasons.  Because
we do roles now, setting of Target Capable Class 3 service parameters
in the ICB for the 2x00 cards reflects from role. Also, in isp_start,
if we're not supporting an initiator role, we bounce outgoing commands
with a Selection Timeout error. Also clean out the TOGGLE_TMODE
goop for FC- there is no toggling of target mode like there is
for parallel SCSI cards.

Do more cleanup with respect to using target ids 0..125 in F-port
topologies. Also keep track of things which *were* fabric devices
so that when you rescan the fabric you can notify the outer layers
when fabric devices go away.

Only force a LOGOUT for fabric devices if they're still logged in
(i.e., you cat their Port Database entry. Clean up the Get All Next
scanning.
2001-02-12 23:28:50 +00:00
ad 469b91fce0 Don't put the request onto the `worklist' in ccb_submit(), since it may
still be on the pending queue.
2001-02-12 19:04:35 +00:00
thorpej ec0ab7054b Add a "stop_card", which is the opposite of "init_card", and
call it from dp8390_stop().
2001-02-12 18:56:26 +00:00
thorpej b17ef220b5 Print the Ethernet address before attaching media. 2001-02-12 18:52:22 +00:00
thorpej 043e519d55 Adjust the way that media is initialized on DP8390-compatible
chips.  The dp8390_softc now has media_init and media_fini
function pointers that do the work.
2001-02-12 18:49:03 +00:00
hpeyerl 2dcf59c673 Fix for kern/12114 and kern/12158 Advansys DMA errors.
Reported by Bob Bernstein who heard from Kenneth Westerback that this
might be the problem.  Tested by HP.
2001-02-11 23:40:03 +00:00
bouyer 0653304779 Avoid sending new commands to the device if it has sense pending:
- run request sense command without disconnect
- don't restart the script before siop_scsicmd_end has been called if the
  cmd didn't complete with good status.
- reserve slot 0 for request sense, to make sure it'll be sent first.
2001-02-11 18:04:49 +00:00
thorpej 21096fc86d Include MII glue here -- some DP8390-compatible chips have MII
interfaces on them (scary, eh?)
2001-02-10 17:18:02 +00:00
thorpej 72d4eea6ef Register definitions for the D-Link DL10019 and DL10022 Ethernet
chips.  These are NE2000-compatible chips with an MII interface
on them for media.
2001-02-10 16:41:40 +00:00
thorpej ef958d8898 Add a type for the DL10022. 2001-02-10 16:09:55 +00:00
ad 77c450a230 Squash some nits. 2001-02-06 12:53:48 +00:00
chs 09cb38f22b expose the definitions of MIN() and MAX() in sys/param.h to the kernel
and use those in favor of a dozen copies scattered around the source tree.
2001-02-05 10:42:40 +00:00
enami 5760375275 Include uvm/uvm_extern.h to pull in the definition of PAGE_SIZE. 2001-02-05 04:50:27 +00:00
ad 8d75ab98d3 Add a driver for the Mylex DAC960 family (including DEC SWXCR). 2001-02-04 17:05:11 +00:00
thorpej 311479928a Rework the transmit logic. Use a "free" and "dirty" list of
transmit jobs.  The previous logic occasionally, under heavy
load, would attempt to sync and unload DMA maps that weren't
currently in use, and also occasionally leaked mbufs under
heavy load.

Yay, NFS now works pretty well on my Dreamcast.
2001-02-02 04:34:19 +00:00
thorpej bf8be41116 Put the rx buf pointer into the softc directly. 2001-02-02 03:51:51 +00:00
thorpej 84b5bb2f1b Fix a bug in ring-buffer wrap calculation. On the Dreamcast,
it causes assertions to fail in the PCI bounce buffer code.  On
other platforms, it causes the address of the next packet to
be mis-calculated, leading to packet loss.
2001-02-01 04:45:17 +00:00
thorpej 3c0c1146ac Use a 16K receive buffer on the SEGA Dreamcast (XXX should be
done differently than it is).
2001-01-31 07:44:51 +00:00
thorpej 9710d432c2 Power management support for the CardBus Etherlink XL cards.
From Masanori Kanaoka <kanaoka@ann.hi-ho.ne.jp>.
2001-01-30 19:27:39 +00:00
enami 2c218a4926 Handle allmulti case correctly as a NetBSD network driver;
if we are requested range of multicast address or too many multicast address,
program multicast filter to receive all multicast address.   And set/clear
IFF_ALLMULTI flag properly.
2001-01-29 01:24:42 +00:00
bouyer 22189b442b Add a few siop_table_sync() calls. 2001-01-26 22:00:01 +00:00
bouyer 05b5119cdf Fix a 4 byte ovferflow in an array:
resel[sizeof(load_dsa) / sizeof(load_dsa[0])] is 25, not 24.
2001-01-26 21:58:56 +00:00
bjh21 fe3273fbb4 Patch from PR kern/8001, submitted by Rafal Boni.
This adds support for EtherExpress/16 cards with 16k of RAM, and in the
process adds general support for PIO mode on these cards.  This entails
changing the way the i82586 driver handles bus barriers, since it doesn't
allow for strange cases like this.

This has been tested on the i386 port with the 'ix' driver in both
16KB (which was the source of the problem) and 32KB modes, as well
as with the 'ef' driver.  I've tested it (briefly) with 'ei' on arm26
as well.  In theory, drivers other than 'ix' should follow precisely the
same code paths as before.
2001-01-22 22:28:43 +00:00
jdolecek 9e7736f1dc make patches[] const 2001-01-22 14:30:43 +00:00
mycroft f2d987f8a4 Force certain commands (i.e. DVD authentication) to PIO mode. They are
explicitly not supported in DMA mode, and generally return an `illegal field
in CDB' error.
This should have been done ages ago.
2001-01-22 07:00:39 +00:00
thorpej 3966e66ec8 Untangle some spl-spaghetti in cy_modem_control(). 2001-01-21 16:55:10 +00:00
thorpej 13ad8f5ba7 Pack the minor numbers like the Cyclades-Z driver does, and
make the dialout bit compatible with the other serial drivers
(and with what MAKEDEV generates for dtyCYxxx).
2001-01-20 19:29:05 +00:00
lukem 1d15673dae consistently use FE_DEBUG (DEBUG was used a couple of places where it
was obvious that FE_DEBUG should have been used instead)
2001-01-20 07:31:00 +00:00
thorpej c38c39fc9b Only need to pass a cy_softc * to cy_attach(). 2001-01-20 02:26:39 +00:00
thorpej 44ff75e3c5 ANSI'ify. 2001-01-20 02:24:16 +00:00
thorpej a0f7017e2e Clean up the PCI attachment a bit, and adjust the other pieces
to suit.
2001-01-20 02:15:01 +00:00
eeh 905ef1b7fa Use the SCSIACCEL ioctl() to turn on TAG QUEUEs. 2001-01-19 23:04:23 +00:00
martin 0f589a40df Nuke all uses of splimp() in the isdn subsystem, replace by splnet(). 2001-01-19 12:44:44 +00:00
jdolecek 34c8ae80da constify 2001-01-18 20:28:15 +00:00