فهرست منبع

Increase limit of READ/WRITE BUFFER command for improved compatibility SGI Iris hosts

Michael McMaster 5 سال پیش
والد
کامیت
bfaa84ed5b
2فایلهای تغییر یافته به همراه8 افزوده شده و 4 حذف شده
  1. 4 0
      lib/SCSI2SD/CHANGELOG
  2. 4 4
      lib/SCSI2SD/src/firmware/diagnostic.c

+ 4 - 0
lib/SCSI2SD/CHANGELOG

@@ -1,3 +1,7 @@
+2020xxxx		6.X.X
+	- Increase limit of READ/WRITE BUFFER command for improved compatibility
+	SGI Iris hosts
+
 20200419		6.3.1
 	- Added checks to ensure the correct firmware version is loaded.
 	V6 Rev.f and older boards need the "firmware.V6.revF.dfu" firmware updates.

+ 4 - 4
lib/SCSI2SD/src/firmware/diagnostic.c

@@ -154,7 +154,7 @@ void scsiReadBuffer()
 
 	if (mode == 0)
 	{
-		uint32_t maxSize = MAX_SECTOR_SIZE - 4;
+		uint32_t maxSize = sizeof(scsiDev.data) - 4;
 		// 4 byte header
 		scsiDev.data[0] = 0;
 		scsiDev.data[1] = (maxSize >> 16) & 0xff;
@@ -162,19 +162,19 @@ void scsiReadBuffer()
 		scsiDev.data[3] = maxSize & 0xff;
 
 		scsiDev.dataLen =
-			(allocLength > MAX_SECTOR_SIZE) ? MAX_SECTOR_SIZE : allocLength;
+			(allocLength > sizeof(scsiDev.data)) ? sizeof(scsiDev.data) : allocLength;
 		scsiDev.phase = DATA_IN;
 	}
 	else if (mode == 0x2 && (scsiDev.cdb[2] == 0))
 	{
 		// TODO support BUFFER OFFSET fields in CDB
 		scsiDev.dataLen =
-			(allocLength > MAX_SECTOR_SIZE) ? MAX_SECTOR_SIZE : allocLength;
+			(allocLength > sizeof(scsiDev.data)) ? sizeof(scsiDev.data) : allocLength;
 		scsiDev.phase = DATA_IN;
 	}
 	else if (mode == 0x3)
 	{
-		uint32_t maxSize = MAX_SECTOR_SIZE - 4;
+		uint32_t maxSize = sizeof(scsiDev.data) - 4;
 		// 4 byte header
 		scsiDev.data[0] = 0;
 		scsiDev.data[1] = (maxSize >> 16) & 0xff;