diff --git a/examples/spisd/bootrom/sfsd.rom b/examples/spisd/bootrom/sfsd.rom index 87acc71..eaee0bb 100755 Binary files a/examples/spisd/bootrom/sfsd.rom and b/examples/spisd/bootrom/sfsd.rom differ diff --git a/examples/spisd/scsidirect.c b/examples/spisd/scsidirect.c index 3c8050f..b6e2734 100644 --- a/examples/spisd/scsidirect.c +++ b/examples/spisd/scsidirect.c @@ -68,7 +68,7 @@ static uint8_t handle_inquiry(struct SCSICmd *cmd, struct IOStdReq *ior) return TDERR_DiskChanged; } - if (cmd->scsi_Length < sizeof(struct SCSI_Inquiry)) { + if (cmd->scsi_Length < 36) { return IOERR_BADLENGTH; } @@ -180,6 +180,10 @@ void process_scsi_direct(struct IOStdReq *ior) cmd->scsi_Status = 0; switch (cdb[0]) { + case SCSI_CMD_TEST_UNIT_READY: + cmd->scsi_Actual = 0; + ior->io_Error = 0; + break; case SCSI_CMD_READ_6: { struct SCSI_CDB_6 *cdb6 = (struct SCSI_CDB_6 *)cdb; diff --git a/examples/spisd/scsidirect.h b/examples/spisd/scsidirect.h index 206318b..dd3a879 100644 --- a/examples/spisd/scsidirect.h +++ b/examples/spisd/scsidirect.h @@ -1,6 +1,7 @@ #ifndef SCSIDIRECT_H_ #define SCSIDIRECT_H_ +#define SCSI_CMD_TEST_UNIT_READY 0x00 #define SCSI_CMD_READ_6 0x08 #define SCSI_CMD_WRITE_6 0x0A #define SCSI_CMD_READ_10 0x28 diff --git a/examples/spisd/sfsd.device b/examples/spisd/sfsd.device index 8af2642..3f07699 100755 Binary files a/examples/spisd/sfsd.device and b/examples/spisd/sfsd.device differ diff --git a/examples/spisd/spisd.device b/examples/spisd/spisd.device index b320e3a..2dd2e4f 100755 Binary files a/examples/spisd/spisd.device and b/examples/spisd/spisd.device differ