mycroft
119f3ea688
Various:
...
Put WDF_ERROR in the wdc_softc, to avoid gratuitously forcing non-active drives
into single-sector mode on the next transfer. Arrange to wait for an interrupt
after wdsetctlr(); this avoids long busy-wait delays, and gets rid of the
`extra interrupt' messages (except for one immediately after autoconfig on some
machines). Replace some uses of wdsetctlr() with simply lowering wd->sc_state;
no point in forcing this immediately. Allow control operations to time out.
Enable the warnings for long busy-wait delays by default. Some other minor
things not worth mentioning.
1994-03-11 23:29:12 +00:00
mycroft
99dbc0692d
Add a heuristic for detecting old config(8)s. This is very temporary.
1994-03-10 22:30:06 +00:00
mycroft
390f5990bb
Now that the disk probe routines are actually called, they need to return
...
something.
1994-03-10 21:52:07 +00:00
mycroft
0c19458c6f
More updates for new config.
1994-03-10 20:05:30 +00:00
mycroft
aa45779df7
Update for new config.
1994-03-10 19:57:20 +00:00
mycroft
e4102b8797
Cleanup to fit standard coding conventions, and *many* bugs fixed.
1994-03-10 05:18:33 +00:00
mycroft
5a17003403
Some changes inspired by Bruce Evans's driver:
...
Consolidate error reporting in one function. Actually use the dk_status and
dk_error fields, and pass around only the error bit to avoid lots of unneeded
assignments and tests. No functional differences.
1994-03-07 05:54:44 +00:00
mycroft
991225bfc8
Remove DKFL_QUIET.
1994-03-07 03:18:35 +00:00
mycroft
0c082bcaf8
DELAY() --> delay(). This is not a macro.
1994-03-06 17:18:43 +00:00
mycroft
87ed28e74e
Move the drive select and various other things into wdcommand(), to avoid
...
duplicating code.
1994-03-05 08:17:06 +00:00
mycroft
3e02952c52
Make sure we clear the interrupt when necessary. Why this isn't needed on
...
my hardware is a mystery.
1994-03-04 23:43:14 +00:00
mycroft
652712272f
Add another missing splx().
1994-03-04 17:51:10 +00:00
mycroft
0f92f76ceb
Remember to splx() on some error conditions.
1994-03-04 17:45:22 +00:00
mycroft
ef3c1bf7e6
Start the timeout loop *after* we've decided there is a disk there.
1994-03-04 04:15:24 +00:00
mycroft
220512c2a8
De-ANSIfy. Move the timeout counter into struct disk. Remove unneeded args
...
to wd[gs]etctlr(). Other minor changes.
1994-03-04 03:43:48 +00:00
mycroft
fa396ad402
Watch `seek complete' bit per IBM documentation. Clean up wdioctl(). Other
...
minor cleanup.
1994-03-03 01:58:21 +00:00
mycroft
7b734f94ec
Be more careful about clearing the controller and drive active flags.
1994-03-02 23:27:13 +00:00
mycroft
21118b1bc4
Don't busy-wait for read or write completion.
1994-03-02 22:07:00 +00:00
mycroft
e9326b3ba7
Make wdc_wait() do an implicit wait_for_unbusy(). Pass structure pointers
...
rahter than unit numbers where appropriate. Fix conflict if two drives have
I/O pending at the same time. Add some more sanity checks. Some other minor
cleanup.
1994-03-02 21:42:31 +00:00
mycroft
8ba740e6ab
Get the residual count right.
1994-02-26 19:49:25 +00:00
mycroft
060ee7dbab
Clean up busy-wait code a little, and we need a special disksort() to skip
...
over bufs in a combined transfer.
1994-02-26 19:00:51 +00:00
mycroft
969cea2357
Fix bug from 1.43 correctly.
1994-02-26 17:59:46 +00:00
mycroft
4299a2baec
Fix typo.
1994-02-26 17:13:44 +00:00
mycroft
aeae0fd5e3
Various cleanup, and fix last night's bug.
1994-02-26 17:10:12 +00:00
mycroft
fa83b6f469
Fix typo.
1994-02-26 00:08:01 +00:00
mycroft
a7cdc040ec
Some more stylistic cleanup.
1994-02-26 00:00:17 +00:00
mycroft
7f6bce365b
Fix an obvious bug that could stall the queue.
1994-02-25 18:30:37 +00:00
mycroft
2c3b28e0f9
Remove some redundant code.
1994-02-25 18:17:30 +00:00
mycroft
7e6ee0b562
Increase polling delay.
1994-02-25 18:08:21 +00:00
mycroft
9091e07409
Generalize busy-wait loops.
1994-02-25 17:45:28 +00:00
mycroft
faf08f7262
Don't bother #ifdefing things that are needed and always enabled.
1994-02-25 16:54:41 +00:00
mycroft
f6cee22427
Don't reimplement disksort().
1994-02-25 16:43:48 +00:00
mycroft
373782a3af
`We are the KNF. You will be assimilated.'
1994-02-25 16:40:47 +00:00
mycroft
2f62d06c05
Back pointers are not useful for disksort().
1994-02-10 15:17:34 +00:00
mycroft
bbb3e7618c
All ioctl routines take a struct proc * now.
1994-02-09 21:06:46 +00:00
mycroft
57892d4faf
Remove another use of b_actl.
1994-02-06 17:39:48 +00:00
mycroft
adeebc448e
Use b_actf, not av_forw.
1994-02-06 10:00:30 +00:00
mycroft
664f968d53
Inline all the [lr]cr[023]() `functions' in cpufunc.h.
1994-01-03 16:23:06 +00:00
mycroft
c0e772492e
Inline all the [lr]cr[023]() `functions' in cpufunc.h.
1994-01-03 16:21:48 +00:00
ws
778a3db3d0
Correct dumping to WD (was destroyed by MACHINE_NONCONTIG code)
1993-12-24 13:56:14 +00:00
mycroft
f2a0b4b335
Canonicalize all #includes, and add pio.h where appropriate.
1993-12-20 09:05:17 +00:00
mycroft
8ab45ada42
Eliminate reference to Maxmem.
1993-12-16 20:22:56 +00:00
cgd
55a9a547a2
from Soeren Schmidt <sos@login.dkuug.dk>:
...
Basically it does a timeout on lost interrupts, starting the operation
again and logging and error message on the console.
additionally fixes some of the (newer ending) while loops
(that made it work with two IDE disks !)
1993-12-13 10:16:56 +00:00
mycroft
4862b84c92
Add RCS identifiers (this time on the correct side of the branch), and
...
incorporate recent changes in netbsd-0-9 branch.
1993-08-01 19:22:24 +00:00
cgd
7b2afa7fe6
incorporate changes from 0-9-base to 0-9-ALPHA
1993-07-28 02:20:34 +00:00
deraadt
80dc38edb3
documentation error
1993-07-08 08:22:17 +00:00
deraadt
9bff90a5c1
added a timeout debugging mode to wd.c so that people can see how slow
...
their controllers really are. Look for the WDCNDELAY_DEBUG definition.
1993-07-07 05:50:35 +00:00
deraadt
d670635e8b
ok, 5 second command timeouts..
1993-07-07 01:05:42 +00:00
deraadt
86999439b2
number of changes:
...
1. controller reset code moved into one function, called from more places now.
2. more places now do timeouts. TIPCAT code turned on.
3. blew away the unused WDOPENLOCK test code.
4. delay is now done using WDCNDELAY repetitions of DELAY(25). Up to 2.5 second
pause accepted from controller (some controllers have some commands that are
actually this slow)
5. some of the old timeout code was really whacked.
1993-07-06 00:42:43 +00:00
deraadt
2cb34d6d65
added a missing {/} pair that barsoom seems to have taken out, but
...
which the standard 386bsd 0.1 driver did have. This is for a piece of
code in the bad block handling. found/fixed by hpeyerl.
1993-07-05 04:44:48 +00:00
deraadt
3322c7b691
all timeout code now calls DELAY() so the timeout delays are the same
...
length on all processors. Where possible, the controller is reset if it
times out.
1993-07-05 03:20:57 +00:00
deraadt
ed61b76822
increased the timeout inside wdcommand(). Some controllers impliment some
...
commands very slowly.
1993-07-05 00:08:27 +00:00
cgd
d1ed63195d
fix the divide-by-zero problem w/old disks. this patch is ws's "fault."
1993-06-18 20:45:35 +00:00
deraadt
2adecf84f6
1. It is now possible to build a kernel that does not have a pc0 device driver.
...
2. "press any key to reboot" reads the key from the console.
3. wddump() still needs a non-blocking getc() routine (or flush)
1993-05-28 09:10:52 +00:00
cgd
30177b538f
add rcsids to everything and clean up headers
1993-05-22 07:56:12 +00:00
deraadt
e34f239662
First cut at cpu independent disklabels.
...
There will be niggly little details no doubt..
1993-05-20 22:48:23 +00:00
deraadt
545cc18754
This patch allows the wd device driver to tell how big the disks are on
...
WD1007-derived controllers. In this example, wdc0 is a WD1007-clone,
and wdc1 is a WD1003-clone. WD1007 controllers are generally ESDI
and IDE controllers.
wdc0 at 0x1f0-0x1f7 irq 14 on isa
wd0 at wdc0 targ 0: 322MB 1224 cyl, 15 head, 36 sec <disktype>
wdc1 at 0x170-0x17f irq 7 on isa
wd2 at wdc1 targ 0: (unknown size) <disktype>
1993-05-10 05:53:22 +00:00
deraadt
5ae997897e
i thought i deleted this line before!
1993-05-09 04:25:48 +00:00
deraadt
a0bcb17e60
support for making dev->id_alive be set, this is for iostat to
...
find disk devices. wee bit of a kludge. sub-device attach()
routines must now return 1 for successful attach(), 0 otherwise.
Other bsd's do this too..
1993-05-04 08:27:29 +00:00
deraadt
e2a9eb19a4
slight code quality improvement. not related to the bug with very
...
old controllers or disks! :-)
1993-04-18 10:03:20 +00:00
deraadt
fbecd3e987
Once more: some changes to the ioconf.c structure. It will now handle
...
devices hanging off controllers, any kind of controller.
A device on isa0 is called at probe(self), then attach(self)
A controller on isa0 is called at probe(self), then all it's children with
defined unit numbers are initialized by calling attach(subdev); next all
subdevices with unit ? are initialized by calling attach(sundev).
Almost all device entry points is now like the vax/sun model (intr being
the weird one)
1993-04-15 07:52:08 +00:00
deraadt
bf6814fb30
wd driver would fail on calling wdgetctlr() for older drives and
...
controllers. New behaviour is that if the standard method fails, try
to recalibrate the drive. Success means the drive exists. patch by
hpeyerl@novatel.cuc.ab.ca (who owns several of these historical
artifacts)
1993-04-15 06:39:00 +00:00
deraadt
f262b564a2
new scsi subsystem.
...
changes also in config/mkioconf.c & sys/scsi/*
1993-04-12 08:17:23 +00:00
cgd
c2176edbac
have probe return size of io space on successful return, rather
...
than simply 1.
1993-04-09 16:25:07 +00:00
deraadt
b9bd4b25de
dmesg output at boottime now tries to print out information as
...
soon as it is available. The output looks much more like Sunos.
1993-04-08 08:26:46 +00:00
deraadt
a2b4863160
ripped out a message
1993-04-06 12:09:55 +00:00
deraadt
9b67a6d7ad
Mod-barsoom wd additions. config program + kernel config files changed too.
...
fd support had to change slightly too.
1993-04-06 10:06:28 +00:00
cgd
e541169ce2
after 0.2.2 "stable" patches applied
1993-03-21 18:04:42 +00:00
cgd
61f282557f
initial import of 386bsd-0.1 sources
1993-03-21 09:45:37 +00:00