diff options
author | sos <sos@FreeBSD.org> | 2003-01-08 17:44:36 +0000 |
---|---|---|
committer | sos <sos@FreeBSD.org> | 2003-01-08 17:44:36 +0000 |
commit | 91969f27a52f9d750a308c792bbae8b36535db99 (patch) | |
tree | fae62afff8c344c5fa92321887cd74dea2ab97b1 | |
parent | 45a362319313bfe4e2ef698d107d34b2db70b769 (diff) | |
download | FreeBSD-src-91969f27a52f9d750a308c792bbae8b36535db99.zip FreeBSD-src-91969f27a52f9d750a308c792bbae8b36535db99.tar.gz |
Dont attach a Promise chip located behind a i960 bridge/chip.
This makes it possible to run a Promise SuperTrak SX6000 with
OS type set to "Other" as well as "Linux".
-rw-r--r-- | sys/dev/ata/ata-pci.c | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/sys/dev/ata/ata-pci.c b/sys/dev/ata/ata-pci.c index ca545fa..d4375fa 100644 --- a/sys/dev/ata/ata-pci.c +++ b/sys/dev/ata/ata-pci.c @@ -287,10 +287,22 @@ ata_pci_match(device_t dev) } return "Promise TX2 ATA100 controller"; - case 0x4d69105a: case 0x5275105a: - case 0x6269105a: case 0x7275105a: + { + uintptr_t devid = 0; + + /* if we are on a SuperTrak SX6000 dont attach */ + if (!BUS_READ_IVAR(device_get_parent(GRANDPARENT(dev)), + GRANDPARENT(dev), PCI_IVAR_DEVID, &devid) && + devid == 0x09628086 && + pci_get_class(GRANDPARENT(dev)) == PCIC_BRIDGE) + break; + } + /* FALLTHROUGH */ + + case 0x4d69105a: + case 0x6269105a: return "Promise TX2 ATA133 controller"; case 0x00041103: |