diff --git a/include/cpu.hpp b/include/cpu.hpp
index 26579a6..20ff0cf 100644
--- a/include/cpu.hpp
+++ b/include/cpu.hpp
@@ -24,6 +24,7 @@
 #include <xyz/openbmc_project/Inventory/Decorator/Revision/server.hpp>
 #include <xyz/openbmc_project/Inventory/Item/Cpu/server.hpp>
 #include <xyz/openbmc_project/Inventory/Item/server.hpp>
+#include <xyz/openbmc_project/State/Decorator/OperationalStatus/server.hpp>
 
 namespace phosphor
 {
@@ -43,6 +44,8 @@
 using Item = sdbusplus::server::xyz::openbmc_project::inventory::Item;
 using association =
     sdbusplus::server::xyz::openbmc_project::association::Definitions;
+using operationalStatus = sdbusplus::xyz::openbmc_project::State::Decorator::
+    server::OperationalStatus;
 
 // This table is up to date as of SMBIOS spec DSP0134 3.7.0
 static const std::map<uint8_t, const char*> familyTable = {
@@ -305,7 +308,7 @@
 
 class Cpu :
     sdbusplus::server::object_t<processor, asset, location, connector, rev,
-                                Item, association>
+                                Item, association, operationalStatus>
 {
   public:
     Cpu() = delete;
@@ -318,7 +321,8 @@
     Cpu(sdbusplus::bus_t& bus, const std::string& objPath, const uint8_t& cpuId,
         uint8_t* smbiosTableStorage, const std::string& motherboard) :
         sdbusplus::server::object_t<processor, asset, location, connector, rev,
-                                    Item, association>(bus, objPath.c_str()),
+                                    Item, association, operationalStatus>(
+            bus, objPath.c_str()),
         cpuNum(cpuId), storage(smbiosTableStorage), motherboardPath(motherboard)
     {
         infoUpdate(smbiosTableStorage, motherboard);
diff --git a/src/cpu.cpp b/src/cpu.cpp
index d9fd212..3a586a2 100644
--- a/src/cpu.cpp
+++ b/src/cpu.cpp
@@ -152,13 +152,23 @@
     socket(cpuInfo->socketDesignation, cpuInfo->length, dataIn); // offset 4h
 
     constexpr uint32_t socketPopulatedMask = 1 << 6;
+    constexpr uint32_t statusMask = 0x07;
     if ((cpuInfo->status & socketPopulatedMask) == 0)
     {
         // Don't attempt to fill in any other details if the CPU is not present.
         present(false);
+        functional(false);
         return;
     }
     present(true);
+    if ((cpuInfo->status & statusMask) == 1)
+    {
+        functional(true);
+    }
+    else
+    {
+        functional(false);
+    }
 
     // this class is for type CPU  //offset 5h
     family(cpuInfo->family, cpuInfo->family2); // offset 6h and 28h
