Compare commits
5 Commits
58384702db
...
1c32e3abae
| Author | SHA1 | Date |
|---|---|---|
|
|
1c32e3abae | |
|
|
294e707924 | |
|
|
22d2b7c984 | |
|
|
5a4a1489a8 | |
|
|
31d4a750d8 |
|
|
@ -360,7 +360,7 @@ if(LIBICSNEO_ENABLE_DXX)
|
||||||
include(FetchContent)
|
include(FetchContent)
|
||||||
FetchContent_Declare(libredxx
|
FetchContent_Declare(libredxx
|
||||||
GIT_REPOSITORY https://github.com/Zeranoe/libredxx.git
|
GIT_REPOSITORY https://github.com/Zeranoe/libredxx.git
|
||||||
GIT_TAG 267abf26a99fa69ed80a4180b155245a36fad101
|
GIT_TAG e823a96c39a64ab41b7d1632dbe8f86bb854df83
|
||||||
)
|
)
|
||||||
set(LIBREDXX_DISABLE_INSTALL ON)
|
set(LIBREDXX_DISABLE_INSTALL ON)
|
||||||
FetchContent_MakeAvailable(libredxx)
|
FetchContent_MakeAvailable(libredxx)
|
||||||
|
|
|
||||||
|
|
@ -133,6 +133,10 @@ EthernetPacketizer::EthernetPacket::EthernetPacket(const uint8_t* data, size_t s
|
||||||
|
|
||||||
int EthernetPacketizer::EthernetPacket::loadBytestream(const std::vector<uint8_t>& bytestream) {
|
int EthernetPacketizer::EthernetPacket::loadBytestream(const std::vector<uint8_t>& bytestream) {
|
||||||
errorWhileDecodingFromBytestream = 0;
|
errorWhileDecodingFromBytestream = 0;
|
||||||
|
if (bytestream.size() < 24) {
|
||||||
|
errorWhileDecodingFromBytestream = 1;
|
||||||
|
return errorWhileDecodingFromBytestream;
|
||||||
|
}
|
||||||
for(size_t i = 0; i < 6; i++)
|
for(size_t i = 0; i < 6; i++)
|
||||||
destMAC[i] = bytestream[i];
|
destMAC[i] = bytestream[i];
|
||||||
for(size_t i = 0; i < 6; i++)
|
for(size_t i = 0; i < 6; i++)
|
||||||
|
|
|
||||||
|
|
@ -128,6 +128,7 @@ enum class ChipID : uint8_t {
|
||||||
RADGALAXY2_SYSMON_CHIP = 123,
|
RADGALAXY2_SYSMON_CHIP = 123,
|
||||||
RADCOMET3_ZCHIP = 125,
|
RADCOMET3_ZCHIP = 125,
|
||||||
Connect_LINUX = 126,
|
Connect_LINUX = 126,
|
||||||
|
VEM_04_T1S_LIN_ZCHIP = 129,
|
||||||
RADMOONT1S_ZCHIP = 130,
|
RADMOONT1S_ZCHIP = 130,
|
||||||
RADGigastar2_ZYNQ = 131,
|
RADGigastar2_ZYNQ = 131,
|
||||||
RADGemini_MCHIP = 135,
|
RADGemini_MCHIP = 135,
|
||||||
|
|
|
||||||
|
|
@ -62,6 +62,31 @@ public:
|
||||||
ProductID getProductID() const override {
|
ProductID getProductID() const override {
|
||||||
return ProductID::neoVIFIRE3;
|
return ProductID::neoVIFIRE3;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const std::vector<ChipInfo>& getChipInfo() const override {
|
||||||
|
static std::vector<ChipInfo> chips = {
|
||||||
|
{ChipID::neoVIFIRE3_ZCHIP, true, "ZCHIP", "fire3_zchip_ief", 0, FirmwareType::IEF},
|
||||||
|
{ChipID::neoVIFIRE3_SCHIP, true, "SCHIP", "fire3_schip_ief", 1, FirmwareType::IEF},
|
||||||
|
{ChipID::neoVIFIRE3_LINUX, true, "Linux Flash", "fire3_lnx_flash_ief", 2, FirmwareType::IEF},
|
||||||
|
{ChipID::VEM_04_T1S_LIN_ZCHIP, true, "VEM-04-Z", "vem_04_t1s_lin_zchip_ief", 3, FirmwareType::IEF},
|
||||||
|
};
|
||||||
|
return chips;
|
||||||
|
}
|
||||||
|
|
||||||
|
BootloaderPipeline getBootloader() override {
|
||||||
|
return BootloaderPipeline()
|
||||||
|
.add<FlashPhase>(ChipID::neoVIFIRE3_ZCHIP, BootloaderCommunication::Application, true, false)
|
||||||
|
.add<FlashPhase>(ChipID::neoVIFIRE3_SCHIP, BootloaderCommunication::Application, false, true)
|
||||||
|
.add<FlashPhase>(ChipID::neoVIFIRE3_LINUX, BootloaderCommunication::Application, false, false, false)
|
||||||
|
.add<FlashPhase>(ChipID::VEM_04_T1S_LIN_ZCHIP, BootloaderCommunication::Application, false, false)
|
||||||
|
.add<FinalizePhase>(ChipID::neoVIFIRE3_ZCHIP, BootloaderCommunication::Application)
|
||||||
|
.add<FinalizePhase>(ChipID::neoVIFIRE3_SCHIP, BootloaderCommunication::Application)
|
||||||
|
.add<FinalizePhase>(ChipID::neoVIFIRE3_LINUX, BootloaderCommunication::Application)
|
||||||
|
.add<FinalizePhase>(ChipID::VEM_04_T1S_LIN_ZCHIP, BootloaderCommunication::Application)
|
||||||
|
.add<EnterApplicationPhase>(ChipID::neoVIFIRE3_ZCHIP)
|
||||||
|
.add<ReconnectPhase>()
|
||||||
|
.addSetting(BootloaderSetting::UpdateAll, true);
|
||||||
|
}
|
||||||
protected:
|
protected:
|
||||||
NeoVIFIRE3T1SLIN(neodevice_t neodevice, const driver_factory_t& makeDriver) : Device(neodevice) {
|
NeoVIFIRE3T1SLIN(neodevice_t neodevice, const driver_factory_t& makeDriver) : Device(neodevice) {
|
||||||
initialize<NeoVIFIRE3T1SLINSettings, Disk::ExtExtractorDiskReadDriver, Disk::NeoMemoryDiskDriver>(makeDriver);
|
initialize<NeoVIFIRE3T1SLINSettings, Disk::ExtExtractorDiskReadDriver, Disk::NeoMemoryDiskDriver>(makeDriver);
|
||||||
|
|
|
||||||
|
|
@ -103,6 +103,14 @@ public:
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool set_rcvbuf(uint32_t size) {
|
||||||
|
return ::setsockopt(mFD, SOL_SOCKET, SO_RCVBUF, (char*)&size, sizeof(size)) == 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool set_sndbuf(uint32_t size) {
|
||||||
|
return ::setsockopt(mFD, SOL_SOCKET, SO_SNDBUF, (char*)&size, sizeof(size)) == 0;
|
||||||
|
}
|
||||||
|
|
||||||
bool connect(const Address& to) {
|
bool connect(const Address& to) {
|
||||||
return ::connect(mFD, (sockaddr*)&to.sockaddr(), sizeof(sockaddr_in)) != -1;
|
return ::connect(mFD, (sockaddr*)&to.sockaddr(), sizeof(sockaddr_in)) != -1;
|
||||||
}
|
}
|
||||||
|
|
@ -203,13 +211,6 @@ public:
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool join_multicast(const std::string& interfaceIP, const std::string& multicastIP) {
|
|
||||||
ip_mreq mreq;
|
|
||||||
inet_pton(AF_INET, interfaceIP.c_str(), &mreq.imr_interface);
|
|
||||||
inet_pton(AF_INET, multicastIP.c_str(), &mreq.imr_multiaddr);
|
|
||||||
return setsockopt(mFD, IPPROTO_IP, IP_ADD_MEMBERSHIP, (const char*)&mreq, sizeof(mreq)) == 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
operator bool() const { return mFD != -1; }
|
operator bool() const { return mFD != -1; }
|
||||||
operator SocketHandleType() const { return mFD; }
|
operator SocketHandleType() const { return mFD; }
|
||||||
private:
|
private:
|
||||||
|
|
|
||||||
|
|
@ -116,6 +116,14 @@ bool Servd::open() {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
dataSocket = std::make_unique<Socket>(AF_INET, SOCK_STREAM, 0);
|
dataSocket = std::make_unique<Socket>(AF_INET, SOCK_STREAM, 0);
|
||||||
|
if(!dataSocket->set_rcvbuf(4 * 1024 * 1024)) {
|
||||||
|
EventManager::GetInstance().add(APIEvent::Type::SyscallError, APIEvent::Severity::Error);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if(!dataSocket->set_sndbuf(4 * 1024 * 1024)) {
|
||||||
|
EventManager::GetInstance().add(APIEvent::Type::SyscallError, APIEvent::Severity::Error);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
const auto& ip = tokens[0];
|
const auto& ip = tokens[0];
|
||||||
uint16_t port = 0;
|
uint16_t port = 0;
|
||||||
try {
|
try {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue