FIRE3: Add reboot support

This commit is contained in:
David Rebbe
2026-06-19 17:58:49 -04:00
committed by Kyle Schwarz
parent 54fb89b675
commit 8af6d5f2a8
11 changed files with 77 additions and 0 deletions
+7
View File
@@ -862,10 +862,17 @@ public:
virtual bool supportsGPTP() const { return false; }
virtual bool supportsReboot() const { return false; }
bool requestTC10Wake(Network::NetID network);
bool requestTC10Sleep(Network::NetID network);
// Reboot the device. When safe is true the device boots the Linux rescue image and does not
// load coremini ("safe boot"); otherwise it reboots normally. The device reboots in response,
// so no reply is expected. Only supported on devices where supportsReboot() is true.
bool reboot(bool safe = false);
std::optional<TC10StatusMessage> getTC10Status(Network::NetID network);
std::optional<GPTPStatus> getGPTPStatus(std::chrono::milliseconds timeout = std::chrono::milliseconds(100));
@@ -34,6 +34,8 @@ public:
return supportedNetworks;
}
bool supportsReboot() const override { return true; }
ProductID getProductID() const override {
return ProductID::Connect;
}
@@ -53,6 +53,8 @@ public:
}
size_t getEthernetActivationLineCount() const override { return 2; }
bool supportsReboot() const override { return true; }
ProductID getProductID() const override {
return ProductID::neoVIFIRE3;
}
@@ -55,6 +55,8 @@ public:
return supportedNetworks;
}
bool supportsReboot() const override { return true; }
ProductID getProductID() const override {
return ProductID::neoVIFIRE3;
}
@@ -61,6 +61,8 @@ public:
bool supportsTC10() const override { return true; }
bool supportsReboot() const override { return true; }
ProductID getProductID() const override {
return ProductID::neoVIFIRE3;
}
@@ -39,6 +39,8 @@ public:
bool supportsGPTP() const override { return true; }
bool supportsReboot() const override { return true; }
ProductID getProductID() const override {
return ProductID::neoVIFIRE3;
}
+23
View File
@@ -602,6 +602,29 @@ icsneoc2_error_t icsneoc2_device_supports_gptp(const icsneoc2_device_t* device,
* @return icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters or icsneoc2_error_invalid_type otherwise.
*/
icsneoc2_error_t icsneoc2_device_gptp_status_get(const icsneoc2_device_t* device, uint32_t timeout_ms, icsneoc2_gptp_status_t* status);
/**
* Check if the device supports rebooting.
*
* @param[in] device The device to check against.
* @param[out] supported Pointer to a bool to copy the value into.
*
* @return icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters otherwise.
*/
icsneoc2_error_t icsneoc2_device_supports_reboot(const icsneoc2_device_t* device, bool* supported);
/**
* Reboot the device. When safe is true the device boots the Linux rescue image and does not load
* coremini ("safe boot"); otherwise it reboots normally. The device reboots in response, so no reply
* is expected. Only supported on devices where icsneoc2_device_supports_reboot() reports true.
*
* @param[in] device The device to reboot.
* @param[in] safe true to reboot into safe boot mode, false to reboot normally.
*
* @return icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters or icsneoc2_error_transmit_message_failed otherwise.
*/
icsneoc2_error_t icsneoc2_device_reboot(const icsneoc2_device_t* device, bool safe);
/**
* Get the current state of a digital I/O pin.
*