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
  *
diff --git a/watchdog/watchdog_main.hpp b/watchdog/watchdog_main.hpp
index bb90ee2..b915a0c 100644
--- a/watchdog/watchdog_main.hpp
+++ b/watchdog/watchdog_main.hpp
@@ -26,5 +26,13 @@
  */
 void handleSbeBootError(struct pdbg_target* procTarget, const uint32_t timeout);
 
+/**
+ * @brief creates a PEL and triggers System dump
+ *
+ * @details This function creates the PEL and then triggers System dump
+ *
+ */
+void triggerSystemDump();
+
 } // namespace dump
 } // namespace watchdog
