blob: 2392e488fc489164c820850d8dbe0b6963cc283d [file] [log] [blame]
#include "cpld.hpp"
namespace phosphor::software::cpld
{
sdbusplus::async::task<bool> CPLDDevice::updateDevice(const uint8_t* image,
size_t image_size)
{
if (cpldInterface == nullptr)
{
lg2::error("CPLD interface is not initialized");
co_return false;
}
else
{
setUpdateProgress(1);
if (!(co_await cpldInterface->updateFirmware(
false, image, image_size, [this](int percent) -> bool {
return this->setUpdateProgress(percent);
})))
{
lg2::error("Failed to update CPLD firmware");
co_return false;
}
setUpdateProgress(100);
lg2::info("Successfully updated CPLD");
co_return true;
}
}
sdbusplus::async::task<bool> CPLDDevice::getVersion(std::string& version)
{
if (cpldInterface == nullptr)
{
lg2::error("CPLD interface is not initialized");
co_return false;
}
else
{
if (!(co_await cpldInterface->getVersion(version)))
{
lg2::error("Failed to get CPLD version");
co_return false;
}
lg2::info("CPLD version: {VERSION}", "VERSION", version);
co_return true;
}
}
} // namespace phosphor::software::cpld