diff --git a/README.md b/README.md
index 48b29e2..19143a8 100644
--- a/README.md
+++ b/README.md
@@ -8,5 +8,10 @@
     2. ./configure ${CONFIGURE_FLAGS}
     3. make
 
+To build with phal feature:
+    1. ./bootstrap.sh
+    2. ./configure ${CONFIGURE_FLAGS} --enable-phal --enable-openfsi
+    3. make
+
 To clean the repository run `./bootstrap.sh clean`.
 ```
diff --git a/configure.ac b/configure.ac
index 7ee59d6..3b5f3c8 100644
--- a/configure.ac
+++ b/configure.ac
@@ -46,6 +46,28 @@
 AC_ARG_ENABLE([openfsi], AS_HELP_STRING([--enable-openfsi], [Support Openfsi]))
 AS_IF([test "$enable_openfsi" == "yes"], [CHIPS+=" openfsi"])
 
+AC_ARG_ENABLE([phal], AS_HELP_STRING([--enable-phal], [Use host processor initialisation procedures from PHAL])])
+
+AS_IF([ test "$enable_phal" == "yes" && test "$enable_p9" == "yes"],
+      [ AC_MSG_ERROR([Internal POWER9 and PHAL-provided procedures conflict, please configure only one])]
+     )
+
+AS_IF([test "$enable_phal" == "yes"],
+      [
+       AX_ABSOLUTE_HEADER([libipl.h])
+       if test x"$gl_cv_absolute_libipl_h" == "x" ; then
+               AC_MSG_ERROR([Cannot find libipl.h path])
+       fi
+
+       AC_CHECK_LIB([ipl], [ipl_init])
+       if test x"$ac_cv_lib_ipl_ipl_init" != "xyes" ; then
+               AC_MSG_ERROR([IPL library not found])
+       fi
+
+       CHIPS+=" phal"
+      ]
+     )
+
 AS_IF([test "x$CHIPS" == "x"], [CHIPS="p9 openfsi"])
 
 AC_CONFIG_FILES([Makefile.generated],
diff --git a/proc_control.cpp b/proc_control.cpp
index 0035b4f..1afdace 100644
--- a/proc_control.cpp
+++ b/proc_control.cpp
@@ -104,6 +104,12 @@
         commit<fsi_error::SlaveDetectionFailure>();
         return -1;
     }
+    // TODO ibm-openbmc#1470
+    catch (common_error::InternalFailure& e)
+    {
+        commit<common_error::InternalFailure>();
+        return -1;
+    }
 
     return 0;
 }
diff --git a/procedures/phal/start_host.cpp b/procedures/phal/start_host.cpp
new file mode 100644
index 0000000..c828309
--- /dev/null
+++ b/procedures/phal/start_host.cpp
@@ -0,0 +1,43 @@
+extern "C" {
+#include <libipl.h>
+}
+
+#include "xyz/openbmc_project/Common/error.hpp"
+
+#include <phosphor-logging/elog-errors.hpp>
+#include <phosphor-logging/log.hpp>
+#include <registration.hpp>
+namespace openpower
+{
+namespace phal
+{
+
+using namespace phosphor::logging;
+using namespace sdbusplus::xyz::openbmc_project::Common::Error;
+
+/**
+ * @brief Starts the self boot engine on POWER processor position 0
+ *        to kick off a boot.
+ * @return void
+ */
+void startHost()
+{
+    if (ipl_init() != 0)
+    {
+        log<level::ERR>("ipl_init failed");
+        // TODO ibm-openbmc#1470
+        elog<InternalFailure>();
+    }
+
+    if (ipl_run_major(0) > 0)
+    {
+        log<level::ERR>("step 0 failed to start the host");
+        // TODO ibm-openbmc#1470
+        elog<InternalFailure>();
+    }
+}
+
+REGISTER_PROCEDURE("startHost", startHost);
+
+} // namespace phal
+} // namespace openpower
