diff --git a/libpfr/inc/pfr.hpp b/libpfr/inc/pfr.hpp
index 6ae6d60..c0d3c11 100644
--- a/libpfr/inc/pfr.hpp
+++ b/libpfr/inc/pfr.hpp
@@ -45,6 +45,7 @@
 int getProvisioningStatus(bool& ufmLocked, bool& ufmProvisioned,
                           bool& ufmSupport);
 int readCpldReg(const ActionType& action, uint8_t& value);
+std::string readCPLDVersion();
 int setBMCBootCheckpoint(const uint8_t checkPoint);
 
 } // namespace pfr
diff --git a/libpfr/src/pfr.cpp b/libpfr/src/pfr.cpp
index a01b845..64476f4 100644
--- a/libpfr/src/pfr.cpp
+++ b/libpfr/src/pfr.cpp
@@ -248,7 +248,7 @@
     return true;
 }
 
-static std::string readCPLDVersion()
+std::string readCPLDVersion()
 {
     // CPLD SGPIO lines
     gpiod::line mainCPLDLine;
diff --git a/service/src/mainapp.cpp b/service/src/mainapp.cpp
index 316bdda..ba714fe 100644
--- a/service/src/mainapp.cpp
+++ b/service/src/mainapp.cpp
@@ -49,8 +49,6 @@
                         versionPurposeBMC),
         std::make_tuple("bios_recovery", ImageType::biosRecovery,
                         versionPurposeHost),
-        std::make_tuple("cpld_active", ImageType::cpldActive,
-                        versionPurposeOther),
         std::make_tuple("cpld_recovery", ImageType::cpldRecovery,
                         versionPurposeOther),
 };
@@ -456,6 +454,27 @@
     checkAndLogEvents();
 }
 
+static void updateCPLDversion(std::shared_ptr<sdbusplus::asio::connection> conn)
+{
+    std::string cpldVersion = pfr::readCPLDVersion();
+    conn->async_method_call(
+        [](const boost::system::error_code ec) {
+            if (ec)
+            {
+                phosphor::logging::log<phosphor::logging::level::ERR>(
+                    "Unable to update cpld_active version",
+                    phosphor::logging::entry("MSG=%s", ec.message().c_str()));
+                return;
+            }
+        },
+        "xyz.openbmc_project.Settings",
+        "/xyz/openbmc_project/software/cpld_active",
+        "org.freedesktop.DBus.Properties", "Set",
+        "xyz.openbmc_project.Software.Version", "Version",
+        std::variant<std::string>(cpldVersion));
+    return;
+}
+
 } // namespace pfr
 
 int main()
@@ -468,6 +487,9 @@
     auto server = sdbusplus::asio::object_server(conn, true);
     pfr::monitorSignals(server, conn);
 
+    // Update CPLD Version to cpld_active object in settings.
+    pfr::updateCPLDversion(conn);
+
     server.add_manager("/xyz/openbmc_project/pfr");
 
     // Create PFR attributes object and interface
