diff --git a/include/mdrv2.hpp b/include/mdrv2.hpp
index ddde0ef..994598c 100644
--- a/include/mdrv2.hpp
+++ b/include/mdrv2.hpp
@@ -49,6 +49,14 @@
 static constexpr const char* smbiosPath = "/xyz/openbmc_project/Smbios";
 static constexpr const char* smbiosInterfaceName =
     "xyz.openbmc_project.Smbios.GetRecordType";
+static constexpr const char* mapperBusName = "xyz.openbmc_project.ObjectMapper";
+static constexpr const char* mapperPath = "/xyz/openbmc_project/object_mapper";
+static constexpr const char* mapperInterface =
+    "xyz.openbmc_project.ObjectMapper";
+static constexpr const char* systemInterfacePath =
+    "/xyz/openbmc_project/inventory/system";
+static constexpr const char* systemInterface =
+    "xyz.openbmc_project.Inventory.Item.System";
 constexpr const int limitEntryLen = 0xff;
 
 class MDR_V2 :
diff --git a/src/mdrv2.cpp b/src/mdrv2.cpp
index 3949630..f8e2654 100644
--- a/src/mdrv2.cpp
+++ b/src/mdrv2.cpp
@@ -395,14 +395,25 @@
 void MDR_V2::systemInfoUpdate()
 {
     std::string motherboardPath;
-    sdbusplus::message_t method =
-        bus.new_method_call("xyz.openbmc_project.EntityManager",
-                            "/xyz/openbmc_project/EntityManager",
-                            "xyz.openbmc_project.EntityManager", "ReScan");
+    auto method = bus.new_method_call(mapperBusName, mapperPath,
+                                      mapperInterface, "GetSubTreePaths");
+    method.append(systemInterfacePath);
+    method.append(0);
+    method.append(std::vector<std::string>({systemInterface}));
     try
     {
+        std::vector<std::string> paths;
         sdbusplus::message_t reply = bus.call(method);
-        reply.read(motherboardPath);
+        reply.read(paths);
+        if (paths.size() < 1)
+        {
+            phosphor::logging::log<phosphor::logging::level::ERR>(
+                "Failed to get system motherboard dbus path.");
+        }
+        else
+        {
+            motherboardPath = std::move(paths[0]);
+        }
     }
     catch (const sdbusplus::exception_t& e)
     {
