Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 23 Sep 2006 22:15:17 GMT
From:      Sven Petai <hadara@bsd.ee>
To:        freebsd-gnats-submit@FreeBSD.org
Subject:   kern/103534: [ata] [patch] support for ALI 5288
Message-ID:  <200609232215.k8NMFHSH030882@www.freebsd.org>
Resent-Message-ID: <200609232220.k8NMKBZ3070659@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         103534
>Category:       kern
>Synopsis:       [ata] [patch] support for ALI 5288
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Sat Sep 23 22:20:11 GMT 2006
>Closed-Date:
>Last-Modified:
>Originator:     Sven Petai
>Release:        current (23.09.2006)
>Organization:
NPO BSD Estonia
>Environment:
FreeBSD  7.0-CURRENT FreeBSD 7.0-CURRENT #33: Sat Sep 23 22:19:06 EEST 2006     root@:/usr/obj/usr/src/sys/DEPRESSION64  amd64
>Description:
ALI (ULI) 5288 ata chipset is not supported, machine will not find any disks
when IDE type is set to RAID (the default) or AHCI in the BIOS. It will find
the disks in UDMA33 mode when non-RAID type is selected from BIOS.

With the above patch disks are recognized as SATA 150 capable devices in all
3 BIOS modes.

PS. this chip can be found on ASROCK 939SLI32-eSATA2 motherboard.
>How-To-Repeat:

>Fix:
--- sys-orig/dev/ata/ata-chipset.c      Sat Sep 23 19:09:32 2006
+++ sys/dev/ata/ata-chipset.c   Sat Sep 23 22:42:58 2006
@@ -950,6 +950,7 @@
     struct ata_chip_id *idx;
     static struct ata_chip_id ids[] =
     {{ ATA_ALI_5289, 0x00, 2, ALISATA, ATA_SA150, "M5289" },
+     { ATA_ALI_5288, 0x00, 4, ALISATA, ATA_SA300, "M5288" },
      { ATA_ALI_5287, 0x00, 4, ALISATA, ATA_SA150, "M5287" },
      { ATA_ALI_5281, 0x00, 2, ALISATA, ATA_SA150, "M5281" },
      { ATA_ALI_5229, 0xc5, 0, ALINEW,  ATA_UDMA6, "M5229" },
@@ -984,6 +985,12 @@
        ctlr->channels = ctlr->chip->cfg1;
        ctlr->allocate = ata_ali_sata_allocate;
        ctlr->setmode = ata_sata_setmode;
+       ctlr->r_type2 = SYS_RES_MEMORY;
+       ctlr->r_rid2 = PCIR_BAR(5);
+
+        if ((ctlr->r_res2 = bus_alloc_resource_any(dev, ctlr->r_type2,
+                                                    &ctlr->r_rid2, RF_ACTIVE)))
+            return ata_ahci_chipinit(dev);

        /* enable PCI interrupt */
        pci_write_config(dev, PCIR_COMMAND,

>Release-Note:
>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200609232215.k8NMFHSH030882>