Age | Commit message (Collapse) | Author |
|
reset function pointer, as this can cause a NULL pointer dereference on
some systems.
|
|
At least one system (Ben Lovett's) had issues with the change.
|
|
SATA drive.
ok grange@
|
|
method to be changed as required.
This will be required for dealing with several chips in pciide.
|
|
ok grange@
|
|
"looks sane" grange@; tested by niall@ krw@ jmc@ jolan@
|
|
|
|
to probe for drives in its own way. It's a no-op for now but will be
needed for native sata support.
|
|
wdcvar.h.
|
|
wdc_exec_xfer().
|
|
1) wdc_get_log is at splbio() to prevent interrupt handlers from
updating the log
2) work hard to ensure that wdc_tail and wdc_head are between 0 and
wdc_log_cap, even if wdc_log or wdc_get_log is run concurrently against
itself. With this patch, running concurrent wdc_log's may corrupt the
log, but it should not cause any panics.
3) Make sure the buffer always starts on a record boundary. Otherwise
said, wdc_tail should always be on a record boundary.
|
|
informative. Also convert WDCS_BITS string to caps.
|
|
|
|
testing status register and a better comments on probe logic.
Tested on i386, sparc64 and macppc by me, jmc@, matthieu@, sturm@ and
drahn@.
ok costa@
|
|
|
|
asserted after BSY is cleared in data read codepath. Solves delays in
probe.
The first version of this diff was done by costa@ a long time ago but
had some issues. This one is a partial sync with NetBSD.
ok costa@
|
|
Spotted by Mr. GCC3.
|
|
Tested on matthieu's U5.
|
|
Tested on matthieu's U5.
|
|
ok deraadt@
|
|
SATA drives really don't like it.
Add a delay between drive reset and issuing IDENTIFY command,
some drives need it (from NetBSD).
This fixes problems with SATA drives reported by
Jonathon Fletcher <jonathon.fletcher@pobox.com>. He also
provided access to the test machine.
|
|
|
|
- put the reset protocol itself in the separate function __wdcdo_reset()
so we don't need anymore to keep in sync two reset code paths;
- change the reset protocol to something like FreeBSD and NetBSD do,
this fixes slave ATA drive detect with weird ATAPI master (reported
by fgsch@);
Discussed with costa@.
Tested by me, fgsch@, millert@, canacar@.
|
|
Tom: I did not commit a couple of your changes.
i did not include some punctuation fixes (full stops, etc.)
mnemorable -> mnemonic: i decided memorable was probably better
instrunctions -> instruction: i kept the plural
|
|
|
|
|
|
- do not stop/unload current DMA operation if an IRQ was not detected
by DMA engine unless the force flag was given, fixes DMA problems
in shared IRQ setups;
- ack interrupt before entering DMA codepath
Tested by many.
Work by niklas@ but he doesn't want to commit it for some reason.
|
|
|
|
This makes creating debug kernels be much more easy.
|
|
|
|
|
|
|
|
done with it. This makes "wdcprobe()" consistent with "wdcattach()".
ok grange@
|
|
ok deraadt@
|
|
devices which only support PIO mode 2 or less. Use
atap_oldpiotiming to obtain supported mode for such devices.
Also use SET FEATURES only for PIO mode > 2.
Work by Alec Skelly <alec@dtkco.com> with my little help.
ok costa@
|
|
ok costa@
|
|
ok costa@
|
|
ok costa@
|
|
ok chris@ gluk@
|
|
|
|
Started by a commit to siop from provos@netbsd.org.
ok miod@ millert@
|
|
this code path is only executed for IOCTLs, and all of our IOCTLs only read
from the device, nobody noticed.
Thanks to grange and gluk for finding this one.
|
|
not really needed, just added to satisfy the assert).
|
|
|
|
Adopted from NetBSD by Alexander Yurchenko <grange@openbsd.ru>.
costa@ ok.
|
|
using atactl <device> dump. The log will help us support more devices.
Send logs to csapuntz@
|
|
|
|
well (not at all) with shortages of the vm_map where the pages are mapped
(usually kmem_map).
Try to deal with it:
- group all information the backend allocator for a pool in a separate
struct. The pool will only have a pointer to that struct.
- change the pool_init API to reflect that.
- link all pools allocating from the same allocator on a linked list.
- Since an allocator is responsible to wait for physical memory it will
only fail (waitok) when it runs out of its backing vm_map, carefully
drain pools using the same allocator so that va space is freed.
(see comments in code for caveats and details).
- change pool_reclaim to return if it actually succeeded to free some
memory, use that information to make draining easier and more efficient.
- get rid of PR_URGENT, noone uses it.
|
|
even if the flags enable it. chris@ ok
|
|
|