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