Commit Graph

19 Commits

Author SHA1 Message Date
thorpej
4b51cecfc2 - Split the register handles out of struct wdc_channel into a separate
wdc_regs structure, and array of which (indexed per channel) is pointed
  to by struct wdc_softc.
- Move the resulting wdc_channel structure to atavar.h and rename it to
  ata_channel.  Rename the corresponding flags.
- Add a "ch_ndrive" member to struct ata_channel, which indicates the
  maximum number of drives that can be present on the channel.  For now,
  this is always 2.  Add an ATA_MAXDRIVES constant that places an upper
  limit on this value, also currently 2.
2004-08-14 15:08:04 +00:00
thorpej
ab20886f7b Don't bother with bits that tell of the presence of optional callbacks;
just check the function pointers for NULL.
2004-08-13 03:12:59 +00:00
msaitoh
ad99aeca1d Add Adaptec AAR-1210SA serial ATA RAID.
RAID is not supported by this driver.
2004-07-19 17:04:36 +00:00
briggs
e5c5b706bc When the Silicon Image 3112 retries a PCI memory read command, it
may retry it as a memory read multiple command under some circumstances.
This can totally confuse some PCI controllers, so ensure that it
will never do this by making sure that the Read Threshold (FIFO
Read Request Control) field of the FIFO Valid Byte Count and Control
registers for both channels (BA5 offset 0x40 and 0x44) are set to
be at least as large as the cacheline size register (the unit of
measure for these registers is 32 bytes).
2004-06-23 14:40:13 +00:00
thorpej
9eb22bdbc9 Use the common sata_speed() routine. 2004-05-28 23:26:58 +00:00
thorpej
2ecdd552dc Add the notion of "shadow registers" to the wdc driver. These shadow
registers are registers that overlap with others on many controllers, but
which may actually be distinct on some controllers.  Right now, the two
shadows are:

- wd_status (usually overlaps wd_command)
- wd_features (usually overlaps wd_error)

Add a new helper function, wdc_init_shadow_regs(), used to initialize
the shadow register handles on controllers where they do actually overlap.

Partially from Jordan Rhody @ Wasabi Systems, Inc.
2004-05-25 20:42:40 +00:00
sekiya
e9c3c4204d Add support for Silicon Image 3512 chip to satalink driver -- treat it as
a 3112 variant (without RAID support), which does the right thing with the
controller on my K8NNXP.
2004-05-07 13:01:49 +00:00
thorpej
778161fb7f Initialize some importantant members of the drive info structure. (I have
no idea how this worked for me before, but I swear that it did...)

kern/24015.
2004-01-07 22:06:57 +00:00
thorpej
a963286f8d More wdc_channel structure member namespace cleanup:
- channel -> ch_channel
- wdc -> ch_wdc
2004-01-03 22:56:52 +00:00
thorpej
5bd80d8373 Rename "struct channel_softc" to "struct wdc_channel". 2004-01-03 01:50:52 +00:00
thorpej
527c829fa0 Rename:
- wdc_xfer to ata_xfer
- channel_queue to ata_queue
and move them to <dev/ata/atavar.h> so they can be used by non-wdc ATA
controllers.  Clean up the member names of these structures while at it.
2004-01-01 17:18:53 +00:00
martin
c54170031d Include <dev/ata/atareg.h>, so that WDSD_IBM is defined. 2003-12-31 12:46:04 +00:00
thorpej
ed96a1cec2 Move the drive probing code out of atabusconfig() and into a new
wdc_drvprobe() function.  wdc_drvprobe() is used if the controller
does not specify a custom one prior to calling wdcattach().  The
WDC_CAPABILITY_DRVPROBE bit is gone.
2003-12-30 17:18:11 +00:00
thorpej
cbec492f32 Fix a typo. 2003-12-20 06:26:47 +00:00
thorpej
98d14a3f5f Add support for the Silicon Image 3114 SATALink 4-port SATA controller. 2003-12-20 03:51:27 +00:00
thorpej
df5956af24 Use a register map to find the offsets of various per-channel
registers in the BA5 space.
2003-12-19 03:33:52 +00:00
thorpej
1534ca51d1 Remove the notice that was in cmdide.c before SATALink support was split
out.  All of the code in this file was written by me.
2003-12-15 00:37:38 +00:00
thorpej
7fca07b0d8 Use the SControl and SStatus registers to query the SATA PHY for
device detection.
2003-12-15 00:36:23 +00:00
thorpej
98f7d12017 Split out the Silicon Image SATALink support into its own driver,
"satalink".
2003-12-13 23:13:40 +00:00