NetBSD/sys/dev/ata
mycroft f9d629fb93 Fix more probe delay and/or failure problems:
1) Don't wait for DRQ on an IDENTIFY command -- if it's not set when we see
   BSY clear, abort the command and ignore the drive.  (Do this by testing
   for DRQ in the read/write cases in __wdccommand_intr().)
2) Don't wait for DRQ to deassert when we finish an IDENTIFY (or any other
   non-block command that reads data) -- we don't do this for block I/O, and
   empirically it doesn't clear on my CF cards at all, causing a pointless 1s
   delay.
3) Add comments to some of the delay()s, and add missing ones in wdcreset()
   and the WDCC_RECAL in the so-called "pre-ATA" probe.
4) Slightly simplify the reset sequence -- we were doing an extra I/O.
5) Modify the register writability test to make sure that registers are not
   overlapped -- this can happen in some weird cases with a missing device 1.
6) Check the error register value after the reset -- if it's not 01h or 81h,
   as appropriate (see ATA spec), punt.
Tested with a number of ATA-only, ATAPI-only, mixed ATA-ATAPI, CF, and IDE
disk configurations.

Also remove the SINGLE_DRIVE nonsense again.
2003-09-23 09:19:22 +00:00
..
Makefile
ata.c Fix more probe delay and/or failure problems: 2003-09-23 09:19:22 +00:00
ata_raid.c add missing __KERNEL_RCSID() 2003-07-14 15:47:00 +00:00
ata_raid_promise.c add missing __KERNEL_RCSID() 2003-07-14 15:47:00 +00:00
ata_raidreg.h
ata_raidvar.h
ata_wdc.c Make DMA mode works on Promise Ultra66/100 with 48-bit LBA drives. 2003-04-28 05:20:29 +00:00
atareg.h Additional definitions as per SATA specifications. 2003-09-23 03:55:59 +00:00
atavar.h function prototype must not have variable name 2003-07-08 10:06:28 +00:00
files.ata
ld_ataraid.c add missing __KERNEL_RCSID() 2003-07-14 15:47:00 +00:00
wd.c 1) Use config_interrupts() to attach IDE and ATAPI drives. This eliminates 2003-09-19 21:35:56 +00:00
wdvar.h Implement (and document!) "dkctl <dev> badsector .." to `manage' the bad 2003-04-15 18:27:26 +00:00