Add yet another (older) Promise chip
This commit is contained in:
parent
029c8ee4fa
commit
098d258d05
@ -1027,8 +1027,8 @@ ata_dmainit(struct ata_device *atadev, int apiomode, int wdmamode, int udmamode)
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 0x4d30105a: /* Promise Ultra/FastTrak 100 controllers */
|
|
||||||
case 0x0d30105a: /* Promise OEM ATA100 controllers */
|
case 0x0d30105a: /* Promise OEM ATA100 controllers */
|
||||||
|
case 0x4d30105a: /* Promise Ultra/FastTrak 100 controllers */
|
||||||
if (!ATAPI_DEVICE(atadev) && udmamode >= 5 &&
|
if (!ATAPI_DEVICE(atadev) && udmamode >= 5 &&
|
||||||
!(pci_read_config(parent, 0x50, 2) & (channel ? 1<<11 : 1<<10))) {
|
!(pci_read_config(parent, 0x50, 2) & (channel ? 1<<11 : 1<<10))) {
|
||||||
error = ata_command(atadev, ATA_C_SETFEATURES, 0,
|
error = ata_command(atadev, ATA_C_SETFEATURES, 0,
|
||||||
@ -1044,6 +1044,7 @@ ata_dmainit(struct ata_device *atadev, int apiomode, int wdmamode, int udmamode)
|
|||||||
}
|
}
|
||||||
/* FALLTHROUGH */
|
/* FALLTHROUGH */
|
||||||
|
|
||||||
|
case 0x0d38105a: /* Promise FastTrak 66 controllers */
|
||||||
case 0x4d38105a: /* Promise Ultra/FastTrak 66 controllers */
|
case 0x4d38105a: /* Promise Ultra/FastTrak 66 controllers */
|
||||||
if (!ATAPI_DEVICE(atadev) && udmamode >= 4 &&
|
if (!ATAPI_DEVICE(atadev) && udmamode >= 4 &&
|
||||||
!(pci_read_config(parent, 0x50, 2) & (channel ? 1<<11 : 1<<10))) {
|
!(pci_read_config(parent, 0x50, 2) & (channel ? 1<<11 : 1<<10))) {
|
||||||
@ -1398,9 +1399,10 @@ promise_timing(struct ata_device *atadev, int devno, int mode)
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case 0x0d38105a: /* Promise Fasttrak 66 */
|
||||||
case 0x4d38105a: /* Promise Ultra/Fasttrak 66 */
|
case 0x4d38105a: /* Promise Ultra/Fasttrak 66 */
|
||||||
case 0x4d30105a: /* Promise Ultra/Fasttrak 100 */
|
|
||||||
case 0x0d30105a: /* Promise OEM ATA 100 */
|
case 0x0d30105a: /* Promise OEM ATA 100 */
|
||||||
|
case 0x4d30105a: /* Promise Ultra/Fasttrak 100 */
|
||||||
switch (mode) {
|
switch (mode) {
|
||||||
default:
|
default:
|
||||||
case ATA_PIO0: t->pa = 15; t->pb = 31; t->mb = 7; t->mc = 15; break;
|
case ATA_PIO0: t->pa = 15; t->pb = 31; t->mb = 7; t->mc = 15; break;
|
||||||
|
@ -243,6 +243,7 @@ ata_pci_match(device_t dev)
|
|||||||
case 0x4d33105a:
|
case 0x4d33105a:
|
||||||
return "Promise ATA33 controller";
|
return "Promise ATA33 controller";
|
||||||
|
|
||||||
|
case 0x0d38105a:
|
||||||
case 0x4d38105a:
|
case 0x4d38105a:
|
||||||
return "Promise ATA66 controller";
|
return "Promise ATA66 controller";
|
||||||
|
|
||||||
@ -404,9 +405,10 @@ ata_pci_attach(device_t dev)
|
|||||||
(pci_read_config(dev, 0x53, 1) & ~0x01) | 0x02, 1);
|
(pci_read_config(dev, 0x53, 1) & ~0x01) | 0x02, 1);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 0x4d38105a: /* Promise 66 & 100 (before TX2) need the clock changed */
|
case 0x0d30105a: /* Promise 66 & 100 (before TX2) need the clock changed */
|
||||||
case 0x4d30105a:
|
case 0x4d30105a:
|
||||||
case 0x0d30105a:
|
case 0x0d38105a:
|
||||||
|
case 0x4d38105a:
|
||||||
ATA_OUTB(controller->bmio, 0x11, ATA_INB(controller->bmio, 0x11)|0x0a);
|
ATA_OUTB(controller->bmio, 0x11, ATA_INB(controller->bmio, 0x11)|0x0a);
|
||||||
/* FALLTHROUGH */
|
/* FALLTHROUGH */
|
||||||
|
|
||||||
@ -565,9 +567,10 @@ ata_pci_intr(struct ata_channel *ch)
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case 0x4d33105a: /* Promise Ultra/Fasttrak 33 */
|
case 0x4d33105a: /* Promise Ultra/Fasttrak 33 */
|
||||||
|
case 0x0d38105a: /* Promise Fasttrak 66 */
|
||||||
case 0x4d38105a: /* Promise Ultra/Fasttrak 66 */
|
case 0x4d38105a: /* Promise Ultra/Fasttrak 66 */
|
||||||
case 0x4d30105a: /* Promise Ultra/Fasttrak 100 */
|
|
||||||
case 0x0d30105a: /* Promise OEM ATA100 */
|
case 0x0d30105a: /* Promise OEM ATA100 */
|
||||||
|
case 0x4d30105a: /* Promise Ultra/Fasttrak 100 */
|
||||||
if (!(ATA_INL(ch->r_bmio, (ch->unit ? 0x14 : 0x1c)) &
|
if (!(ATA_INL(ch->r_bmio, (ch->unit ? 0x14 : 0x1c)) &
|
||||||
(ch->unit ? 0x00004000 : 0x00000400)))
|
(ch->unit ? 0x00004000 : 0x00000400)))
|
||||||
return 1;
|
return 1;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user