diff options
author | bms <bms@FreeBSD.org> | 2007-06-13 17:44:49 +0000 |
---|---|---|
committer | bms <bms@FreeBSD.org> | 2007-06-13 17:44:49 +0000 |
commit | 9156605d1956d8c6eb3d35a32e906f368ca7a2b5 (patch) | |
tree | bed40559213d8442c8a45ab0ba78d86471885c3b | |
parent | 2d76b78be2fee340ac912b0bd7e11cee53a28a31 (diff) | |
download | FreeBSD-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.c | 5 |
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); |