diff options
author | mav <mav@FreeBSD.org> | 2011-04-21 11:44:16 +0000 |
---|---|---|
committer | mav <mav@FreeBSD.org> | 2011-04-21 11:44:16 +0000 |
commit | 7551e50fbf11c24c32cb72dd676d92530785aad9 (patch) | |
tree | b5061c79dc3906c0ed2c6d9120a99105935be424 /sys/dev/ata | |
parent | f5bcaec9aa31019628ffc1ae4b84f1457e883ef7 (diff) | |
download | FreeBSD-src-7551e50fbf11c24c32cb72dd676d92530785aad9.zip FreeBSD-src-7551e50fbf11c24c32cb72dd676d92530785aad9.tar.gz |
- Fix mapping of the last two SATA ports on 6-port Intel controllers.
This improves hard-reset and hot-plug on these ports.
- Device with ID 0x29218086 is a 2-port variant of ICH9 in legacy mode.
Skip probing for nonexistent slave devices there.
Diffstat (limited to 'sys/dev/ata')
-rw-r--r-- | sys/dev/ata/ata-pci.h | 2 | ||||
-rw-r--r-- | sys/dev/ata/chipsets/ata-intel.c | 4 |
2 files changed, 3 insertions, 3 deletions
diff --git a/sys/dev/ata/ata-pci.h b/sys/dev/ata/ata-pci.h index 101cad5..d4395d6 100644 --- a/sys/dev/ata/ata-pci.h +++ b/sys/dev/ata/ata-pci.h @@ -187,7 +187,7 @@ struct ata_pci_controller { #define ATA_I82801HBM_S2 0x28298086 #define ATA_I82801HBM_S3 0x282a8086 #define ATA_I82801IB_S1 0x29208086 -#define ATA_I82801IB_AH2 0x29218086 +#define ATA_I82801IB_S3 0x29218086 #define ATA_I82801IB_AH6 0x29228086 #define ATA_I82801IB_AH4 0x29238086 #define ATA_I82801IB_R1 0x29258086 diff --git a/sys/dev/ata/chipsets/ata-intel.c b/sys/dev/ata/chipsets/ata-intel.c index c3ad053..0732b3e 100644 --- a/sys/dev/ata/chipsets/ata-intel.c +++ b/sys/dev/ata/chipsets/ata-intel.c @@ -140,7 +140,7 @@ ata_intel_probe(device_t dev) { ATA_I82801HBM_S3, 0, INTEL_AHCI, 0, ATA_SA300, "ICH8M" }, { ATA_I82801IB_S1, 0, INTEL_6CH, 0, ATA_SA300, "ICH9" }, { ATA_I82801IB_S2, 0, INTEL_6CH2, 0, ATA_SA300, "ICH9" }, - { ATA_I82801IB_AH2, 0, INTEL_AHCI, 0, ATA_SA300, "ICH9" }, + { ATA_I82801IB_S3, 0, INTEL_6CH2, 0, ATA_SA300, "ICH9" }, { ATA_I82801IB_AH4, 0, INTEL_AHCI, 0, ATA_SA300, "ICH9" }, { ATA_I82801IB_AH6, 0, INTEL_AHCI, 0, ATA_SA300, "ICH9" }, { ATA_I82801IB_R1, 0, INTEL_AHCI, 0, ATA_SA300, "ICH9" }, @@ -336,7 +336,7 @@ ata_intel_ch_attach(device_t dev) } else if (ctlr->chip->cfg1 & INTEL_6CH2) { ch->flags |= ATA_SATA; ch->flags |= ATA_NO_SLAVE; - smap[0] = (ch->unit == 0) ? 4 : 5; + smap[0] = (ch->unit == 0) ? 0 : 1; smap[1] = 0; } else { map &= 0x03; |