From 4e4db2b8b3eddb2857fad56cd34060a1981782eb Mon Sep 17 00:00:00 2001 From: Michael McMaster Date: Mon, 4 Nov 2019 19:18:38 +1000 Subject: [PATCH] Support READ DEFECT DATA command --- src/firmware/disk.c | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) 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 { -- 2.38.5