diff --git a/extensions/openpower-pels/pel.cpp b/extensions/openpower-pels/pel.cpp
index 898dce5..a84b7f8 100644
--- a/extensions/openpower-pels/pel.cpp
+++ b/extensions/openpower-pels/pel.cpp
@@ -574,8 +574,8 @@
                     static_cast<uint16_t>(ComponentID::phosphorLogging);
 
                 // Update system data to ED section
-                auto ud =
-                    util::makeSysInfoUserDataSection(additionalData, dataIface);
+                auto ud = util::makeSysInfoUserDataSection(additionalData,
+                                                           dataIface, false);
                 extUserData->updateDataSection(subType, componentId,
                                                ud->data());
             }
@@ -709,9 +709,24 @@
     json["BootState"] = lastSegment('.', dataIface.getBootState());
 }
 
+void addBMCUptime(nlohmann::json& json, const DataInterfaceBase& dataIface)
+{
+    auto seconds = dataIface.getUptimeInSeconds();
+    if (seconds)
+    {
+        json["BMCUptime"] = dataIface.getBMCUptime(*seconds);
+    }
+    else
+    {
+        json["BMCUptime"] = "";
+    }
+    json["BMCLoad"] = dataIface.getBMCLoadAvg();
+}
+
 std::unique_ptr<UserData>
     makeSysInfoUserDataSection(const AdditionalData& ad,
-                               const DataInterfaceBase& dataIface)
+                               const DataInterfaceBase& dataIface,
+                               bool addUptime)
 {
     nlohmann::json json;
 
@@ -720,6 +735,11 @@
     addIMKeyword(json, dataIface);
     addStatesToJSON(json, dataIface);
 
+    if (addUptime)
+    {
+        addBMCUptime(json, dataIface);
+    }
+
     return makeJSONUserDataSection(json);
 }
 
