Commit Graph

768 Commits

Author SHA1 Message Date
mycroft
f0d8cbb1cb Don't wait for the host adapter to be idle before enabling or disabling
mailbox out interrupts.
1996-04-03 08:48:46 +00:00
mycroft
d0742ed3c5 Several things:
1) If we get an unexpected disconnect, issue a REQUEST SENSE, as recommended
by the SCSI-2 spec.  If the target created a contingent allegiance condition,
this will clear it.  Also, if it happened while sending a SDTR or WDTR message,
disable negotiation for that target.
2) Since some lame devices still don't deal correctly, make sure we deassert
ATN if our last message out is interrupted.  If we get a MESSAGE PARITY ERROR,
we'll reassert ATN anyway.  This should ensure that we never have to send a
MESSAGE NO OPERATION.
3) Set AIC_ABORTING only when actually sending a BUS DEVICE RESET or ABORT,
so we get better error detection.
4) Other internal reorganization of no consequence.
1996-04-01 07:24:37 +00:00
jtk
55960650f7 add include file for function prototypes 1996-03-31 22:50:11 +00:00
mycroft
004f5e8d39 Fix a slight biff with 16-bit DMA in last change. 1996-03-31 20:51:43 +00:00
mycroft
778f21db6a Use `{in.out}b(iobase + ...' rather than including the base address in
the register definitions.
1996-03-30 16:13:24 +00:00
mycroft
72f4fb5692 Fix return type of wds_sense(). 1996-03-30 07:40:11 +00:00
mycroft
78681855e4 This version is deprecated. 1996-03-30 05:36:32 +00:00
mycroft
59e1daefcd Working WD7000 and TMC-7000 driver, from Julian Highfield, with additional work by me.
Needs some refinement, but it works.
1996-03-29 20:53:30 +00:00
mycroft
44baed59ef Fix the mailbox unlock code for CF and CP. 1996-03-28 18:19:05 +00:00
cgd
dbdbd735b8 Update these (as minimally as possible) to work with new PCI interfaces:
(1) make pci functions take as an argument a machine-dependent
	    cookie, to allow more flexibility in implementation.
(use of other PCI functions, etc., left unchanged.)
1996-03-27 04:03:05 +00:00
mycroft
8d60d04ffa Remove dead variables. 1996-03-25 07:11:12 +00:00
mycroft
3ab38e9ad4 Display the right sync period for fast devices. 1996-03-25 00:18:09 +00:00
mycroft
dac7f9a885 Fix up a couple of printf()s. 1996-03-24 22:23:56 +00:00
mycroft
e2f1ed6ef2 Various, including:
* Display as much revision info as we can get.
* Fix a race condition that could cause interrupts to be lost.
* Handle `out of mailbox' conditions (much) more gracefully.
* Schedule timeouts more safely.
* Add diagnostic code to (correctly) detect if a CCB times out before its
outgoing mailbox is emptied.
1996-03-24 22:20:41 +00:00
mycroft
78de5226a1 lto3b -> _lto3b 1996-03-19 03:28:45 +00:00
cgd
b55176ea0c since this driver tries to block its interrupt with spltty(), it must
attach that interrupt with IPL_TTY.
1996-03-18 09:14:32 +00:00
cgd
b5c1728e22 clean up <machine/bus.h> changes a bit; no real functional change.
prototype lpt_port_test().
1996-03-17 13:40:29 +00:00
cgd
179f65d15e Add #ifdef's at the right places, on NCOM_ISA and NCOM_COMMULTI, to
only include the relevant code in the probe & attach functions.  Still
one probe and one attach function, with #ifdefs, but this is a step
in the right direction and saves a few hundred bytes (ooh, ahh!).
1996-03-17 13:38:14 +00:00
cgd
94907fa254 adjust to deal with expression support for optional file specs 1996-03-17 13:21:09 +00:00
cgd
9d4db41a9f change the name of com's attachment to commulti, and provide flags
for that and the isa attachment in com.h (in addition to the flag for
the presence of 'com' itself).
1996-03-17 07:30:25 +00:00
thorpej
de7c200585 New device attachment scheme:
- split softc size and match/attach out from cfdriver into
	  a new struct cfattach.

	- new "attach" directive for files.*.  May specify the name of
	  the cfattach structure, so that devices may be easily attached
	  to parents with different autoconfiguration semantics.
1996-03-17 00:53:54 +00:00
thorpej
6d9ea4cf59 New device attachment scheme:
- split softc size and match/attach out from cfdriver into
	  a new struct cfattach.

	- new "attach" directive for files.*.  May specify the name of
	  the cfattach structure, so that devices may be easily attached
	  to parents with different autoconfiguration semantics.
