Fix SCSI timing errors - 45ns Hold Time and 90ns assertion/deassertion period now...
authorMichael McMaster <michael@codesrc.com>
Wed, 17 Aug 2016 10:38:13 +0000 (20:38 +1000)
committerMichael McMaster <michael@codesrc.com>
Wed, 17 Aug 2016 10:38:13 +0000 (20:38 +1000)
CHANGELOG
rtl/fpga_bitmap.o
src/firmware/scsi.c

index 1f4f29cb679a663ca8403416189431dfbc643f90..3bbc3afcc93c750d9e5bdad89d89d4690887ae21 100644 (file)
--- a/CHANGELOG
+++ b/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
 
 20160815               6.0.6
        - Fix performance bugs
 
index 4e58623ea797b77473baf2a346a0ef0bdb8dda85..53348881e32cbbb16ff37342273e982052852b30 100644 (file)
Binary files a/rtl/fpga_bitmap.o and b/rtl/fpga_bitmap.o differ
index d927aadb96cb3d257761851cda54d294dfb2e142..bbb3e4843a5572f0e522f936d9f79348e7b8afe0 100755 (executable)
@@ -244,12 +244,15 @@ static void process_Command()
        scsiEnterPhase(COMMAND);\r
        scsiDev.parityError = 0;\r
 \r
        scsiEnterPhase(COMMAND);\r
        scsiDev.parityError = 0;\r
 \r
-       memset(scsiDev.cdb, 0, sizeof(scsiDev.cdb));\r
-       scsiDev.cdb[0] = scsiReadByte();\r
+       memset(scsiDev.cdb + 6, 0, sizeof(scsiDev.cdb) - 6);\r
+       scsiRead(scsiDev.cdb, 6);\r
 \r
        group = scsiDev.cdb[0] >> 5;\r
        scsiDev.cdbLen = CmdGroupBytes[group];\r
 \r
        group = scsiDev.cdb[0] >> 5;\r
        scsiDev.cdbLen = CmdGroupBytes[group];\r
-       scsiRead(scsiDev.cdb + 1, scsiDev.cdbLen - 1);\r
+       if (scsiDev.cdbLen - 6 > 0)\r
+       {\r
+               scsiRead(scsiDev.cdb + 6, scsiDev.cdbLen - 6);\r
+       }\r
 \r
        command = scsiDev.cdb[0];\r
 \r
 \r
        command = scsiDev.cdb[0];\r
 \r