From 124866baaab09f6e221281e459803bbb512c0b66 Mon Sep 17 00:00:00 2001 From: RichardG867 Date: Tue, 13 Oct 2020 19:20:14 -0300 Subject: [PATCH] Upgrade IDE maximum to UDMA/100 and add IDENTIFY word 93 (80-conductor cable detection) --- src/disk/hdc_ide.c | 5 ++++- src/disk/mo.c | 2 +- src/disk/zip.c | 2 +- src/scsi/scsi_cdrom.c | 2 +- 4 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/disk/hdc_ide.c b/src/disk/hdc_ide.c index 762a2d780..09e8d6d68 100644 --- a/src/disk/hdc_ide.c +++ b/src/disk/hdc_ide.c @@ -412,7 +412,7 @@ ide_get_max(ide_t *ide, int type) return -1; case TYPE_UDMA: /* UDMA */ if (!ide_boards[ide->board]->force_ata3 && (ide_bm[ide->board] != NULL)) - return 4 /*2*/; + return 5; return -1; default: @@ -620,6 +620,9 @@ ide_identify(ide_t *ide) ide->buffer[88] |= d; ide_log("PIDENTIFY DMA Mode: %04X, %04X\n", ide->buffer[62], ide->buffer[63]); } + + if (max_udma >= 4) + ide->buffer[93] = 0x6000; /* Drive reports 80-conductor cable */ } diff --git a/src/disk/mo.c b/src/disk/mo.c index 798bc0c6d..2d9c86dab 100644 --- a/src/disk/mo.c +++ b/src/disk/mo.c @@ -2013,7 +2013,7 @@ mo_get_max(int ide_has_dma, int type) ret = ide_has_dma ? 1 : -1; break; case TYPE_UDMA: - ret = ide_has_dma ? 4 /*2*/ : -1; + ret = ide_has_dma ? 5 : -1; break; } diff --git a/src/disk/zip.c b/src/disk/zip.c index d1f89fff6..d3a9a8220 100644 --- a/src/disk/zip.c +++ b/src/disk/zip.c @@ -2242,7 +2242,7 @@ zip_get_max(int ide_has_dma, int type) ret = ide_has_dma ? 1 : -1; break; case TYPE_UDMA: - ret = ide_has_dma ? 4 /*2*/ : -1; + ret = ide_has_dma ? 5 : -1; break; } diff --git a/src/scsi/scsi_cdrom.c b/src/scsi/scsi_cdrom.c index bf0c975f4..63d87b42c 100644 --- a/src/scsi/scsi_cdrom.c +++ b/src/scsi/scsi_cdrom.c @@ -2601,7 +2601,7 @@ scsi_cdrom_get_max(int ide_has_dma, int type) ret = ide_has_dma ? 2 : -1; break; case TYPE_UDMA: - ret = ide_has_dma ? 4 /*2*/ : -1; + ret = ide_has_dma ? 5 : -1; break; default: ret = -1;