1996-03-17 00:43:52 +00:00
cgd
9f762df4e4 clean up a comment, delete unnecessary local variable in probe 1996-03-17 00:26:12 +00:00
cgd
88b335392c rename asic_addr and nic_addr to asic_base and nic_base, in softc, as
they're base I/O ports, not really addresses.  rather than using those
softc fields directly, assign local variables (asicbase, nicbase) to have
their values, and use those.  (consistency, plus better optimization
potential in some cases.)
1996-03-16 07:24:15 +00:00
cgd
87abc9cdc7 Move contents of edprobe() into ed_find() -- they'll be used by edattach()
eventually.  rename the probe functions for the various boards to 'find' for
consistency/correctness (but the generic8390 check is still a 'probe').
Add protos for ed_find(), ed_probe_generic8390(), ed_find_WD80x3(),
ed_find_3Com(), and ed_find_Novell().  Fix one minor space nit.
1996-03-16 06:41:20 +00:00
cgd
4beac8eab6 convert NIC_GET and NIC_PUT to take NIC base port address, rather than softc. 1996-03-16 06:18:39 +00:00
cgd
f3bac4c1fb print out hardware type, and print firmware version more precisely.
Information about structures & commands to do this gleaned from
the FreeBSD bt driver.
1996-03-16 05:33:28 +00:00
cgd
c3361cbc2c prototype bt_cmd(), using varargs/stdarg (ooh, ahh!). Fix up resulting
pointer warnings.
1996-03-16 04:37:40 +00:00
jtk
8b3873367f add MediaVision Jazz16 chipset support. It must be configured with
'flags 1' on the sb? kernel configuration file line (because it frobs a
noncontiguous IO port to configure the Jazz16 extensions).

Also, remove static sb_device structure and fill in user's buffer on
each request.
1996-03-16 04:00:09 +00:00
cgd
76f1f884eb convert to not assume existence of softc at probe time. 1996-03-16 03:20:25 +00:00
cgd
8b404fdede A foolish consistency... General cleanup: get rid of spaces and tabs at
ends of lines, turn aligned blocks of eight spaces into tabs, name all
softc elements with the "sc_" prefix, and call the softc by the commonly
used name, "sc", when passing it around.
1996-03-16 02:54:27 +00:00
cgd
6668fa09a3 Change register definitions to be offset from the I/O base, rather than
complete I/O addresses.  Access ports via "iobase + REGISTER."
1996-03-16 02:02:54 +00:00
cgd
2b96f0705b delete unused cruft (the 'software conventions' chunk). 1996-03-16 02:00:43 +00:00
cgd
85286bff2f convert these to use new <machine/bus.h> interfaces. This involved
substantial reworking of the multi-port drivers, as they need to frob
bits in the io-port spaces of their children.  As a result, the
commulti->com attachment interface is substantially more complex.
(This may be fixable in the future by making some of the code common,
but as long as io-port allocation checking is planned, it's necessary.)
1996-03-10 09:01:20 +00:00
cgd
5bfb840114 Fix copyright year 1996-03-09 23:37:14 +00:00
cgd
85288c6a61 Include comvar.h, for comprobe1() prototype and for commulti_attach_args.
Remove multiple identical definitions for the arg struct used by multiport
boards' to attach slave com ports.
1996-03-09 01:03:59 +00:00
cgd
a7c6dfe1cd include comvar.h for comprobe1() prototype 1996-03-09 01:02:08 +00:00
cgd
56edbfc4f9 define the common structure used to attach 'com' units as slaves to
multiport cards.  prototype comprobe1(), which is used by multiport card
drivers.
1996-03-09 01:01:33 +00:00
cgd
645d83b763 minor cleanup. mostly: use COM_NPORTS and a new (driver-specific) NSLAVES
macro where appropriate.  No point in hard-coding numbers in multiple places.
At the very least, this makes the drivers slightly easier to diff/understand.
1996-03-09 00:09:04 +00:00
cgd
2c11ad408c convert to use I/O mapping/access macros in <machine/bus.h>.
Mostly mechanical changes, except for probe/attach, which have
to map (and, in the case of probe, unmap) the I/O space that the
chip will use.
1996-03-08 22:17:58 +00:00
cgd
b1d3f7607c remember the bus_chipset_tag_t given by our parent, and pass it on to
children.
1996-03-08 20:36:21 +00:00
cgd
5087096150 pass a bus_chipset_tag_t (defined in <machine/bus.h>) to the bus when
attaching, and to the devices when attaching them.  #include <machine/bus.h>
to make this backward compatible with old #include requirements.
Also, clean up idempotency so that isa/eisa/pci "var.h" headers are
consistent (make them all idempotent).
1996-03-08 20:25:22 +00:00
cgd
acabb62791 the i386 port no longer attaches isa, eisa, and pci at root. 1996-03-04 03:29:12 +00:00
mycroft
d8026ad9ef Oops; switched two bits. 1996-03-01 04:35:27 +00:00
mycroft
f3b29ca5d2 Remove two unneeded `if's. 1996-03-01 04:13:25 +00:00
mycroft
546ad9e88b Add support to the ISA DMA framework for auto-initialize mode.
Add experimental SB16 code, disabled for now.
1996-03-01 04:08:13 +00:00
cgd
3ca5707161 make ISA bus match/attach, and sub-device configuration machine-independent. 1996-02-28 01:43:45 +00:00
scottr
4005c5fd09 Fix typo (PR 2123, from Michael VanLoon) 1996-02-26 22:48:32 +00:00
mycroft
40d57df71a Switch byte order of ID and configuration registers for 14f and 34f. 1996-02-24 05:27:49 +00:00
mycroft
3ec5928403 Keep the terminal count information around, as it's self-clearing. 1996-02-22 06:21:48 +00:00