Просмотр исходного кода

Fix SCSI timing errors - 45ns Hold Time and 90ns assertion/deassertion period now observed.

Michael McMaster 9 лет назад
Родитель
Сommit
47d787b794
3 измененных файлов с 9 добавлено и 3 удалено
  1. 3 0
      lib/SCSI2SD/CHANGELOG
  2. BIN
      lib/SCSI2SD/rtl/fpga_bitmap.o
  3. 6 3
      lib/SCSI2SD/src/firmware/scsi.c

+ 3 - 0
lib/SCSI2SD/CHANGELOG

@@ -1,3 +1,6 @@
+2016XXXX		6.0.7
+	- Fix for accessing data via USB with more than 2 devices configured.
+
 20160815		6.0.6
 	- Fix performance bugs
 

BIN
lib/SCSI2SD/rtl/fpga_bitmap.o


+ 6 - 3
lib/SCSI2SD/src/firmware/scsi.c

@@ -244,12 +244,15 @@ static void process_Command()
 	scsiEnterPhase(COMMAND);
 	scsiDev.parityError = 0;
 
-	memset(scsiDev.cdb, 0, sizeof(scsiDev.cdb));
-	scsiDev.cdb[0] = scsiReadByte();
+	memset(scsiDev.cdb + 6, 0, sizeof(scsiDev.cdb) - 6);
+	scsiRead(scsiDev.cdb, 6);
 
 	group = scsiDev.cdb[0] >> 5;
 	scsiDev.cdbLen = CmdGroupBytes[group];
-	scsiRead(scsiDev.cdb + 1, scsiDev.cdbLen - 1);
+	if (scsiDev.cdbLen - 6 > 0)
+	{
+		scsiRead(scsiDev.cdb + 6, scsiDev.cdbLen - 6);
+	}
 
 	command = scsiDev.cdb[0];