Device: Fix bootloader phases
parent
615b7d8d56
commit
39b54d8c4e
|
|
@ -435,7 +435,13 @@ bool Device::reconnect(std::chrono::milliseconds timeout, std::chrono::milliseco
|
||||||
// Pause reads again
|
// Pause reads again
|
||||||
com->pauseReads();
|
com->pauseReads();
|
||||||
}
|
}
|
||||||
return com->open();
|
if(com->open()) {
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
if(readsArePaused) {
|
||||||
|
com->resumeReads();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
std::this_thread::sleep_for(interval);
|
std::this_thread::sleep_for(interval);
|
||||||
|
|
|
||||||
|
|
@ -52,6 +52,7 @@ public:
|
||||||
.add<FlashPhase>(ChipID::Connect_LINUX, BootloaderCommunication::Application, false, false, false)
|
.add<FlashPhase>(ChipID::Connect_LINUX, BootloaderCommunication::Application, false, false, false)
|
||||||
.add<FinalizePhase>(ChipID::Connect_ZCHIP, BootloaderCommunication::Application)
|
.add<FinalizePhase>(ChipID::Connect_ZCHIP, BootloaderCommunication::Application)
|
||||||
.add<FinalizePhase>(ChipID::Connect_LINUX, BootloaderCommunication::Application)
|
.add<FinalizePhase>(ChipID::Connect_LINUX, BootloaderCommunication::Application)
|
||||||
|
.add<EnterApplicationPhase>(ChipID::Connect_ZCHIP)
|
||||||
.add<ReconnectPhase>()
|
.add<ReconnectPhase>()
|
||||||
.addSetting(BootloaderSetting::UpdateAll, true);
|
.addSetting(BootloaderSetting::UpdateAll, true);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -75,6 +75,7 @@ public:
|
||||||
.add<FinalizePhase>(ChipID::neoVIFIRE3_SCHIP, BootloaderCommunication::Application)
|
.add<FinalizePhase>(ChipID::neoVIFIRE3_SCHIP, BootloaderCommunication::Application)
|
||||||
.add<FinalizePhase>(ChipID::neoVIFIRE3_LINUX, BootloaderCommunication::Application)
|
.add<FinalizePhase>(ChipID::neoVIFIRE3_LINUX, BootloaderCommunication::Application)
|
||||||
.add<FinalizePhase>(ChipID::VEM_01_8DW_ZCHIP, BootloaderCommunication::Application)
|
.add<FinalizePhase>(ChipID::VEM_01_8DW_ZCHIP, BootloaderCommunication::Application)
|
||||||
|
.add<EnterApplicationPhase>(ChipID::neoVIFIRE3_ZCHIP)
|
||||||
.add<ReconnectPhase>()
|
.add<ReconnectPhase>()
|
||||||
.addSetting(BootloaderSetting::UpdateAll, true);
|
.addSetting(BootloaderSetting::UpdateAll, true);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -80,6 +80,7 @@ public:
|
||||||
.add<FinalizePhase>(ChipID::neoVIFIRE3_LINUX, BootloaderCommunication::Application)
|
.add<FinalizePhase>(ChipID::neoVIFIRE3_LINUX, BootloaderCommunication::Application)
|
||||||
.add<FinalizePhase>(ChipID::VEM_02_FR_FCHIP, BootloaderCommunication::Application)
|
.add<FinalizePhase>(ChipID::VEM_02_FR_FCHIP, BootloaderCommunication::Application)
|
||||||
.add<FinalizePhase>(ChipID::VEM_02_FR_ZCHIP, BootloaderCommunication::Application)
|
.add<FinalizePhase>(ChipID::VEM_02_FR_ZCHIP, BootloaderCommunication::Application)
|
||||||
|
.add<EnterApplicationPhase>(ChipID::neoVIFIRE3_ZCHIP)
|
||||||
.add<ReconnectPhase>()
|
.add<ReconnectPhase>()
|
||||||
.addSetting(BootloaderSetting::UpdateAll, true);
|
.addSetting(BootloaderSetting::UpdateAll, true);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -58,6 +58,7 @@ public:
|
||||||
.add<FinalizePhase>(ChipID::neoVIFIRE3_ZCHIP, BootloaderCommunication::Application)
|
.add<FinalizePhase>(ChipID::neoVIFIRE3_ZCHIP, BootloaderCommunication::Application)
|
||||||
.add<FinalizePhase>(ChipID::neoVIFIRE3_SCHIP, BootloaderCommunication::Application)
|
.add<FinalizePhase>(ChipID::neoVIFIRE3_SCHIP, BootloaderCommunication::Application)
|
||||||
.add<FinalizePhase>(ChipID::neoVIFIRE3_LINUX, BootloaderCommunication::Application)
|
.add<FinalizePhase>(ChipID::neoVIFIRE3_LINUX, BootloaderCommunication::Application)
|
||||||
|
.add<EnterApplicationPhase>(ChipID::neoVIFIRE3_ZCHIP)
|
||||||
.add<ReconnectPhase>()
|
.add<ReconnectPhase>()
|
||||||
.addSetting(BootloaderSetting::UpdateAll, true);
|
.addSetting(BootloaderSetting::UpdateAll, true);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -58,7 +58,7 @@ public:
|
||||||
return BootloaderPipeline()
|
return BootloaderPipeline()
|
||||||
.add<EnterBootloaderPhase>()
|
.add<EnterBootloaderPhase>()
|
||||||
.add<FlashPhase>(ChipID::RADA2B_ZCHIP, BootloaderCommunication::RAD)
|
.add<FlashPhase>(ChipID::RADA2B_ZCHIP, BootloaderCommunication::RAD)
|
||||||
.add<ReconnectPhase>()
|
// .add<ReconnectPhase>()
|
||||||
.add<WaitPhase>(std::chrono::milliseconds(3000));
|
.add<WaitPhase>(std::chrono::milliseconds(3000));
|
||||||
}
|
}
|
||||||
protected:
|
protected:
|
||||||
|
|
|
||||||
|
|
@ -45,8 +45,8 @@ public:
|
||||||
return BootloaderPipeline()
|
return BootloaderPipeline()
|
||||||
.add<EnterBootloaderPhase>()
|
.add<EnterBootloaderPhase>()
|
||||||
.add<FlashPhase>(ChipID::RADComet_ZYNQ, BootloaderCommunication::RAD)
|
.add<FlashPhase>(ChipID::RADComet_ZYNQ, BootloaderCommunication::RAD)
|
||||||
.add<ReconnectPhase>()
|
.add<WaitPhase>(std::chrono::milliseconds(3000))
|
||||||
.add<WaitPhase>(std::chrono::milliseconds(3000));
|
.add<ReconnectPhase>();
|
||||||
}
|
}
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|
|
||||||
|
|
@ -69,8 +69,8 @@ public:
|
||||||
return BootloaderPipeline()
|
return BootloaderPipeline()
|
||||||
.add<EnterBootloaderPhase>()
|
.add<EnterBootloaderPhase>()
|
||||||
.add<FlashPhase>(ChipID::RADCOMET3_ZCHIP, BootloaderCommunication::RAD)
|
.add<FlashPhase>(ChipID::RADCOMET3_ZCHIP, BootloaderCommunication::RAD)
|
||||||
.add<ReconnectPhase>()
|
.add<WaitPhase>(std::chrono::milliseconds(5000))
|
||||||
.add<WaitPhase>(std::chrono::milliseconds(3000));
|
.add<ReconnectPhase>();
|
||||||
}
|
}
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|
|
||||||
|
|
@ -40,6 +40,7 @@ public:
|
||||||
return BootloaderPipeline()
|
return BootloaderPipeline()
|
||||||
.add<EnterBootloaderPhase>()
|
.add<EnterBootloaderPhase>()
|
||||||
.add<FlashPhase>(ChipID::RADEpsilon_MCHIP, BootloaderCommunication::RED)
|
.add<FlashPhase>(ChipID::RADEpsilon_MCHIP, BootloaderCommunication::RED)
|
||||||
|
.add<EnterApplicationPhase>(ChipID::RADEpsilon_MCHIP)
|
||||||
.add<ReconnectPhase>();
|
.add<ReconnectPhase>();
|
||||||
}
|
}
|
||||||
bool supportsComponentVersions() const override { return true; }
|
bool supportsComponentVersions() const override { return true; }
|
||||||
|
|
|
||||||
|
|
@ -85,6 +85,7 @@ public:
|
||||||
.add<FlashPhase>(ChipID::RAD_GALAXY_2_ZMPCHIP_ID, BootloaderCommunication::RAD)
|
.add<FlashPhase>(ChipID::RAD_GALAXY_2_ZMPCHIP_ID, BootloaderCommunication::RAD)
|
||||||
.add<ReconnectPhase>()
|
.add<ReconnectPhase>()
|
||||||
.add<FlashPhase>(ChipID::RADGALAXY2_SYSMON_CHIP, BootloaderCommunication::RADGalaxy2Peripheral)
|
.add<FlashPhase>(ChipID::RADGALAXY2_SYSMON_CHIP, BootloaderCommunication::RADGalaxy2Peripheral)
|
||||||
|
.add<EnterApplicationPhase>(ChipID::RAD_GALAXY_2_ZMPCHIP_ID)
|
||||||
.add<ReconnectPhase>()
|
.add<ReconnectPhase>()
|
||||||
.add<WaitPhase>(std::chrono::milliseconds(3000));
|
.add<WaitPhase>(std::chrono::milliseconds(3000));
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -84,8 +84,8 @@ public:
|
||||||
pipeline.add<FlashPhase>(version.id, BootloaderCommunication::RADMultiChip);
|
pipeline.add<FlashPhase>(version.id, BootloaderCommunication::RADMultiChip);
|
||||||
}
|
}
|
||||||
pipeline.add<EnterApplicationPhase>(mainChipID);
|
pipeline.add<EnterApplicationPhase>(mainChipID);
|
||||||
pipeline.add<ReconnectPhase>();
|
|
||||||
pipeline.add<WaitPhase>(std::chrono::milliseconds(3000));
|
pipeline.add<WaitPhase>(std::chrono::milliseconds(3000));
|
||||||
|
pipeline.add<ReconnectPhase>();
|
||||||
return pipeline;
|
return pipeline;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -93,13 +93,13 @@ public:
|
||||||
if(com->driver->isEthernet()) {
|
if(com->driver->isEthernet()) {
|
||||||
return BootloaderPipeline()
|
return BootloaderPipeline()
|
||||||
.add<FlashPhase>(ChipID::RADGigastar_ZYNQ, BootloaderCommunication::RAD)
|
.add<FlashPhase>(ChipID::RADGigastar_ZYNQ, BootloaderCommunication::RAD)
|
||||||
.add<ReconnectPhase>()
|
.add<WaitPhase>(std::chrono::milliseconds(3000))
|
||||||
.add<WaitPhase>(std::chrono::milliseconds(3000));
|
.add<ReconnectPhase>();
|
||||||
}
|
}
|
||||||
return BootloaderPipeline()
|
return BootloaderPipeline()
|
||||||
.add<FlashPhase>(ChipID::RADGigastar_USBZ_ZYNQ, BootloaderCommunication::RAD)
|
.add<FlashPhase>(ChipID::RADGigastar_USBZ_ZYNQ, BootloaderCommunication::RAD)
|
||||||
.add<ReconnectPhase>()
|
.add<WaitPhase>(std::chrono::milliseconds(3000))
|
||||||
.add<WaitPhase>(std::chrono::milliseconds(3000));
|
.add<ReconnectPhase>();
|
||||||
}
|
}
|
||||||
|
|
||||||
std::vector<VersionReport> getChipVersions(bool refreshComponents = true) override {
|
std::vector<VersionReport> getChipVersions(bool refreshComponents = true) override {
|
||||||
|
|
|
||||||
|
|
@ -163,8 +163,8 @@ public:
|
||||||
pipeline.add<FlashPhase>(version.id, BootloaderCommunication::RADMultiChip);
|
pipeline.add<FlashPhase>(version.id, BootloaderCommunication::RADMultiChip);
|
||||||
}
|
}
|
||||||
pipeline.add<EnterApplicationPhase>(mainChipID);
|
pipeline.add<EnterApplicationPhase>(mainChipID);
|
||||||
pipeline.add<ReconnectPhase>();
|
|
||||||
pipeline.add<WaitPhase>(std::chrono::milliseconds(3000));
|
pipeline.add<WaitPhase>(std::chrono::milliseconds(3000));
|
||||||
|
pipeline.add<ReconnectPhase>();
|
||||||
return pipeline;
|
return pipeline;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -33,8 +33,9 @@ public:
|
||||||
return BootloaderPipeline()
|
return BootloaderPipeline()
|
||||||
.add<EnterBootloaderPhase>()
|
.add<EnterBootloaderPhase>()
|
||||||
.add<FlashPhase>(ChipID::RADMoon2_ZYNQ, BootloaderCommunication::RAD)
|
.add<FlashPhase>(ChipID::RADMoon2_ZYNQ, BootloaderCommunication::RAD)
|
||||||
.add<ReconnectPhase>()
|
.add<EnterApplicationPhase>(ChipID::RADMoon2_ZYNQ)
|
||||||
.add<WaitPhase>(std::chrono::milliseconds(3000));
|
.add<WaitPhase>(std::chrono::milliseconds(3000))
|
||||||
|
.add<ReconnectPhase>();
|
||||||
}
|
}
|
||||||
protected:
|
protected:
|
||||||
RADMoon2(neodevice_t neodevice, const driver_factory_t& makeDriver) : RADMoon2Base(neodevice) {
|
RADMoon2(neodevice_t neodevice, const driver_factory_t& makeDriver) : RADMoon2Base(neodevice) {
|
||||||
|
|
|
||||||
|
|
@ -33,6 +33,8 @@ public:
|
||||||
return BootloaderPipeline()
|
return BootloaderPipeline()
|
||||||
.add<EnterBootloaderPhase>()
|
.add<EnterBootloaderPhase>()
|
||||||
.add<FlashPhase>(ChipID::RADMoon2_ZL_MCHIP, BootloaderCommunication::RED)
|
.add<FlashPhase>(ChipID::RADMoon2_ZL_MCHIP, BootloaderCommunication::RED)
|
||||||
|
.add<EnterApplicationPhase>(ChipID::RADMoon2_ZL_MCHIP)
|
||||||
|
.add<WaitPhase>(std::chrono::milliseconds(3000))
|
||||||
.add<ReconnectPhase>();
|
.add<ReconnectPhase>();
|
||||||
}
|
}
|
||||||
protected:
|
protected:
|
||||||
|
|
|
||||||
|
|
@ -45,8 +45,9 @@ public:
|
||||||
return BootloaderPipeline()
|
return BootloaderPipeline()
|
||||||
.add<EnterBootloaderPhase>()
|
.add<EnterBootloaderPhase>()
|
||||||
.add<FlashPhase>(ChipID::RADMoon3_MCHIP, BootloaderCommunication::RED)
|
.add<FlashPhase>(ChipID::RADMoon3_MCHIP, BootloaderCommunication::RED)
|
||||||
.add<ReconnectPhase>()
|
.add<EnterApplicationPhase>(ChipID::RADMoon3_MCHIP)
|
||||||
.add<WaitPhase>(std::chrono::milliseconds(3000));
|
.add<WaitPhase>(std::chrono::milliseconds(3000))
|
||||||
|
.add<ReconnectPhase>();
|
||||||
}
|
}
|
||||||
protected:
|
protected:
|
||||||
RADMoon3(neodevice_t neodevice, const driver_factory_t& makeDriver) : Device(neodevice) {
|
RADMoon3(neodevice_t neodevice, const driver_factory_t& makeDriver) : Device(neodevice) {
|
||||||
|
|
|
||||||
|
|
@ -31,11 +31,13 @@ public:
|
||||||
};
|
};
|
||||||
return chips;
|
return chips;
|
||||||
}
|
}
|
||||||
|
|
||||||
BootloaderPipeline getBootloader() override {
|
BootloaderPipeline getBootloader() override {
|
||||||
return BootloaderPipeline()
|
return BootloaderPipeline()
|
||||||
.add<EnterBootloaderPhase>()
|
.add<EnterBootloaderPhase>()
|
||||||
.add<FlashPhase>(ChipID::ValueCAN4_1_MCHIP, BootloaderCommunication::RED)
|
.add<FlashPhase>(ChipID::ValueCAN4_1_MCHIP, BootloaderCommunication::RED)
|
||||||
|
.add<EnterApplicationPhase>(ChipID::ValueCAN4_1_MCHIP)
|
||||||
|
.add<WaitPhase>(std::chrono::milliseconds(3000))
|
||||||
.add<ReconnectPhase>();
|
.add<ReconnectPhase>();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -61,8 +61,9 @@ public:
|
||||||
return BootloaderPipeline()
|
return BootloaderPipeline()
|
||||||
.add<EnterBootloaderPhase>()
|
.add<EnterBootloaderPhase>()
|
||||||
.add<FlashPhase>(ChipID::ValueCAN4_2_MCHIP, BootloaderCommunication::RED)
|
.add<FlashPhase>(ChipID::ValueCAN4_2_MCHIP, BootloaderCommunication::RED)
|
||||||
.add<ReconnectPhase>()
|
.add<EnterApplicationPhase>(ChipID::ValueCAN4_2_MCHIP)
|
||||||
.add<WaitPhase>(std::chrono::milliseconds(3000));
|
.add<WaitPhase>(std::chrono::milliseconds(3000))
|
||||||
|
.add<ReconnectPhase>();
|
||||||
}
|
}
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|
|
||||||
|
|
@ -66,7 +66,7 @@ public:
|
||||||
|
|
||||||
const std::vector<ChipInfo>& getChipInfo() const override {
|
const std::vector<ChipInfo>& getChipInfo() const override {
|
||||||
static std::vector<ChipInfo> chips = {
|
static std::vector<ChipInfo> chips = {
|
||||||
{ChipID::ValueCAN4_2EL_MCHIP, true, "MCHIP", "vcan44_mchip_ief", 0, FirmwareType::IEF}
|
{ChipID::ValueCAN4_2EL_MCHIP, true, "MCHIP", "vcan44_mchip_ief", 0, FirmwareType::IEF},
|
||||||
};
|
};
|
||||||
return chips;
|
return chips;
|
||||||
}
|
}
|
||||||
|
|
@ -75,6 +75,8 @@ public:
|
||||||
return BootloaderPipeline()
|
return BootloaderPipeline()
|
||||||
.add<EnterBootloaderPhase>()
|
.add<EnterBootloaderPhase>()
|
||||||
.add<FlashPhase>(ChipID::ValueCAN4_2EL_MCHIP, BootloaderCommunication::RED)
|
.add<FlashPhase>(ChipID::ValueCAN4_2EL_MCHIP, BootloaderCommunication::RED)
|
||||||
|
.add<EnterApplicationPhase>(ChipID::ValueCAN4_2EL_MCHIP)
|
||||||
|
.add<WaitPhase>(std::chrono::milliseconds(3000))
|
||||||
.add<ReconnectPhase>();
|
.add<ReconnectPhase>();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -64,7 +64,8 @@ public:
|
||||||
const std::vector<ChipInfo>& getChipInfo() const override {
|
const std::vector<ChipInfo>& getChipInfo() const override {
|
||||||
static std::vector<ChipInfo> chips = {
|
static std::vector<ChipInfo> chips = {
|
||||||
{ChipID::ValueCAN4_4_MCHIP, true, "MCHIP", "vcan44_mchip_ief", 0, FirmwareType::IEF},
|
{ChipID::ValueCAN4_4_MCHIP, true, "MCHIP", "vcan44_mchip_ief", 0, FirmwareType::IEF},
|
||||||
{ChipID::ValueCAN4_4_SCHIP, true, "SCHIP", "vcan44_schip_ief", 1, FirmwareType::IEF}
|
{ChipID::ValueCAN4_4_SCHIP, true, "SCHIP", "vcan44_schip_ief", 1, FirmwareType::IEF},
|
||||||
|
{ChipID::ValueCAN4_4_2EL_Core, true, "Core", "vcan44_core_ief", 2, FirmwareType::IEF}
|
||||||
};
|
};
|
||||||
return chips;
|
return chips;
|
||||||
}
|
}
|
||||||
|
|
@ -73,7 +74,10 @@ public:
|
||||||
return BootloaderPipeline()
|
return BootloaderPipeline()
|
||||||
.add<EnterBootloaderPhase>()
|
.add<EnterBootloaderPhase>()
|
||||||
.add<FlashPhase>(ChipID::ValueCAN4_4_MCHIP, BootloaderCommunication::RED)
|
.add<FlashPhase>(ChipID::ValueCAN4_4_MCHIP, BootloaderCommunication::RED)
|
||||||
.add<FlashPhase>(ChipID::ValueCAN4_4_SCHIP, BootloaderCommunication::RED, false, true)
|
.add<FlashPhase>(ChipID::ValueCAN4_4_SCHIP, BootloaderCommunication::RED)
|
||||||
|
.add<FlashPhase>(ChipID::ValueCAN4_4_2EL_Core, BootloaderCommunication::REDCore)
|
||||||
|
.add<EnterApplicationPhase>(ChipID::ValueCAN4_4_MCHIP)
|
||||||
|
.add<WaitPhase>(std::chrono::milliseconds(3000))
|
||||||
.add<ReconnectPhase>();
|
.add<ReconnectPhase>();
|
||||||
}
|
}
|
||||||
protected:
|
protected:
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue