From 9b55d31625a882879d584e05ad28d727d9aa2d2f Mon Sep 17 00:00:00 2001 From: Vikram Bodireddy Date: Thu, 5 Dec 2019 11:06:15 +0530 Subject: Add CPLD recovery image support Support added to expose the CPLD recovery image inventory details. Tested: Verified that CPLD recovery inventory object is exposed in Redfish Software inventory query. Change-Id: Ifd92e31f7c940647c7cb2cfb353ec58220032545 Signed-off-by: Vikram Bodireddy --- intel-pfr-manager/libpfr/inc/pfr.hpp | 3 ++- intel-pfr-manager/libpfr/src/pfr.cpp | 4 +++- intel-pfr-manager/service/src/mainapp.cpp | 6 +++++- intel-pfr-manager/service/src/pfr_mgr.cpp | 3 ++- 4 files changed, 12 insertions(+), 4 deletions(-) diff --git a/intel-pfr-manager/libpfr/inc/pfr.hpp b/intel-pfr-manager/libpfr/inc/pfr.hpp index 542cb51..8bf3082 100644 --- a/intel-pfr-manager/libpfr/inc/pfr.hpp +++ b/intel-pfr-manager/libpfr/inc/pfr.hpp @@ -24,7 +24,8 @@ namespace pfr enum class ImageType { - cpld, + cpldActive, + cpldRecovery, biosActive, biosRecovery, bmcActive, diff --git a/intel-pfr-manager/libpfr/src/pfr.cpp b/intel-pfr-manager/libpfr/src/pfr.cpp index 5e43d48..a5316ba 100644 --- a/intel-pfr-manager/libpfr/src/pfr.cpp +++ b/intel-pfr-manager/libpfr/src/pfr.cpp @@ -155,8 +155,10 @@ std::string getFirmwareVersion(const ImageType& imgType) { switch (imgType) { - case (ImageType::cpld): + case (ImageType::cpldActive): + case (ImageType::cpldRecovery): { + // TO-DO: Need to update once CPLD supported Firmware is available return readVersionFromCPLD(cpldROTVersion, cpldROTSvn); } case (ImageType::biosActive): diff --git a/intel-pfr-manager/service/src/mainapp.cpp b/intel-pfr-manager/service/src/mainapp.cpp index 761b25e..c92a5d0 100644 --- a/intel-pfr-manager/service/src/mainapp.cpp +++ b/intel-pfr-manager/service/src/mainapp.cpp @@ -50,7 +50,11 @@ static std::vector> versionPurposeHost), std::make_tuple("bios_recovery", ImageType::biosRecovery, versionPurposeHost), - std::make_tuple("cpld", ImageType::cpld, versionPurposeOther)}; + std::make_tuple("cpld_active", ImageType::cpldActive, + versionPurposeOther), + std::make_tuple("cpld_recovery", ImageType::cpldRecovery, + versionPurposeOther), +}; // Recovery reason map. // {,{, }} diff --git a/intel-pfr-manager/service/src/pfr_mgr.cpp b/intel-pfr-manager/service/src/pfr_mgr.cpp index 318abe2..ed97fd2 100644 --- a/intel-pfr-manager/service/src/pfr_mgr.cpp +++ b/intel-pfr-manager/service/src/pfr_mgr.cpp @@ -61,7 +61,8 @@ PfrVersion::PfrVersion(sdbusplus::asio::object_server &srv_, * "RequestedActivation" to None. */ std::string activation = (imgType == ImageType::bmcRecovery || - imgType == ImageType::biosRecovery) + imgType == ImageType::biosRecovery || + imgType == ImageType::cpldRecovery) ? "xyz.openbmc_project.Software.Activation.Activations.StandbySpare" : "xyz.openbmc_project.Software.Activation.Activations.Active"; std::string reqActNone = -- cgit v1.2.3