diff --git a/watchdog/watchdog_main.cpp b/watchdog/watchdog_main.cpp
index b124be3..e650f70 100644
--- a/watchdog/watchdog_main.cpp
+++ b/watchdog/watchdog_main.cpp
@@ -33,6 +33,42 @@
     transitionHost(HOST_STATE_QUIESCE_TGT);
 }
 
+void triggerSystemDump()
+{
+    try
+    {
+        // Create a PEL may be before setting the target
+        constexpr auto eventName =
+            "org.open_power.Host.Boot.Error.WatchdogTimedOut";
+
+        // CreatePELWithFFDCFiles requires a vector of FFDCTuple.
+        auto emptyFfdc = std::vector<FFDCTuple>{};
+
+        std::map<std::string, std::string> additionalData;
+
+        // Create PEL with empty additional data.
+        createPel(eventName, additionalData, emptyFfdc);
+
+        // We will be transitioning host by starting appropriate dbus target
+        constexpr auto target = "obmc-host-crash@0.target";
+
+        auto bus = sdbusplus::bus::new_system();
+        auto method = bus.new_method_call(
+            "org.freedesktop.systemd1", "/org/freedesktop/systemd1",
+            "org.freedesktop.systemd1.Manager", "StartUnit");
+
+        method.append(target);    // target unit to start
+        method.append("replace"); // mode = replace conflicting queued jobs
+
+        bus.call_noreply(method); // start the service
+    }
+    catch (const sdbusplus::exception::SdBusError& e)
+    {
+        lg2::error("triggerMPIPLDump:: D-Bus call exception, errorMsg({ERROR})",
+                   "ERROR", e.what());
+    }
+}
+
 /**
  * @brief get SBE special callout information
  *
