From 02a01b08d208abeeaeb12b46f200de7bec908776 Mon Sep 17 00:00:00 2001 From: Michael McMaster Date: Sat, 27 Aug 2016 21:28:46 +1000 Subject: [PATCH] Disable 20MB/s support until data corruption issue is fixed. --- CHANGELOG | 3 ++- doc/SCSI2SD_QuickStartGuide.odt | Bin 17503 -> 17587 bytes doc/dimensions.png | Bin 0 -> 29239 bytes src/firmware/config.c | 2 +- src/firmware/scsi.c | 8 +++++++- 5 files changed, 10 insertions(+), 3 deletions(-) create mode 100644 doc/dimensions.png diff --git a/CHANGELOG b/CHANGELOG index f16e0648..b11680d5 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,4 +1,5 @@ -2016XXXX 6.0.7 +20160827 6.0.8 + - Fixed "protocol error" issues when saving configuration to SD cards. - Synchronous transfers supported ! 5MB/s and 10MB/s supported. - Fix for accessing data via USB with more than 2 devices configured. diff --git a/doc/SCSI2SD_QuickStartGuide.odt b/doc/SCSI2SD_QuickStartGuide.odt index 127393767cd0a08f7c7b20eec4191e398da1674d..6d929b39a5c1f7c6d43c98d82a85dd5c7434980f 100644 GIT binary patch delta 9692 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 cg1Px# diff --git a/doc/dimensions.png b/doc/dimensions.png new file mode 100644 index 0000000000000000000000000000000000000000..0902016bf5d85784f712d0cac16072f52e9f50e4 GIT binary patch literal 29239 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 Fe*pNy?o$8& literal 0 HcmV?d00001 diff --git a/src/firmware/config.c b/src/firmware/config.c index 800624ab..7acb0831 100755 --- a/src/firmware/config.c +++ b/src/firmware/config.c @@ -37,7 +37,7 @@ #include -static const uint16_t FIRMWARE_VERSION = 0x0607; +static const uint16_t FIRMWARE_VERSION = 0x0608; // 1 flash row static const uint8_t DEFAULT_CONFIG[128] = diff --git a/src/firmware/scsi.c b/src/firmware/scsi.c index ff54cd27..b2ab1e59 100755 --- a/src/firmware/scsi.c +++ b/src/firmware/scsi.c @@ -766,11 +766,17 @@ static void process_MessageOut() scsiDev.target->syncPeriod = 0; } else { scsiDev.target->syncOffset = offset < 15 ? offset : 15; + // FAST20 / 50ns / 20MHz is disabled for now due to + // data corruption while reading data. We can count the + // ACK's correctly, but can't save the data to a register + // before it changes. + // TODO work out the fastest sync period that will work + /* if (transferPeriod <= 12) { scsiDev.target->syncPeriod = 12; // 50ns, 20MB/s } - else if (transferPeriod <= 25) + else */if (transferPeriod <= 25) { scsiDev.target->syncPeriod = 25; // 100ns, 10MB/s } else { -- 2.38.5