summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormav <mav@FreeBSD.org>2011-06-14 20:30:15 +0000
committermav <mav@FreeBSD.org>2011-06-14 20:30:15 +0000
commitaf6faca77e2acf558356503d8311e73616b6bcbc (patch)
tree6af5c6c2f4d40c387af374e2f18213a39412fe35
parenta11bba2ac0d2c4ab9c0acc179a383d8ca04cda70 (diff)
downloadFreeBSD-src-af6faca77e2acf558356503d8311e73616b6bcbc.zip
FreeBSD-src-af6faca77e2acf558356503d8311e73616b6bcbc.tar.gz
Skip BAR(5) usage for SATA registers access on ICH8M Apples, because for
some reason it causes system lock up. Linux does the same. MFC after: 1 week
-rw-r--r--sys/dev/ata/chipsets/ata-intel.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/sys/dev/ata/chipsets/ata-intel.c b/sys/dev/ata/chipsets/ata-intel.c
index 3b514db..e128051 100644
--- a/sys/dev/ata/chipsets/ata-intel.c
+++ b/sys/dev/ata/chipsets/ata-intel.c
@@ -288,7 +288,9 @@ ata_intel_chipinit(device_t dev)
ATA_OUTL(ctlr->r_res2, 0x0C,
ATA_INL(ctlr->r_res2, 0x0C) | 0xf);
}
- } else {
+ /* Skip BAR(5) on ICH8M Apples, system locks up on access. */
+ } else if (ctlr->chip->chipid != ATA_I82801HBM_S1 ||
+ pci_get_subvendor(dev) != 0x106b) {
ctlr->r_type2 = SYS_RES_IOPORT;
ctlr->r_rid2 = PCIR_BAR(5);
ctlr->r_res2 = bus_alloc_resource_any(dev, ctlr->r_type2,
OpenPOWER on IntegriCloud