From: Michael McMaster Date: Mon, 4 Nov 2019 09:18:38 +0000 (+1000) Subject: Support READ DEFECT DATA command X-Git-Tag: v6.2.9~3 X-Git-Url: http://git.codesrc.com/gitweb.cgi?a=commitdiff_plain;h=4e4db2b8b3eddb2857fad56cd34060a1981782eb;p=SCSI2SD-V6.git Support READ DEFECT DATA command --- diff --git a/src/firmware/disk.c b/src/firmware/disk.c index 315db1c4..773ffd34 100755 --- a/src/firmware/disk.c +++ b/src/firmware/disk.c @@ -524,11 +524,21 @@ int scsiDiskCommand() else if (unlikely(command == 0x37)) { // READ DEFECT DATA - scsiDev.status = CHECK_CONDITION; - scsiDev.target->sense.code = NO_SENSE; - scsiDev.target->sense.asc = DEFECT_LIST_NOT_FOUND; - scsiDev.phase = STATUS; + uint32_t allocLength = (((uint16_t)scsiDev.cdb[7]) << 8) | + scsiDev.cdb[8]; + + scsiDev.data[0] = 0; + scsiDev.data[1] = scsiDev.cdb[1]; + scsiDev.data[2] = 0; + scsiDev.data[3] = 0; + scsiDev.dataLen = 4; + if (scsiDev.dataLen > allocLength) + { + scsiDev.dataLen = allocLength; + } + + scsiDev.phase = DATA_IN; } else {