Updated ata(4) patch for SB600 and SB700

Martin Matuska mm at FreeBSD.org
Thu Nov 22 01:04:47 PST 2007


An updated patch against recent changes in ata(4) for users with IXP600
and IXP700 chipsets is attached.
The patch enables SATA300 (via AHCI) e.g on mainboards with AMD690G
chipsets.

Patch applies against recent -CURRENT, 7-STABLE and 6-STABLE.

ata(4) commiters please review, others please report any issues here.

I have submitted a PR as well, but the mail server seems to have
problems right now.
-------------- next part --------------
Index: src/sys/dev/ata/ata-chipset.c
===================================================================
RCS file: /home/ncvs/src/sys/dev/ata/ata-chipset.c,v
retrieving revision 1.207
diff -a -u -r1.207 ata-chipset.c
--- src/sys/dev/ata/ata-chipset.c	20 Nov 2007 04:52:19 -0000	1.207
+++ src/sys/dev/ata/ata-chipset.c	22 Nov 2007 00:01:14 -0000
@@ -1345,7 +1345,9 @@
      { ATA_ATI_IXP400_S1, 0x00, SIIMEMIO, 0, ATA_SA150, "IXP400" },
      { ATA_ATI_IXP400_S2, 0x00, SIIMEMIO, 0, ATA_SA150, "IXP400" },
      { ATA_ATI_IXP600,    0x00, 0,        0, ATA_UDMA6, "IXP600" },
+     { ATA_ATI_IXP600_S1, 0x00, 0,     AHCI, ATA_SA300, "IXP600" },
      { ATA_ATI_IXP700,    0x00, 0,        0, ATA_UDMA6, "IXP700" },
+     { ATA_ATI_IXP700_S1, 0x00, 0,     AHCI, ATA_SA300, "IXP700" },
      { 0, 0, 0, 0, 0, 0}};
 
     if (!(ctlr->chip = ata_match_chip(dev, ids)))
@@ -1366,6 +1368,9 @@
 {
     struct ata_pci_controller *ctlr = device_get_softc(dev);
 
+    if ((ctlr->chip->cfg2 == AHCI) && ata_ahci_chipinit(dev) != ENXIO)
+	return 0;
+
     if (ata_setup_interrupt(dev))
 	return ENXIO;
 
Index: src/sys/dev/ata/ata-pci.h
===================================================================
RCS file: /home/ncvs/src/sys/dev/ata/ata-pci.h,v
retrieving revision 1.82
diff -a -u -r1.82 ata-pci.h
--- src/sys/dev/ata/ata-pci.h	18 Nov 2007 14:44:52 -0000	1.82
+++ src/sys/dev/ata/ata-pci.h	22 Nov 2007 00:01:14 -0000
@@ -104,7 +104,9 @@
 #define ATA_ATI_IXP400_S1       0x43791002
 #define ATA_ATI_IXP400_S2       0x437a1002
 #define ATA_ATI_IXP600          0x438c1002
+#define ATA_ATI_IXP600_S1       0x43801002
 #define ATA_ATI_IXP700          0x439c1002
+#define ATA_ATI_IXP700_S1       0x43901002
 
 #define ATA_CENATEK_ID          0x16ca
 #define ATA_CENATEK_ROCKET      0x000116ca


More information about the freebsd-current mailing list