summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorbms <bms@FreeBSD.org>2007-06-13 17:44:49 +0000
committerbms <bms@FreeBSD.org>2007-06-13 17:44:49 +0000
commit9156605d1956d8c6eb3d35a32e906f368ca7a2b5 (patch)
treebed40559213d8442c8a45ab0ba78d86471885c3b
parent2d76b78be2fee340ac912b0bd7e11cee53a28a31 (diff)
downloadFreeBSD-src-9156605d1956d8c6eb3d35a32e906f368ca7a2b5.zip
FreeBSD-src-9156605d1956d8c6eb3d35a32e906f368ca7a2b5.tar.gz
Do not attempt to enable AHCI mode on ALi SATA controllers other
than the 5288. It is not correctly implemented in earlier silicon, and the BIOS often lies about AHCI capability on platforms where these chips are deployed. With this change I am able to boot FreeBSD on the ASUS Vintage AH-1 barebones system. Approved by: sos
-rw-r--r--sys/dev/ata/ata-chipset.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/sys/dev/ata/ata-chipset.c b/sys/dev/ata/ata-chipset.c
index e37083c..6d28afb 100644
--- a/sys/dev/ata/ata-chipset.c
+++ b/sys/dev/ata/ata-chipset.c
@@ -1005,7 +1005,10 @@ ata_ali_chipinit(device_t dev)
/* if we have a memory resource we can likely do AHCI */
ctlr->r_type2 = SYS_RES_MEMORY;
ctlr->r_rid2 = PCIR_BAR(5);
- if ((ctlr->r_res2 = bus_alloc_resource_any(dev, ctlr->r_type2,
+
+ /* AHCI mode is correctly supported only on the ALi 5288. */
+ if ((ctlr->chip->chipid == ATA_ALI_5288) &&
+ (ctlr->r_res2 = bus_alloc_resource_any(dev, ctlr->r_type2,
&ctlr->r_rid2, RF_ACTIVE)))
return ata_ahci_chipinit(dev);
OpenPOWER on IntegriCloud