svn commit: r220920 - in head/sys/dev/ata: . chipsets

Alexander Motin mav at FreeBSD.org
Thu Apr 21 11:44:17 UTC 2011


Author: mav
Date: Thu Apr 21 11:44:16 2011
New Revision: 220920
URL: http://svn.freebsd.org/changeset/base/220920

Log:
   - 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.

Modified:
  head/sys/dev/ata/ata-pci.h
  head/sys/dev/ata/chipsets/ata-intel.c

Modified: head/sys/dev/ata/ata-pci.h
==============================================================================
--- head/sys/dev/ata/ata-pci.h	Thu Apr 21 09:34:44 2011	(r220919)
+++ head/sys/dev/ata/ata-pci.h	Thu Apr 21 11:44:16 2011	(r220920)
@@ -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

Modified: head/sys/dev/ata/chipsets/ata-intel.c
==============================================================================
--- head/sys/dev/ata/chipsets/ata-intel.c	Thu Apr 21 09:34:44 2011	(r220919)
+++ head/sys/dev/ata/chipsets/ata-intel.c	Thu Apr 21 11:44:16 2011	(r220920)
@@ -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;


More information about the svn-src-head mailing list