second channel (ata1) on atapci0 either. I think that is probably the
difference.
Try this patch:
Index: ata-chipset.c
===================================================================
--- ata-chipset.c (revision 214624)
+++ ata-chipset.c (working copy)
@@ -1762,58 +1762,58 @@
{
struct ata_pci_controller *ctlr = device_get_softc(dev);
static struct ata_chip_id ids[] =
- {{ ATA_I82371FB, 0, 0, 0x00, ATA_WDMA2, "PIIX" },
- { ATA_I82371SB, 0, 0, 0x00, ATA_WDMA2, "PIIX3" },
- { ATA_I82371AB, 0, 0, 0x00, ATA_UDMA2, "PIIX4" },
- { ATA_I82443MX, 0, 0, 0x00, ATA_UDMA2, "PIIX4" },
- { ATA_I82451NX, 0, 0, 0x00, ATA_UDMA2, "PIIX4" },
- { ATA_I82801AB, 0, 0, 0x00, ATA_UDMA2, "ICH0" },
- { ATA_I82801AA, 0, 0, 0x00, ATA_UDMA4, "ICH" },
- { ATA_I82372FB, 0, 0, 0x00, ATA_UDMA4, "ICH" },
- { ATA_I82801BA, 0, 0, 0x00, ATA_UDMA5, "ICH2" },
- { ATA_I82801BA_1, 0, 0, 0x00, ATA_UDMA5, "ICH2" },
- { ATA_I82801CA, 0, 0, 0x00, ATA_UDMA5, "ICH3" },
- { ATA_I82801CA_1, 0, 0, 0x00, ATA_UDMA5, "ICH3" },
- { ATA_I82801DB, 0, 0, 0x00, ATA_UDMA5, "ICH4" },
- { ATA_I82801DB_1, 0, 0, 0x00, ATA_UDMA5, "ICH4" },
- { ATA_I82801EB, 0, 0, 0x00, ATA_UDMA5, "ICH5" },
- { ATA_I82801EB_S1, 0, 0, 0x00, ATA_SA150, "ICH5" },
- { ATA_I82801EB_R1, 0, 0, 0x00, ATA_SA150, "ICH5" },
- { ATA_I6300ESB, 0, 0, 0x00, ATA_UDMA5, "6300ESB" },
- { ATA_I6300ESB_S1, 0, 0, 0x00, ATA_SA150, "6300ESB" },
- { ATA_I6300ESB_R1, 0, 0, 0x00, ATA_SA150, "6300ESB" },
- { ATA_I82801FB, 0, 0, 0x00, ATA_UDMA5, "ICH6" },
- { ATA_I82801FB_S1, 0, AHCI, 0x00, ATA_SA150, "ICH6" },
- { ATA_I82801FB_R1, 0, AHCI, 0x00, ATA_SA150, "ICH6" },
- { ATA_I82801FBM, 0, AHCI, 0x00, ATA_SA150, "ICH6M" },
- { ATA_I82801GB, 0, 0, 0x00, ATA_UDMA5, "ICH7" },
- { ATA_I82801GB_S1, 0, AHCI, 0x00, ATA_SA300, "ICH7" },
- { ATA_I82801GB_R1, 0, AHCI, 0x00, ATA_SA300, "ICH7" },
- { ATA_I82801GB_AH, 0, AHCI, 0x00, ATA_SA300, "ICH7" },
- { ATA_I82801GBM_S1, 0, AHCI, 0x00, ATA_SA300, "ICH7M" },
- { ATA_I82801GBM_R1, 0, AHCI, 0x00, ATA_SA300, "ICH7M" },
- { ATA_I82801GBM_AH, 0, AHCI, 0x00, ATA_SA300, "ICH7M" },
- { ATA_I63XXESB2, 0, 0, 0x00, ATA_UDMA5, "63XXESB2" },
- { ATA_I63XXESB2_S1, 0, AHCI, 0x00, ATA_SA300, "63XXESB2" },
- { ATA_I63XXESB2_S2, 0, AHCI, 0x00, ATA_SA300, "63XXESB2" },
- { ATA_I63XXESB2_R1, 0, AHCI, 0x00, ATA_SA300, "63XXESB2" },
- { ATA_I63XXESB2_R2, 0, AHCI, 0x00, ATA_SA300, "63XXESB2" },
- { ATA_I82801HB_S1, 0, AHCI, 0x00, ATA_SA300, "ICH8" },
- { ATA_I82801HB_S2, 0, AHCI, 0x00, ATA_SA300, "ICH8" },
- { ATA_I82801HB_R1, 0, AHCI, 0x00, ATA_SA300, "ICH8" },
- { ATA_I82801HB_AH4, 0, AHCI, 0x00, ATA_SA300, "ICH8" },
- { ATA_I82801HB_AH6, 0, AHCI, 0x00, ATA_SA300, "ICH8" },
- { ATA_I82801HBM, 0, 0, 0x00, ATA_UDMA5, "ICH8M" },
- { ATA_I82801HBM_S1, 0, 0, 0x00, ATA_SA150, "ICH8M" },
- { ATA_I82801HBM_S2, 0, AHCI, 0x00, ATA_SA300, "ICH8M" },
- { ATA_I82801HBM_S3, 0, AHCI, 0x00, ATA_SA300, "ICH8M" },
- { ATA_I82801IB_S1, 0, AHCI, 0x00, ATA_SA300, "ICH9" },
- { ATA_I82801IB_S2, 0, AHCI, 0x00, ATA_SA300, "ICH9" },
- { ATA_I82801IB_AH2, 0, AHCI, 0x00, ATA_SA300, "ICH9" },
- { ATA_I82801IB_AH4, 0, AHCI, 0x00, ATA_SA300, "ICH9" },
- { ATA_I82801IB_AH6, 0, AHCI, 0x00, ATA_SA300, "ICH9" },
- { ATA_I82801IB_R1, 0, AHCI, 0x00, ATA_SA300, "ICH9" },
- { ATA_I31244, 0, 0, 0x00, ATA_SA150, "31244" },
+ {{ ATA_I82371FB, 0, 0, 2, ATA_WDMA2, "PIIX" },
+ { ATA_I82371SB, 0, 0, 2, ATA_WDMA2, "PIIX3" },
+ { ATA_I82371AB, 0, 0, 2, ATA_UDMA2, "PIIX4" },
+ { ATA_I82443MX, 0, 0, 2, ATA_UDMA2, "PIIX4" },
+ { ATA_I82451NX, 0, 0, 2, ATA_UDMA2, "PIIX4" },
+ { ATA_I82801AB, 0, 0, 2, ATA_UDMA2, "ICH0" },
+ { ATA_I82801AA, 0, 0, 2, ATA_UDMA4, "ICH" },
+ { ATA_I82372FB, 0, 0, 2, ATA_UDMA4, "ICH" },
+ { ATA_I82801BA, 0, 0, 2, ATA_UDMA5, "ICH2" },
+ { ATA_I82801BA_1, 0, 0, 2, ATA_UDMA5, "ICH2" },
+ { ATA_I82801CA, 0, 0, 2, ATA_UDMA5, "ICH3" },
+ { ATA_I82801CA_1, 0, 0, 2, ATA_UDMA5, "ICH3" },
+ { ATA_I82801DB, 0, 0, 2, ATA_UDMA5, "ICH4" },
+ { ATA_I82801DB_1, 0, 0, 2, ATA_UDMA5, "ICH4" },
+ { ATA_I82801EB, 0, 0, 2, ATA_UDMA5, "ICH5" },
+ { ATA_I82801EB_S1, 0, 0, 2, ATA_SA150, "ICH5" },
+ { ATA_I82801EB_R1, 0, 0, 2, ATA_SA150, "ICH5" },
+ { ATA_I6300ESB, 0, 0, 2, ATA_UDMA5, "6300ESB" },
+ { ATA_I6300ESB_S1, 0, 0, 2, ATA_SA150, "6300ESB" },
+ { ATA_I6300ESB_R1, 0, 0, 2, ATA_SA150, "6300ESB" },
+ { ATA_I82801FB, 0, 0, 2, ATA_UDMA5, "ICH6" },
+ { ATA_I82801FB_S1, 0, AHCI, 0, ATA_SA150, "ICH6" },
+ { ATA_I82801FB_R1, 0, AHCI, 0, ATA_SA150, "ICH6" },
+ { ATA_I82801FBM, 0, AHCI, 0, ATA_SA150, "ICH6M" },
+ { ATA_I82801GB, 0, 0, 1, ATA_UDMA5, "ICH7" },
+ { ATA_I82801GB_S1, 0, AHCI, 0, ATA_SA300, "ICH7" },
+ { ATA_I82801GB_R1, 0, AHCI, 0, ATA_SA300, "ICH7" },
+ { ATA_I82801GB_AH, 0, AHCI, 0, ATA_SA300, "ICH7" },
+ { ATA_I82801GBM_S1, 0, AHCI, 0, ATA_SA300, "ICH7M" },
+ { ATA_I82801GBM_R1, 0, AHCI, 0, ATA_SA300, "ICH7M" },
+ { ATA_I82801GBM_AH, 0, AHCI, 0, ATA_SA300, "ICH7M" },
+ { ATA_I63XXESB2, 0, 0, 1, ATA_UDMA5, "63XXESB2" },
+ { ATA_I63XXESB2_S1, 0, AHCI, 0, ATA_SA300, "63XXESB2" },
+ { ATA_I63XXESB2_S2, 0, AHCI, 0, ATA_SA300, "63XXESB2" },
+ { ATA_I63XXESB2_R1, 0, AHCI, 0, ATA_SA300, "63XXESB2" },
+ { ATA_I63XXESB2_R2, 0, AHCI, 0, ATA_SA300, "63XXESB2" },
+ { ATA_I82801HB_S1, 0, AHCI, 0, ATA_SA300, "ICH8" },
+ { ATA_I82801HB_S2, 0, AHCI, 0, ATA_SA300, "ICH8" },
+ { ATA_I82801HB_R1, 0, AHCI, 0, ATA_SA300, "ICH8" },
+ { ATA_I82801HB_AH4, 0, AHCI, 0, ATA_SA300, "ICH8" },
+ { ATA_I82801HB_AH6, 0, AHCI, 0, ATA_SA300, "ICH8" },
+ { ATA_I82801HBM, 0, 0, 1, ATA_UDMA5, "ICH8M" },
+ { ATA_I82801HBM_S1, 0, 0, 0, ATA_SA150, "ICH8M" },
+ { ATA_I82801HBM_S2, 0, AHCI, 0, ATA_SA300, "ICH8M" },
+ { ATA_I82801HBM_S3, 0, AHCI, 0, ATA_SA300, "ICH8M" },
+ { ATA_I82801IB_S1, 0, AHCI, 0, ATA_SA300, "ICH9" },
+ { ATA_I82801IB_S2, 0, AHCI, 0, ATA_SA300, "ICH9" },
+ { ATA_I82801IB_AH2, 0, AHCI, 0, ATA_SA300, "ICH9" },
+ { ATA_I82801IB_AH4, 0, AHCI, 0, ATA_SA300, "ICH9" },
+ { ATA_I82801IB_AH6, 0, AHCI, 0, ATA_SA300, "ICH9" },
+ { ATA_I82801IB_R1, 0, AHCI, 0, ATA_SA300, "ICH9" },
+ { ATA_I31244, 0, 0, 2, ATA_SA150, "31244" },
{ 0, 0, 0, 0, 0, 0}};
if (!(ctlr->chip = ata_match_chip(dev, ids)))
@@ -1855,6 +1855,7 @@
/* non SATA intel chips goes here */
else if (ctlr->chip->max_dma< ATA_SA150) {
+ ctlr->channels = ctlr->chip->cfg2;
ctlr->allocate = ata_intel_allocate;
ctlr->setmode = ata_intel_new_setmode;
}