-2020xxxx 6.X.X
+20201012 6.3.2
- Increase limit of READ/WRITE BUFFER command for improved compatibility
SGI Iris hosts
+ - Add new config option to enable blind writes to improve SD card write
+ performance. This was previously enabled default but causes problems
+ with some SCSI hosts.
20200419 6.3.1
- Added checks to ensure the correct firmware version is loaded.
ARMCC=arm-none-eabi-gcc
OBJCOPY=arm-none-eabi-objcopy
-CPPFLAGS=-DSTM32F205xx -DUSE_HAL_DRIVER -Wall -Werror
+CPPFLAGS=-DSTM32F205xx -DUSE_HAL_DRIVER -Wall
CFLAGS=-mcpu=cortex-m3 -mthumb -mslow-flash-data \
-std=gnu11 \
-specs=nosys.specs \
typedef enum
{
- S2S_CFG_ENABLE_TERMINATOR = 1
+ S2S_CFG_ENABLE_TERMINATOR = 1,
+ S2S_CFG_ENABLE_BLIND_WRITES = 2,
} S2S_CFG_FLAGS6;
typedef enum
\r
#include <string.h>\r
\r
-static const uint16_t FIRMWARE_VERSION = 0x0631;\r
+static const uint16_t FIRMWARE_VERSION = 0x0632;\r
\r
// Optional static config\r
extern uint8_t* __fixed_config;\r
static uint32_t\r
calcReadahead(uint32_t totalBytes, uint32_t sdSpeedKBs, uint32_t scsiSpeedKBs)\r
{\r
- if (scsiSpeedKBs == 0 || scsiDev.hostSpeedMeasured == 0)\r
+ if (!(scsiDev.boardCfg.flags6 & S2S_CFG_ENABLE_BLIND_WRITES) ||\r
+ (scsiSpeedKBs == 0) ||\r
+ (scsiDev.hostSpeedMeasured == 0))\r
{\r
return totalBytes;\r
}\r
myMapLunsCtrl->SetToolTip(_("Treat LUNS as IDs instead. Supports multiple drives on XEBEC S1410 SASI Bridge"));
fgs->Add(myMapLunsCtrl);
+
+ fgs->Add(new wxStaticText(this, wxID_ANY, wxT("")));
+ myBlindWriteCtrl =
+ new wxCheckBox(
+ this,
+ ID_blindWriteCtrl,
+ _("Enable Blind Writes"));
+ myBlindWriteCtrl->SetToolTip(_("Enable writing to the SD card before all the SCSI data has been received."));
+ fgs->Add(myBlindWriteCtrl);
+
wxBoxSizer* hbox = new wxBoxSizer(wxHORIZONTAL);
hbox->Add(fgs, 1, wxALL | wxEXPAND, 15);
this->SetSizer(hbox);
(myMapLunsCtrl->IsChecked() ? S2S_CFG_MAP_LUNS_TO_IDS : 0);
config.flags6 = (myTermCtrl->IsChecked() ? S2S_CFG_ENABLE_TERMINATOR : 0);
+ config.flags6 = (myBlindWriteCtrl->IsChecked() ? S2S_CFG_ENABLE_BLIND_WRITES : 0);
config.startupDelay = CtrlGetValue<unsigned int>(myStartDelayCtrl).first;
config.selectionDelay = CtrlGetValue<unsigned int>(mySelDelayCtrl).first;
myUnitAttCtrl->SetValue(config.flags & S2S_CFG_ENABLE_UNIT_ATTENTION);
myScsi2Ctrl->SetValue(config.flags & S2S_CFG_ENABLE_SCSI2);
myTermCtrl->SetValue(config.flags6 & S2S_CFG_ENABLE_TERMINATOR);
+ myBlindWriteCtrl->SetValue(config.flags6 & S2S_CFG_ENABLE_BLIND_WRITES);
mySelLatchCtrl->SetValue(config.flags & S2S_CFG_ENABLE_SEL_LATCH);
myMapLunsCtrl->SetValue(config.flags & S2S_CFG_MAP_LUNS_TO_IDS);
ID_mapLunsCtrl,
ID_startDelayCtrl,
ID_selDelayCtrl,
- ID_scsiSpeedCtrl
+ ID_scsiSpeedCtrl,
+ ID_blindWriteCtrl,
};
wxWindow* myParent;
wxCheckBox* myTermCtrl;
wxCheckBox* mySelLatchCtrl;
wxCheckBox* myMapLunsCtrl;
+ wxCheckBox* myBlindWriteCtrl;
wxIntegerValidator<uint8_t>* myDelayValidator;
wxTextCtrl* myStartDelayCtrl;
" ********************************************************* -->\n" <<
" <scsiSpeed>" << static_cast<int>(config.scsiSpeed) << "</scsiSpeed>\n" <<
+ " <!-- ********************************************************\n" <<
+ " Enable SD card blind writes, which starts writing to the SD\n"
+ " card before all the SCSI data has been received. Can cause problems\n" <<
+ " with some SCSI hosts\n" <<
+ " ********************************************************* -->\n" <<
+ " <blindWrites>" <<
+ (config.flags6 & S2S_CFG_ENABLE_BLIND_WRITES ? "true" : "false") <<
+ "</blindWrites>\n" <<
+
"</S2S_BoardCfg>\n";
return s.str();
result.flags6 = result.flags & ~S2S_CFG_ENABLE_TERMINATOR;
}
}
+ else if (child->GetName() == "blindWrites")
+ {
+ std::string s(child->GetNodeContent().mb_str());
+ if (s == "true")
+ {
+ result.flags6 |= S2S_CFG_ENABLE_BLIND_WRITES;
+ }
+ else
+ {
+ result.flags6 = result.flags & ~S2S_CFG_ENABLE_BLIND_WRITES;
+ }
+ }
else if (child->GetName() == "selLatch")
{
std::string s(child->GetNodeContent().mb_str());
CC=clang -mmacosx-version-min=10.7
CXX=clang++ -stdlib=libc++ -mmacosx-version-min=10.7
WX_CONFIG += --with-macosx-version-min=10.7
+ CPPFLAGS_WXBUILD += -D__ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES=1
LIBUSB_CONFIG += --with-macosx-version-min=10.7 --disable-shared
LDFLAGS_LIBUSB += -lobjc
DFU-UTIL_CONFIG += --with-macosx-version-min=10.7 --disable-shared
endif
ifneq ($(USE_SYSTEM_WX),Yes)
+$(OBJ): $(BUILD)/wx/buildstamp
$(WXOBJ): $(BUILD)/wx/buildstamp
$(EXEOBJ): $(BUILD)/wx/buildstamp
ifneq ($(USE_SYSTEM_ZLIB),Yes)
mkdir -p $(dir $@)
( \
cd $(dir $@) && \
- $(CURDIR)/wxWidgets/configure $(WX_CONFIG) CPPFLAGS="$(CPPFLAGS_ZLIB)" LDFLAGS="$(LDFLAGS_ZLIB)" && \
+ $(CURDIR)/wxWidgets/configure $(WX_CONFIG) CPPFLAGS="$(CPPFLAGS_ZLIB) $(CPPFLAGS_WXBUILD)" LDFLAGS="$(LDFLAGS_ZLIB)" && \
$(MAKE) \
) && \
touch $@