diff --git a/op-hostctl/control_host_obj.c b/op-hostctl/control_host_obj.c
index 94b5134..ad183bc 100644
--- a/op-hostctl/control_host_obj.c
+++ b/op-hostctl/control_host_obj.c
@@ -83,6 +83,11 @@
 		gpointer user_data)
 {
 	int rc = GPIO_OK;
+	GDBusProxy *proxy;
+	GError *error = NULL;
+	GVariant *result = NULL;
+	GDBusConnection *connection =
+		g_dbus_object_manager_server_get_connection(manager);
 
 	if(control_host_get_debug_mode(host)==1)
 	{
@@ -174,7 +179,55 @@
 	gpio_close(&Throttle);
 	gpio_close(&idbtn);
 
+	// Start watchdog with 30s timeout per the OpenPower Host IPMI Spec.
+	// Once the host starts booting, it'll reset and refresh the timer.
+	error = NULL;
+	proxy = g_dbus_proxy_new_sync(connection,
+		G_DBUS_PROXY_FLAGS_NONE,
+		NULL, /* GDBusInterfaceInfo* */
+		"org.openbmc.watchdog.Host", /* name */
+		"/org/openbmc/watchdog/host0", /* object path */
+		"org.openbmc.Watchdog", /* interface name */
+		NULL, /* GCancellable */
+		&error);
+	g_assert_no_error(error);
+	if(error)
+		goto exit;
+
+	// Set watchdog timer to 30s
+	error = NULL;
+	result = g_dbus_proxy_call_sync(proxy,
+		"set",
+		g_variant_new("(i)", 30000),
+		G_DBUS_CALL_FLAGS_NONE,
+		-1,
+		NULL,
+		&error);
+	g_assert_no_error(error);
+	if (error)
+		goto exit;
+	if (result)
+		g_variant_unref(result);
+
+	// Start watchdog timer
+	error = NULL;
+	result = g_dbus_proxy_call_sync(proxy,
+		"start",
+		NULL,
+		G_DBUS_CALL_FLAGS_NONE,
+		-1,
+		NULL,
+		&error);
+	g_assert_no_error(error);
+	if (error)
+		goto exit;
+
 	control_host_emit_booted(host);
+
+exit:
+	if (result)
+		g_variant_unref(result);
+
 	return TRUE;
 }
 
