Commit Graph

1939 Commits

Author SHA1 Message Date
jmc
36d8e99d14 Cast args correctly to match format strings. 2001-04-30 02:49:04 +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
simonb
4d24d9a940 Regen. 2001-04-25 03:07:19 +00:00
simonb
3e4456d049 Spell "portege" correctly - it's a computer, not a car. 2001-04-25 03:06:11 +00:00
mycroft
ad44e79f90 It appears there's a race condition when disabling a channel that causes us to
need to explicitly relatch the interrupt when firing it up again.  So, in the
trigger routines, explicitly disable and reenable the interrupt to relatch it,
like we do in the interrupt routine.

Also clean up some broken loop overrun checks.

My ES1371 seems to be more reliable now, but I'm not going to pretend to fully
understand this chip.
2001-04-24 21:03:33 +00:00
tsutsui
e53804bd4b Preliminary support for Acard ATP850/860 UDMA PCI IDE controllers.
XXX Currently disabled by default because it has some problems on macppc.
XXX Maybe some more initialization is needed, but there is few information
XXX about the chips.
2001-04-21 16:36:37 +00:00
tsutsui
8dfe3efca7 space -> tab 2001-04-21 16:10:54 +00:00
tsutsui
e815501ea9 Regen from pcidevs rev. 1.318:
> Correct an entry for Acard UDMA IDE controller.
> The chip is actually marked as ATP860-A, not ATP860R.
2001-04-21 13:32:25 +00:00
tsutsui
42f78f411a Correct an entry for Acard UDMA IDE controller.
The chip is actually marked as ATP860-A, not ATP860R.
2001-04-21 13:28:52 +00:00
tacha
109656b0a7 rewrite suspend/resume routine. If you suspend while playing audio,
clcs and clct continue playing when resume.
2001-04-18 01:35:06 +00:00
hubertf
c18a98953b Regen for moved Trident CyberBlade entry 2001-04-13 19:01:28 +00:00
hubertf
1384b9cebc Move the Trident CyberClade entry where it belongs. 2001-04-13 19:00:31 +00:00
thorpej
c5a6653add Use IPL_NET for now -- the only use of 1394 right now is for network
interfaces (IPv{4,6}-over-1394), and this allows us to get rid of
some evil interrupt mixing issues in the 1394 network code right now.
2001-04-12 21:39:31 +00:00
thorpej
909f3d7efb splimp -> splvm (use IPL_IMP needs to be revisited). 2001-04-12 18:18:31 +00:00
itojun
477b193d09 support T1 card (LMC1200) properly. PR 12331 (patch from openbsd).
change DLT type to cisco HDLC, as lmc driver is hardwired to cisco HDLC
on driver attach.  XXX we may need to revisit this, as if_spppsubr may want
to alter this later.
2001-04-12 07:50:54 +00:00
itojun
321e957c86 regen. 2001-04-12 07:47:16 +00:00
itojun
2ce6b3ba60 change symbol for LMC T1 card. part of PR 12331. 2001-04-12 07:46:00 +00:00
matt
bc6820dd0d Regen. 2001-04-12 06:26:49 +00:00
matt
ece3db982d Add UltraSparc IIe PCI interface. 2001-04-12 06:26:20 +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
martin
93c0294b72 Specify the size of the framing added to packets, so if_sppsubr.c can
calculate correct statistics.
2001-04-09 19:34:40 +00:00
ad
a69e2f1310 Regen. 2001-04-09 11:52:27 +00:00
ad
e68e07d62c Add Tekram DC-315/DC-395. 2001-04-09 11:51:30 +00:00
minoura
817c994ead Make this compile on alpha with DIAGNOSTIC.
Thanks to atatat.
2001-04-05 12:36:51 +00:00
ad
87fee883e5 - Allocate any private space thats requested.
- Just use mapreg_map().
2001-04-01 15:06:22 +00:00
rh
ba614ae877 Fix DPRINTF statements so this compiles with debug enabled. 2001-03-31 10:10:37 +00:00
minoura
5e2f81a0cf Regen. 2001-03-31 09:08:06 +00:00
minoura
27fcb60ea5 Add Cyrix products (MediaGX). 2001-03-31 09:06:45 +00:00
ad
30b7c151f0 AEN 0x000c appears to mean `init started'. From lukem. 2001-03-30 16:48:57 +00:00
minoura
28f83415ad Update TODO list. 2001-03-30 15:53:25 +00:00
minoura
537038859e Yamaha YMF724/740/744/754 (DS-1) PCI audio driver. 2001-03-30 14:32:08 +00:00
petrov
ae964a3f9b use NCR_F_DMASELECT instead ncr53c9x_dmaselect 2001-03-29 03:26:52 +00:00
msaitoh
bb73804714 add NetBSD RCS id again 2001-03-28 17:22:51 +00:00
msaitoh
2815a110f3 add NetBSD RCS id 2001-03-28 17:08:29 +00:00
jmc
06fc8b2014 Actually fix fwlynx correctly. Got the right filename this time. 2001-03-25 03:48:36 +00:00
briggs
2dbd96c75c There is no need to accept all ARP packets (regardless of destination
address) on the DP83815.  Noted by Shiva Shenoy <shiva@riverstonenet.com>
in private correspondence.
2001-03-24 19:40:51 +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
christos
3319b05361 There was a stray debugging message "OptionMode = %x\n". Prefix it with
the device name, and enable it only in debugging mode.
2001-03-24 02:04:40 +00:00
soren
1d7d1bd0db Regen. 2001-03-21 18:10:34 +00:00
soren
984c03180f Lower-case a few hex digits for easier searching. 2001-03-21 18:10:13 +00:00
hubertf
b11582be50 regen for trident cyberclade 2001-03-21 01:10:06 +00:00
hubertf
d54969d21f Add Trident CyberBlade as found in Toshiba Satellite Pro 4600 2001-03-21 01:09:36 +00:00
bouyer
66f705d045 Don't set up PDC2xx_SCR the same way for promise Ultra/66 & Ultra/100,
this special setup seems to break some adapters.
Reported by Kazushi Marukawa.
2001-03-20 17:56:46 +00:00
bouyer
df43ec1064 Add BUS_DMA_STREAMING for the data bus_dmamap_load(). 2001-03-20 17:54:39 +00:00
ad
056ea0d17a +#include <dev/i2o/iopio.h> 2001-03-20 13:21:00 +00:00
mrg
b10a79d548 regen 2001-03-20 00:41:19 +00:00
mrg
f921de978d add sun device ids found on sunblade1000 systems. 2001-03-20 00:39:12 +00:00
thorpej
79e48a7370 Regen. 2001-03-17 02:26:48 +00:00
thorpej
4628dbd48d Fixup some Intel Gig-E entries. 2001-03-17 02:26:26 +00:00
ross
e10dbcfa2b Sigh.
Revert the revert. Naturally, I considered OpenBSD and FreeBSD when I fixed
the incorrect use of the spl*() interface. The change I made is _required_
for both NetBSD _and_ OpenBSD, or the code won't even COMPILE except on
i386, and it is acceptable on FreeBSD. Your revert and mod rebroke it on
OpenBSD and tangled things up on NetBSD.  It made no difference on FreeBSD.

In particular, there are 2,895 uses of splx() within the FreeBSD kernel,
and only a mere 21, that's "twenty one" uses of intrmask_t, and those are
almost exclusively in the guts of the interrupt implementation, _not_ in
the _use_ of the exported spl*() functions.  It's perfectly OK to `int s
= spltty()' in a portable driver in FreeBSD.

For that matter, FreeBSD (-current at least) does not even *use* spl*()
any more and stubs them all out with inlines that do _nothing_ except return
0, making intrmask_t vs int _even less_ important there than it already
was.

I think it's great that you want to start hacking on the kernel, but do
note that this is certainly the most simple of the kernel interfaces. It
just gets worse from here. Be careful out there!
2001-03-16 19:32:35 +00:00