diff --git a/libpfr/inc/pfr.hpp b/libpfr/inc/pfr.hpp
index 4110f45..5b2c44d 100644
--- a/libpfr/inc/pfr.hpp
+++ b/libpfr/inc/pfr.hpp
@@ -54,7 +54,7 @@
 int getPlatformState(uint8_t& state);
 int readCpldReg(const ActionType& action, uint8_t& value);
 std::string readCPLDVersion();
-int setBMCBootCheckpoint(const uint8_t checkPoint);
+int setBMCBootCompleteChkPoint(const uint8_t checkPoint);
 void init(std::shared_ptr<sdbusplus::asio::connection> conn,
           bool& i2cConfigLoaded);
 int setBMCBusy(bool setValue);
diff --git a/libpfr/src/pfr.cpp b/libpfr/src/pfr.cpp
index 61c52f0..0997d76 100644
--- a/libpfr/src/pfr.cpp
+++ b/libpfr/src/pfr.cpp
@@ -82,6 +82,8 @@
     "MAIN_PLD_MINOR_REV_BIT1", "MAIN_PLD_MINOR_REV_BIT0"};
 
 bool exceptionFlag = true;
+extern bool bmcBootCompleteChkPointDone;
+extern bool unProvChkPointStatus;
 
 void init(std::shared_ptr<sdbusplus::asio::connection> conn,
           bool& i2cConfigLoaded)
@@ -525,7 +527,7 @@
     }
 }
 
-int setBMCBootCheckpoint(const uint8_t checkPoint)
+int setBMCBootCompleteChkPoint(const uint8_t checkPoint)
 {
     uint8_t bmcBootCheckpointReg = bmcBootCheckpoint;
 
@@ -557,6 +559,14 @@
         cpldDev.i2cWriteByteData(bmcBootCheckpointReg, checkPoint);
         phosphor::logging::log<phosphor::logging::level::INFO>(
             "Successfully set the PFR CPLD checkpoint 9.");
+        bmcBootCompleteChkPointDone = true;
+        if (unProvChkPointStatus)
+        {
+            unProvChkPointStatus = false;
+            phosphor::logging::log<phosphor::logging::level::INFO>(
+                "PFR is not provisioned, hence exit the service.");
+            std::exit(EXIT_SUCCESS);
+        }
         return 0;
     }
     catch (const std::exception& e)
