03c9df05c6
as described in http://mail-index.netbsd.org/tech-kern/2012/06/23/msg013442.html PMP support in integrated to the atabus layer. struct ata_channel's ch_drive[] is not dynamically allocated, and ch_ndrive (renamed to ch_ndrives) closely reflects the size of the ch_drive[] array. Add helper functions atabus_alloc_drives() and atabus_free_drives() to manage ch_drive[]/ch_ndrives. Add wdc_maxdrives to struct wdc_softc so that bus front-end can specify how much drive they really support (master/slave or single). ata_reset_drive() callback gains a uint32_t *sigp argument which, when not NULL, will contain the signature of the device being reset. While there, some cosmetic changes: - added a drive_type enum to ata_drive_datas, and stop encoding the probed drive type in drive_flags (we were out of drive flags anyway). - rename DRIVE_ATAPIST to DRIVE_ATAPIDSCW to better reflect what this really is - remove ata_channel->ata_drives, it's redundant with the pointer in ata_drive_datas - factor out the interpretation of SATA signatures in sata_interpet_sig() propagate these changes to the ATA HBA drivers, and add support for PMP to ahcisata(4) and siisata(4). Thanks to: - Protocase (http://www.protocase.com/) which provided a system with lots of controllers, SATA PMP and drive slots - Conservation Genomics Laboratory, Department of Biology, New Mexico State University for hosting the above system - Brook Milligan, who set up remote access and has been very responsive when SATA cable move was needed |
||
---|---|---|
.. | ||
acemidi.c | ||
acemidireg.h | ||
dtide.c | ||
dtidereg.h | ||
files.podulebus | ||
hcide.c | ||
hcidereg.h | ||
hcsc.c | ||
hcscreg.h | ||
if_ea.c | ||
if_eareg.h | ||
if_eb.c | ||
if_ebreg.h | ||
if_ei.c | ||
if_eireg.h | ||
Makefile.podules | ||
oak.c | ||
oakreg.h | ||
podule_data.h | ||
podulebus.h | ||
podulelist2h.awk | ||
podules | ||
podules.h | ||
powerromreg.h | ||
sec.c | ||
secreg.h |