diff --git a/vpd-manager/manager.cpp b/vpd-manager/manager.cpp
index 2375d93..7fa09ee 100644
--- a/vpd-manager/manager.cpp
+++ b/vpd-manager/manager.cpp
@@ -39,6 +39,7 @@
     _bus(std::move(bus)), _manager(_bus, objPath)
 {
     _bus.request_name(busName);
+    sd_bus_default(&sdBus);
 }
 
 void Manager::run()
@@ -175,7 +176,34 @@
             [this](sdbusplus::message_t& msg) { hostStateCallBack(msg); });
 }
 
-void Manager::hostStateCallBack(sdbusplus::message_t& msg)
+void Manager::checkEssentialFrus()
+{
+    for (const auto& invPath : essentialFrus)
+    {
+        const auto res = readBusProperty(invPath, invItemIntf, "Present");
+
+        // implies the essential FRU is missing. Log PEL.
+        if (res == "false")
+        {
+            auto rc = sd_bus_call_method_async(
+                sdBus, NULL, loggerService, loggerObjectPath,
+                loggerCreateInterface, "Create", NULL, NULL, "ssa{ss}",
+                errIntfForEssentialFru,
+                "xyz.openbmc_project.Logging.Entry.Level.Warning", 2,
+                "DESCRIPTION", "Essential fru missing from the system.",
+                "CALLOUT_INVENTORY_PATH", (pimPath + invPath).c_str());
+
+            if (rc < 0)
+            {
+                log<level::ERR>("Error calling sd_bus_call_method_async",
+                                entry("RC=%d", rc),
+                                entry("MSG=%s", strerror(-rc)));
+            }
+        }
+    }
+}
+
+void Manager::hostStateCallBack(sdbusplus::message::message& msg)
 {
     if (msg.is_method_error())
     {
@@ -194,6 +222,9 @@
             if (*hostState == "xyz.openbmc_project.State.Host.HostState."
                               "TransitioningToRunning")
             {
+                // detect if essential frus are present in the system.
+                checkEssentialFrus();
+
                 // check and perfrom recollection for FRUs replaceable at
                 // standby.
                 performVPDRecollection();
@@ -302,6 +333,11 @@
             {
                 replaceableFrus.emplace_back(itemFRUS.key());
             }
+
+            if (itemEEPROM.value("essentialFru", false))
+            {
+                essentialFrus.emplace_back(itemEEPROM["inventoryPath"]);
+            }
         }
     }
 }
