Merge pull request #1153 from sammj/lvm

Add LVM support
diff --git a/openpower/configs/hostboot/zaius.config b/openpower/configs/hostboot/zaius.config
index cd0390e..7f76996 100755
--- a/openpower/configs/hostboot/zaius.config
+++ b/openpower/configs/hostboot/zaius.config
@@ -47,8 +47,11 @@
 
 # Compile in hostboot runtime PRD
 set HBRT_PRD
-unset HTMGT
-unset START_OCC_DURING_BOOT
+
+# Compile in hb rt HTMGT : Load/Start OCC
+set HTMGT
+set START_OCC_DURING_BOOT
+unset CONSOLE_OUTPUT_OCC_COMM
 
 #PNOR flags
 unset PNOR_TWO_SIDE_SUPPORT
diff --git a/openpower/configs/p9dsu_defconfig b/openpower/configs/p9dsu_defconfig
index 532e7b0..7487d09 100644
--- a/openpower/configs/p9dsu_defconfig
+++ b/openpower/configs/p9dsu_defconfig
@@ -42,7 +42,7 @@
 BR2_OPENPOWER_POWER9=y
 BR2_HOSTBOOT_CONFIG_FILE="p9dsu.config"
 BR2_OPENPOWER_MACHINE_XML_GITHUB_PROJECT_VALUE="p9dsu-xml"
-BR2_OPENPOWER_MACHINE_XML_VERSION="8ff7cebbaad6426e17706b7585300e63653a219e"
+BR2_OPENPOWER_MACHINE_XML_VERSION="1c5c5b43ace53371671ca189f7fae16fdf8fe3ed"
 BR2_OPENPOWER_MACHINE_XML_FILENAME="p9dsu.xml"
 BR2_OPENPOWER_SYSTEM_XML_FILENAME="P9DSU_hb.system.xml"
 BR2_OPENPOWER_MRW_XML_FILENAME="P9DSU_hb.mrw.xml"
@@ -63,7 +63,5 @@
 BR2_PACKAGE_PETITBOOT_MTD=y
 BR2_OCC_BIN_FILENAME="occ.bin"
 BR2_CAPP_UCODE_BIN_FILENAME="cappucode.bin"
-BR2_SKIBOOT_CUSTOM_VERSION=y
-BR2_SKIBOOT_CUSTOM_VERSION_VALUE="skiboot-5.6.0-64-g700b8962e5fe"
 BR2_PACKAGE_LOADKEYS=y
 BR2_IMA_CATALOG_DTS="POWER9"
diff --git a/openpower/configs/romulus_defconfig b/openpower/configs/romulus_defconfig
index 0618da7..6f1540a 100644
--- a/openpower/configs/romulus_defconfig
+++ b/openpower/configs/romulus_defconfig
@@ -60,7 +60,5 @@
 BR2_PACKAGE_PETITBOOT_MTD=y
 BR2_OCC_BIN_FILENAME="occ.bin"
 BR2_CAPP_UCODE_BIN_FILENAME="cappucode.bin"
-BR2_SKIBOOT_CUSTOM_VERSION=y
-BR2_SKIBOOT_CUSTOM_VERSION_VALUE="skiboot-5.6.0-64-g700b8962e5fe"
 BR2_PACKAGE_LOADKEYS=y
 BR2_IMA_CATALOG_DTS="POWER9"
diff --git a/openpower/configs/witherspoon_defconfig b/openpower/configs/witherspoon_defconfig
index 86de04c..309fc03 100644
--- a/openpower/configs/witherspoon_defconfig
+++ b/openpower/configs/witherspoon_defconfig
@@ -42,7 +42,7 @@
 BR2_OPENPOWER_POWER9=y
 BR2_HOSTBOOT_CONFIG_FILE="witherspoon.config"
 BR2_OPENPOWER_MACHINE_XML_GITHUB_PROJECT_VALUE="witherspoon-xml"
-BR2_OPENPOWER_MACHINE_XML_VERSION="c5e17e084a1eb057fe8ad41af886e1558a407dc0"
+BR2_OPENPOWER_MACHINE_XML_VERSION="d0f86cf46a99800c6f15a4e650701da141216940"
 BR2_OPENPOWER_MACHINE_XML_FILENAME="witherspoon.xml"
 BR2_OPENPOWER_SYSTEM_XML_FILENAME="WITHERSPOON_hb.system.xml"
 BR2_OPENPOWER_MRW_XML_FILENAME="WITHERSPOON_hb.mrw.xml"
@@ -50,7 +50,6 @@
 BR2_OPENPOWER_PNOR_XML_LAYOUT_FILENAME="defaultPnorLayout_64.xml"
 BR2_OPENPOWER_CONFIG_NAME="witherspoon"
 BR2_OPENPOWER_PNOR_FILENAME="witherspoon.pnor"
-BR2_OPENPOWER_PNOR_UPDATE_FILENAME="witherspoon_update.pnor"
 BR2_HOSTBOOT_BINARY_SBE_FILENAME="nimbus_sbe.img.ecc"
 BR2_HOSTBOOT_BINARY_SBEC_FILENAME="centaur_sbec_pad.img.ecc"
 BR2_HOSTBOOT_BINARY_WINK_FILENAME="p9n.ref_image.hdr.bin.ecc"
@@ -63,7 +62,5 @@
 BR2_PACKAGE_PETITBOOT_MTD=y
 BR2_OCC_BIN_FILENAME="occ.bin"
 BR2_CAPP_UCODE_BIN_FILENAME="cappucode.bin"
-BR2_SKIBOOT_CUSTOM_VERSION=y
-BR2_SKIBOOT_CUSTOM_VERSION_VALUE="skiboot-5.6.0-64-g700b8962e5fe"
 BR2_PACKAGE_LOADKEYS=y
 BR2_IMA_CATALOG_DTS="POWER9"
diff --git a/openpower/configs/zaius_defconfig b/openpower/configs/zaius_defconfig
index ae98890..2657629 100644
--- a/openpower/configs/zaius_defconfig
+++ b/openpower/configs/zaius_defconfig
@@ -42,7 +42,7 @@
 BR2_OPENPOWER_POWER9=y
 BR2_HOSTBOOT_CONFIG_FILE="zaius.config"
 BR2_OPENPOWER_MACHINE_XML_GITHUB_PROJECT_VALUE="zaius-xml"
-BR2_OPENPOWER_MACHINE_XML_VERSION="6843fceba8404c600782fec2dcdcaca604e48d05"
+BR2_OPENPOWER_MACHINE_XML_VERSION="500647235aab6e2bb5a24dd00baab59083461833"
 BR2_OPENPOWER_MACHINE_XML_FILENAME="zaius.xml"
 BR2_OPENPOWER_SYSTEM_XML_FILENAME="ZAIUS_hb.system.xml"
 BR2_OPENPOWER_MRW_XML_FILENAME="ZAIUS_hb.mrw.xml"
@@ -62,7 +62,5 @@
 BR2_PACKAGE_PETITBOOT_MTD=y
 BR2_OCC_BIN_FILENAME="occ.bin"
 BR2_CAPP_UCODE_BIN_FILENAME="cappucode.bin"
-BR2_SKIBOOT_CUSTOM_VERSION=y
-BR2_SKIBOOT_CUSTOM_VERSION_VALUE="skiboot-5.6.0-64-g700b8962e5fe"
 BR2_PACKAGE_LOADKEYS=y
 BR2_IMA_CATALOG_DTS="POWER9"
diff --git a/openpower/configs/zz_defconfig b/openpower/configs/zz_defconfig
index bbe29cb..afd6fc7 100644
--- a/openpower/configs/zz_defconfig
+++ b/openpower/configs/zz_defconfig
@@ -51,8 +51,6 @@
 # BR2_PACKAGE_HOST_P8_PORE_BINUTILS is not set
 # BR2_PACKAGE_OCC is not set
 # BR2_PACKAGE_CAPP_UCODE is not set
-BR2_SKIBOOT_CUSTOM_VERSION=y
-BR2_SKIBOOT_CUSTOM_VERSION_VALUE="skiboot-5.6.0-64-g700b8962e5fe"
 BR2_PACKAGE_LOADKEYS=y
 # BR2_PACKAGE_HOST_PPE42_BINUTILS is not set
 # BR2_PACKAGE_HOST_PPE42_GCC is not set
diff --git a/openpower/package/hostboot/hostboot.mk b/openpower/package/hostboot/hostboot.mk
index ed4e725..83c9b80 100644
--- a/openpower/package/hostboot/hostboot.mk
+++ b/openpower/package/hostboot/hostboot.mk
@@ -4,7 +4,7 @@
 #
 ################################################################################
 HOSTBOOT_VERSION_BRANCH_MASTER_P8 ?= 695bd891343faf1f0ef85fe53148590e58239efd
-HOSTBOOT_VERSION_BRANCH_MASTER ?= 0f8d0c0955cc2a3769961257f4d39495ef6eba56
+HOSTBOOT_VERSION_BRANCH_MASTER ?= 3608c1ff8cc3df658c095280e0dab8705a6be036
 
 HOSTBOOT_VERSION ?= $(if $(BR2_OPENPOWER_POWER9),$(HOSTBOOT_VERSION_BRANCH_MASTER),$(HOSTBOOT_VERSION_BRANCH_MASTER_P8))
 HOSTBOOT_SITE ?= $(call github,open-power,hostboot,$(HOSTBOOT_VERSION))
diff --git a/openpower/package/hostboot/p9Patches/hostboot-0010-Updates-to-HBRT-runtime-interfaces.patch b/openpower/package/hostboot/p9Patches/hostboot-0010-Updates-to-HBRT-runtime-interfaces.patch
deleted file mode 100644
index e2d052f..0000000
--- a/openpower/package/hostboot/p9Patches/hostboot-0010-Updates-to-HBRT-runtime-interfaces.patch
+++ /dev/null
@@ -1,419 +0,0 @@
-From 826657215c64a6fba1f8141769af5a93994b4a5d Mon Sep 17 00:00:00 2001
-From: Dan Crowell <dcrowell@us.ibm.com>
-Date: Fri, 12 May 2017 15:40:46 -0500
-Subject: [PATCH] Updates to HBRT runtime interfaces
-
-Reconciling P9 function table with P8 table to make opal-prd
-work.
-
-Added new entries for:
-- firmware_request
-- get_ipoll_events
-- firmware_notify
-
-Added in entries for P8 functions:
-- get_interface_capabilities
-
-Added deprecated placeholders for P8 functions:
-- occ_load
-- occ_start
-- occ_stop
-
-Moved entries for:
-- load_pm_complex
-- start_pm_complex
-- reset_pm_complex
-
-Change-Id: I1892b4465a6e5901aa9eaa6a49e139a4bc4c5b56
----
- src/include/runtime/interface.h | 230 +++++++++++++++++++++++++++-------------
- src/runtime/rt_main.C           |  26 ++++-
- 2 files changed, 182 insertions(+), 74 deletions(-)
-
-diff --git a/src/include/runtime/interface.h b/src/include/runtime/interface.h
-index aafbbf9..363e50c 100644
---- a/src/include/runtime/interface.h
-+++ b/src/include/runtime/interface.h
-@@ -37,9 +37,9 @@
-  */
- 
- /** Current interface version.
-- *  0x9001:  9=P9, 001=Version 1
-+ *  0x9001:  9=P9, 002=Version 2
-  */
--#define HOSTBOOT_RUNTIME_INTERFACE_VERSION 0x9001
-+#define HOSTBOOT_RUNTIME_INTERFACE_VERSION 0x9002
- 
- #ifndef __HOSTBOOT_RUNTIME_INTERFACE_VERSION_ONLY
- 
-@@ -53,7 +53,7 @@ enum MemoryError_t
-      *  continues to report errors on subsequent reads. A second CE on that
-      *  cache line will result in memory UE. Therefore, it is advised to
-      *  migrate off of the address range as soon as possible. */
--    MEMORY_ERROR_CE,
-+    MEMORY_ERROR_CE = 0,
- 
-     /** Hardware has reported an uncorrectable error in memory (memory UE,
-      *  channel failure, etc). The hypervisor should migrate any partitions
-@@ -63,13 +63,13 @@ enum MemoryError_t
-      *  partition failures to handle the hardware attentions so that the
-      *  hypervisor will know all areas of memory that are impacted by the
-      *  failure. */
--    MEMORY_ERROR_UE,
-+    MEMORY_ERROR_UE = 1,
- 
-     /** Firmware has predictively requested service on a part in the memory
-      *  subsystem. The partitions may not have been affected, but it is
-      *  advised to migrate off of the address range as soon as possible to
-      *  avoid potential partition outages. */
--    MEMORY_ERROR_PREDICTIVE,
-+    MEMORY_ERROR_PREDICTIVE = 2,
- };
- 
- /**
-@@ -130,6 +130,21 @@ enum MemoryError_t
- #define HBRT_RSVD_MEM__SBE_FFDC           "ibm,sbe-ffdc"
- 
- 
-+/**
-+ * Specifiers for get_interface_capabilities
-+ */
-+
-+/* Common Features */
-+#define HBRT_CAPS_SET0_COMMON  0
-+
-+/* OPAL fixes */
-+#define HBRT_CAPS_SET1_OPAL    1
-+#define HBRT_CAPS_OPAL_HAS_XSCOM_RC     (1ul << 0)
-+
-+/* PHYP fixes */
-+#define HBRT_CAPS_SET2_PHYP    2
-+
-+
- /** @typedef hostInterfaces_t
-  *  @brief Interfaces provided by the underlying environment (ex. Sapphire).
-  *
-@@ -412,6 +427,40 @@ typedef struct hostInterfaces
-                          enum MemoryError_t i_errorType );
- 
-     /**
-+     * @brief Query the HBRT host for a list of fixes/features
-+     *
-+     * There are times when workarounds need to be put into place to handle
-+     * issues with the hosting layer (e.g. opal-prd) while fixes are not yet
-+     * released.  This is especially true because of the disconnected release
-+     * streams for the firmware and the hosting environment.
-+     *
-+     * @param  i_set Indicates which set of fixes/features we're checking
-+     *               see HBRT_CAPS_SET...
-+     *
-+     * @return a bitmask containing the relevant flags for the current
-+     *         implementation, see HBRT_CAPS_FLAGS_...
-+     */
-+    uint64_t (*get_interface_capabilities)( uint64_t i_set );
-+
-+    /**
-+     *  @brief Map a physical address space into usable memory
-+     *  @note Repeated calls to map the same memory should not return an error
-+     *  @param[in]  i_physMem  Physical address
-+     *  @param[in]  i_bytes    Number of bytes to map in
-+     *  @return NULL on error, else pointer to usable memory
-+     *  @platform FSP, OpenPOWER
-+     */
-+    void* (*map_phys_mem)(uint64_t i_physMem, size_t i_bytes);
-+
-+    /**
-+     *  @brief Unmap a physical address space from usable memory
-+     *  @param[in]  i_ptr  Previously mapped pointer
-+     *  @return 0 on success, else RC
-+     *  @platform FSP, OpenPOWER
-+     */
-+    int (*unmap_phys_mem)(void* i_ptr);
-+
-+    /**
-      *  @brief Modify the SCOM restore section of the HCODE image with the
-      *         given register data
-      *
-@@ -441,22 +490,27 @@ typedef struct hostInterfaces
-                               uint64_t i_scomData );
- 
-     /**
--     *  @brief Map a physical address space into usable memory
--     *  @note Repeated calls to map the same memory should not return an error
--     *  @param[in]  i_physMem  Physical address
--     *  @param[in]  i_bytes    Number of bytes to map in
--     *  @return NULL on error, else pointer to usable memory
--     *  @platform FSP, OpenPOWER
--     */
--    void* (*map_phys_mem)(uint64_t i_physMem, size_t i_bytes);
--
--    /**
--     *  @brief Unmap a physical address space from usable memory
--     *  @param[in]  i_ptr  Previously mapped pointer
--     *  @return 0 on success, else RC
--     *  @platform FSP, OpenPOWER
-+     * @brief Send a request to firmware, and receive a response
-+     * @details
-+     *   req_len bytes are sent to runtime firmware, and resp_len
-+     *   bytes received in response.
-+     *
-+     *   Both req and resp are allocated by the caller. If resp_len
-+     *   is not large enough to contain the full response, an error
-+     *   is returned.
-+     *
-+     * @param[in]  i_reqLen       length of request data
-+     * @param[in]  i_req          request data
-+     * @param[inout] o_respLen    in: size of request data buffer
-+     *                            out: length of request data
-+     * @param[in]  o_resp         response data
-+     * @return 0 on success, else RC
-+     * @platform FSP, OpenPOWER
-      */
--    int (*unmap_phys_mem)(void* i_ptr);
-+    int (*firmware_request)( uint64_t i_reqLen,
-+                             void *i_req,
-+                             uint64_t* o_respLen,
-+                             void *o_resp );
- 
-     // Reserve some space for future growth.
-     // do NOT ever change this number, even if you add functions.
-@@ -475,7 +529,7 @@ typedef struct hostInterfaces
-     // allocated with sufficient space and populated with NULL function
-     // pointers.  32 is big enough that we should not likely add that many
-     // functions from either direction in between any two levels of support.
--    void (*reserved[32])(void);
-+    void (*reserved[27])(void);
- 
- } hostInterfaces_t;
- 
-@@ -502,44 +556,11 @@ typedef struct runtimeInterfaces
-     const uint32_t * (*get_lid_list)(size_t * o_num);
- 
-     /**
--     *  @brief Load OCC/HCODE images into mainstore
--     *
--     *  @param[in] i_chip            the HW chip id (XSCOM chip ID)
--     *  @param[in] i_homer_addr      the physical mainstore address of the
--     *                               start of the HOMER image,
--     *  @param[in] i_occ_common_addr the physical mainstore address of the
--     *                               OCC common area, 8MB, used for
--     *                               OCC-OCC communication (1 per node)
--     *  @param[in] i_mode            selects initial load vs concurrent reloads
--     *                               HBRT_PM_LOAD:
--     *                                  load all lids/sections from scratch,
--     *                                  preserve nothing
--     *                               HBRT_PM_RELOAD:
--     *                                  reload all lids/sections,
--     *                                  but preserve runtime updates
--     *  @return 0 on success else return code
--     *  @platform FSP, OpenPOWER
--     */
--    int (*load_pm_complex)( uint64_t i_chip,
--                            uint64_t i_homer_addr,
--                            uint64_t i_occ_common_addr,
--                            uint32_t i_mode );
--
--    /**
--     *  @brief Start OCC/HCODE on the specified chip
--     *  @param[in] i_chip the HW chip id
--     *  @return 0 on success else return code
--     *  @platform FSP, OpenPOWER
--     */
--    int (*start_pm_complex)( uint64_t i_chip );
--
--    /**
--     *  @brief Reset OCC/HCODE on the specified chip
--     *  @param[in] i_chip the HW chip id
--     *  @return 0 on success else return code
--     *  @platform FSP, OpenPOWER
-+     * Space allocated for deprecated P8 interfaces
-      */
--    int (*reset_pm_complex)( uint64_t i_chip );
-+    const uint32_t * (*occ_load__deprecated)(size_t * o_num);
-+    const uint32_t * (*occ_start__deprecated)(size_t * o_num);
-+    const uint32_t * (*occ_stop__deprecated)(size_t * o_num);
- 
-     /**
-      *  @brief Notify HTMGT that an OCC has an error to report
-@@ -629,20 +650,20 @@ typedef struct runtimeInterfaces
-     /**
-      *  @brief Send a pass-through command to HTMGT
-      *
--     *  @details  This is a blocking call that will send a command
--     *            to HTMGT.
--     *  @note     If o_rspLength is returned with a non-zero value,
--     *            the data at the o_rspData should be dumped to
--     *            stdout in a hex dump format.
--     *  @note     The maximum response data returned will be 4096 bytes
-+     *  @details This is a blocking call that will send a command
-+     *           to HTMGT.
-+     *  @note   If o_rspLength is returned with a non-zero value,
-+     *          the data at the o_rspData should be dumped to
-+     *          stdout in a hex dump format.
-+     *  @note   The maximum response data returned will be 4096 bytes
-      *
-      *  @param[in]      i_cmdLength  number of bytes in pass-thru command data
--     *  @param[in]     *i_cmdData    pointer to pass-thru command data
-+     *  @param[in]   *i_cmdData   pointer to pass-thru command data
-      *  @param[out]    *o_rspLength  pointer to number of bytes returned
-      *                               in o_rspData
--     *  @param[out]    *o_rspData    pointer to a 4096 byte buffer that will
-+     *  @param[out]    *o_rspData   pointer to a 4096 byte buffer that will
-      *                               contain the response data from the command
--     *  @returns  0 on success, or return code if the command failed
-+     *  @returns 0 on success, or return code if the command failed
-      *  @platform OpenPOWER
-      */
-     int (*mfg_htmgt_pass_thru)( uint16_t   i_cmdLength,
-@@ -691,20 +712,83 @@ typedef struct runtimeInterfaces
-               size_t i_hwKeyHashSize);
- 
-     /**
--     *  @brief SBE message passing
-+     *  @brief SBE message passing notification
-      *
--     *  @details  This is a blocking call that will pass an SBE message
--     *            with a pass-through command through HBRT to code that
--     *            will process the command and provide a response.
-+     *  @details
-+     *      This is a blocking call that is used to notify HBRT there is
-+     *      a SBE message available.  This should be called when the Host
-+     *      detects the appropriate PSU interrupt from the SBE.
-      *
-      *  @param[in] i_procChipId Chip ID of the processor whose SBE is passing
-      *                          the message and sent the interrupt
-      *
--     *  @returns  0 on success, or return code if the command failed
-+     *  @return 0 on success, or return code if the command failed
-      *  @platform FSP, OpenPOWER
-      */
-     int (*sbe_message_passing)(uint32_t i_procChipId);
- 
-+    /**
-+     *  @brief Load OCC/HCODE images into mainstore
-+     *
-+     *  @param[in] i_chip            the HW chip id (XSCOM chip ID)
-+     *  @param[in] i_homer_addr      the physical mainstore address of the
-+     *                               start of the HOMER image,
-+     *  @param[in] i_occ_common_addr the physical mainstore address of the
-+     *                               OCC common area, 8MB, used for
-+     *                               OCC-OCC communication (1 per node)
-+     *  @param[in] i_mode            selects initial load vs concurrent reloads
-+     *                               HBRT_PM_LOAD:
-+     *                                  load all lids/sections from scratch,
-+     *                                  preserve nothing
-+     *                               HBRT_PM_RELOAD:
-+     *                                  reload all lids/sections,
-+     *                                  but preserve runtime updates
-+     *  @return 0 on success else return code
-+     *  @platform FSP, OpenPOWER
-+     */
-+    int (*load_pm_complex)( uint64_t i_chip,
-+                            uint64_t i_homer_addr,
-+                            uint64_t i_occ_common_addr,
-+                            uint32_t i_mode );
-+
-+    /**
-+     *  @brief Start OCC/HCODE on the specified chip
-+     *  @param[in] i_chip the HW chip id
-+     *  @return 0 on success else return code
-+     *  @platform FSP, OpenPOWER
-+     */
-+    int (*start_pm_complex)( uint64_t i_chip );
-+
-+    /**
-+     *  @brief Reset OCC/HCODE on the specified chip
-+     *  @param[in] i_chip the HW chip id
-+     *  @return 0 on success else return code
-+     *  @platform FSP, OpenPOWER
-+     */
-+    int (*reset_pm_complex)( uint64_t i_chip );
-+
-+    /**
-+     * @brief Query the IPOLL event mask supported by HBRT
-+     *
-+     * @details  This call allows the wrapper application to query
-+     * the ipoll event mask to set when the HBRT instance is running. Bits
-+     * that are *set* in this bitmask represent events that will be
-+     * forwarded to the handle_attn() callback.
-+     *
-+     * @return        The IPOLL event bits to enable during HBRT execution
-+     * @platform FSP, OpenPOWER
-+     */
-+    uint64_t (*get_ipoll_events)( void );
-+
-+    /**
-+     * @brief Receive an async notification from firmware
-+     * @param[in] i_len   length of notification data
-+     * @param[in] i_data  notification data
-+     * @platform FSP, OpenPOWER
-+     */
-+    void (*firmware_notify)( uint64_t len,
-+                             void *data );
-+
-     // Reserve some space for future growth.
-     // do NOT ever change this number, even if you add functions.
-     //
-@@ -722,7 +806,7 @@ typedef struct runtimeInterfaces
-     // allocated with sufficient space and populated with NULL function
-     // pointers.  32 is big enough that we should not likely add that many
-     // functions from either direction in between any two levels of support.
--    void (*reserved[32])(void);
-+    void (*reserved[22])(void);
- 
- } runtimeInterfaces_t;
- 
-diff --git a/src/runtime/rt_main.C b/src/runtime/rt_main.C
-index d9a21c9..d539018 100644
---- a/src/runtime/rt_main.C
-+++ b/src/runtime/rt_main.C
-@@ -5,7 +5,7 @@
- /*                                                                        */
- /* OpenPOWER HostBoot Project                                             */
- /*                                                                        */
--/* Contributors Listed Below - COPYRIGHT 2013,2016                        */
-+/* Contributors Listed Below - COPYRIGHT 2013,2017                        */
- /* [+] International Business Machines Corp.                              */
- /*                                                                        */
- /*                                                                        */
-@@ -70,6 +70,27 @@ extern "C"
-  */
- runtimeInterfaces_t* rt_start(hostInterfaces_t*) NEVER_INLINE;
- 
-+
-+/** @fn rt_version_fixup
-+ *
-+ *  @brief Make any adjustments needed to handle old versions
-+ */
-+void rt_version_fixup( void )
-+{
-+    uint64_t hostver = g_hostInterfaces->interfaceVersion;
-+    if( HOSTBOOT_RUNTIME_INTERFACE_VERSION == hostver )
-+    {
-+        return; //nothing to do, we match
-+    }
-+
-+    char verstring[100];
-+    sprintf( verstring,
-+             "HRBT Ver=%X, HostVer=%X\n",
-+             HOSTBOOT_RUNTIME_INTERFACE_VERSION,
-+             hostver );
-+    (g_hostInterfaces->puts)(verstring);
-+}
-+
- /** Call C++ constructors present in this image. */
- void rt_cppBootstrap();
- 
-@@ -111,6 +132,9 @@ runtimeInterfaces_t* rt_start(hostInterfaces_t* intf)
-     postInitCalls_t* rtPost = getPostInitCalls();
-     rtPost->callApplyTempOverrides();
- 
-+    // do any version mismatch fixups
-+    rt_version_fixup();
-+
-     // Return our interface pointer structure.
-     return rtInterfaces;
- }
--- 
-1.8.2.2
-
diff --git a/openpower/package/hostboot/p9Patches/hostboot-0011-Revert-Handling-of-functional-NX-chiplet.patch b/openpower/package/hostboot/p9Patches/hostboot-0011-Revert-Handling-of-functional-NX-chiplet.patch
deleted file mode 100644
index 8d64244..0000000
--- a/openpower/package/hostboot/p9Patches/hostboot-0011-Revert-Handling-of-functional-NX-chiplet.patch
+++ /dev/null
@@ -1,240 +0,0 @@
-From 569a650085d4ea7cf87c88ec5542ff31477e8c6d Mon Sep 17 00:00:00 2001
-From: Bill Hoffa <wghoffa@us.ibm.com>
-Date: Fri, 2 Jun 2017 10:32:27 -0500
-Subject: [PATCH] Revert "Handling of functional NX chiplet"
-
-This reverts commit 392272c0247878a832473157e7d2e6023496ca99.
----
- src/include/usr/hwas/common/hwas_reasoncodes.H |  1 -
- src/usr/hwas/common/hwas.C                     | 51 ------------------------
- src/usr/isteps/istep10/call_host_rng_bist.C    | 53 ++++++-------------------
- src/usr/isteps/istep16/call_host_secure_rng.C  | 55 +++++++-------------------
- 4 files changed, 28 insertions(+), 132 deletions(-)
-
-diff --git a/src/include/usr/hwas/common/hwas_reasoncodes.H b/src/include/usr/hwas/common/hwas_reasoncodes.H
-index 1c3a789..667ac6c 100644
---- a/src/include/usr/hwas/common/hwas_reasoncodes.H
-+++ b/src/include/usr/hwas/common/hwas_reasoncodes.H
-@@ -55,7 +55,6 @@ namespace HWAS
-         RC_SYSAVAIL_MISSING_CRITICAL_RESOURCE   = HWAS_COMP_ID | 0x0B,
-         RC_SYSAVAIL_NO_MCAS_FUNC                = HWAS_COMP_ID | 0x0C,
-         RC_SYSAVAIL_NO_MEMORY_FUNC_MASTER       = HWAS_COMP_ID | 0x0D,
--        RC_SYSAVAIL_NO_NX_FUNC                  = HWAS_COMP_ID | 0x0E,
-     };
- };
- 
-diff --git a/src/usr/hwas/common/hwas.C b/src/usr/hwas/common/hwas.C
-index 9908ef8..79d541b 100644
---- a/src/usr/hwas/common/hwas.C
-+++ b/src/usr/hwas/common/hwas.C
-@@ -1881,57 +1881,6 @@ errlHndl_t checkMinimumHardware(const TARGETING::ConstTargetHandle_t i_nodeOrSys
-                 // errl is now NULL
-             }
-         }
--
--        // check for functional NX chiplets
--        TargetHandleList l_functionalNXChiplets;
--        getChildChiplets(l_functionalNXChiplets, pTop, TYPE_NX, true);
--        HWAS_DBG( "checkMinimumHardware: %d NX chiplets",
--                  l_functionalNXChiplets.size());
--
--        if (l_functionalNXChiplets.empty())
--        {
--            HWAS_ERR( "Insufficient hardware to continue IPL (NX chiplets)");
--
--            if(o_bootable)
--            {
--                *o_bootable = false;
--                break;
--            }
--            TargetHandleList l_presentNXChiplets;
--            getChildChiplets(l_presentNXChiplets, pTop, TYPE_NX, false);
--            uint32_t nx_present = l_presentNXChiplets.size();
--
--            /*@
--             * @errortype
--             * @severity           ERRL_SEV_UNRECOVERABLE
--             * @moduleid           MOD_CHECK_MIN_HW
--             * @reasoncode         RC_SYSAVAIL_NO_NX_FUNC
--             * @devdesc            checkMinimumHardware found no
--             *                     functional NX chiplets
--             * @custdesc           Insufficient hardware to continue IPL
--             * @userdata1[00:31]   HUID of node
--             * @userdata2[00:31]   number of present nonfunctional NX chiplets
--             */
--            const uint64_t userdata1 =
--                (static_cast<uint64_t>(get_huid(pTop)) << 32);
--            const uint64_t userdata2 =
--                (static_cast<uint64_t>(nx_present) << 32);
--            l_errl = hwasError(ERRL_SEV_UNRECOVERABLE,
--                         MOD_CHECK_MIN_HW,
--                         RC_SYSAVAIL_NO_NX_FUNC,
--                         userdata1, userdata2);
--
--            //  call out the procedure to find the deconfigured part.
--            hwasErrorAddProcedureCallout( l_errl,
--                         EPUB_PRC_FIND_DECONFIGURED_PART,
--                         SRCI_PRIORITY_HIGH );
--
--            //  if we already have an error, link this one to the earlier;
--            //  if not, set the common plid
--            hwasErrorUpdatePlid( l_errl, l_commonPlid );
--            errlCommit(l_errl, HWAS_COMP_ID);
--        }
--
-         //  ------------------------------------------------------------
-         //  Check for Mirrored memory -
-         //  If the user requests mirrored memory and we do not have it,
-diff --git a/src/usr/isteps/istep10/call_host_rng_bist.C b/src/usr/isteps/istep10/call_host_rng_bist.C
-index 68d2435..b1ccc51 100644
---- a/src/usr/isteps/istep10/call_host_rng_bist.C
-+++ b/src/usr/isteps/istep10/call_host_rng_bist.C
-@@ -42,7 +42,6 @@
- 
- #include    <isteps/hwpisteperror.H>
- #include    <errl/errludtarget.H>
--#include    <errl/errlreasoncodes.H>
- 
- #include    <initservice/isteps_trace.H>
- #include    <initservice/initserviceif.H>
-@@ -87,49 +86,23 @@ void* call_host_rng_bist( void *io_pArgs )
-     // Loop through all processors including master
-     for (const auto & l_cpu_target: l_cpuTargetList)
-     {
--        const fapi2::Target<fapi2::TARGET_TYPE_PROC_CHIP>l_fapi2_proc_target(
-+      const fapi2::Target<fapi2::TARGET_TYPE_PROC_CHIP>l_fapi2_proc_target(
-                 l_cpu_target);
--        // Check for functional NX
--        TARGETING::TargetHandleList l_nxTargetList;
--        getChildChiplets(l_nxTargetList, l_cpu_target, TYPE_NX, true);
--        if (l_nxTargetList.empty())
--        {
--            TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
--              "p9_rng_init_phase1: no functional NX found for proc %.8X",
--              TARGETING::get_huid(l_cpu_target));
--            continue;
--        }
--        TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
-+
-+      TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
-           "Running p9_rng_init_phase1 HWP on processor target %.8X",
-           TARGETING::get_huid(l_cpu_target) );
- 
--        FAPI_INVOKE_HWP(l_err, p9_rng_init_phase1, l_fapi2_proc_target);
--        if(l_err)
--        {
--            TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace,
--                "ERROR: call p9_rng_init_phase1, PLID=0x%x, rc=0x%.4X",
--                l_err->plid(), l_err->reasonCode());
--
--            for (const auto l_callout : l_err->getUDSections(
--                    HWPF_COMP_ID,
--                    ERRORLOG::ERRL_UDT_CALLOUT))
--            {
--                if(reinterpret_cast<HWAS::callout_ud_t*>
--                    (l_callout)->type == HWAS::HW_CALLOUT)
--                {
--                    for (const auto & l_nxTarget: l_nxTargetList)
--                    {
--                        l_err->addHwCallout( l_nxTarget,
--                            HWAS::SRCI_PRIORITY_HIGH,
--                            HWAS::DECONFIG,
--                            HWAS::GARD_NULL );
--                    }
--                 }
--            }
--
--            l_StepError.addErrorDetails(l_err);
--            errlCommit(l_err, HWPF_COMP_ID);
--        }
-+      FAPI_INVOKE_HWP(l_err, p9_rng_init_phase1, l_fapi2_proc_target);
-+      if(l_err)
-+      {
-+          TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace,
-+                    "ERROR: call p9_rng_init_phase1, PLID=0x%x",
-+                    l_err->plid());
-+          l_StepError.addErrorDetails(l_err);
-+          errlCommit(l_err, HWPF_COMP_ID);
-+      }
-+
-     } // end of going through all processors
- 
-     TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
-diff --git a/src/usr/isteps/istep16/call_host_secure_rng.C b/src/usr/isteps/istep16/call_host_secure_rng.C
-index 9ca7e0f..5a51504 100644
---- a/src/usr/isteps/istep16/call_host_secure_rng.C
-+++ b/src/usr/isteps/istep16/call_host_secure_rng.C
-@@ -45,7 +45,6 @@
- 
- #include    <isteps/hwpisteperror.H>
- #include    <errl/errludtarget.H>
--#include    <errl/errlreasoncodes.H>
- 
- #include    <initservice/isteps_trace.H>
- #include    <initservice/initserviceif.H>
-@@ -90,47 +89,23 @@ void* call_host_secure_rng( void *io_pArgs )
-     // Loop through all processors including master
-     for (const auto & l_cpu_target: l_cpuTargetList)
-     {
--        const fapi2::Target<fapi2::TARGET_TYPE_PROC_CHIP>l_fapi2_proc_target(
-+      const fapi2::Target<fapi2::TARGET_TYPE_PROC_CHIP>l_fapi2_proc_target(
-                 l_cpu_target);
- 
--        // Check for functional NX
--        TARGETING::TargetHandleList l_nxTargetList;
--        getChildChiplets(l_nxTargetList, l_cpu_target, TYPE_NX, true);
--        if (l_nxTargetList.empty())
--        {
--            TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
--              "Running host_secure_rng; no functional NX found for proc %.8X",
--              TARGETING::get_huid(l_cpu_target));
--            continue;
--        }
--
--        FAPI_INVOKE_HWP(l_err, p9_rng_init_phase2, l_fapi2_proc_target);
--        if(l_err)
--        {
--            TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace,
--                "ERROR: call p9_rng_init_phase2, PLID=0x%x, rc=0x%.4X",
--                l_err->plid(), l_err->reasonCode());
--
--            for (const auto l_callout : l_err->getUDSections(
--                    HWPF_COMP_ID,
--                    ERRORLOG::ERRL_UDT_CALLOUT))
--            {
--                if(reinterpret_cast<HWAS::callout_ud_t*>
--                    (l_callout)->type == HWAS::HW_CALLOUT)
--                {
--                    for (const auto & l_nxTarget: l_nxTargetList)
--                    {
--                        l_err->addHwCallout( l_nxTarget,
--                            HWAS::SRCI_PRIORITY_HIGH,
--                            HWAS::DECONFIG,
--                            HWAS::GARD_NULL );
--                    }
--                 }
--            }
--
--            l_StepError.addErrorDetails(l_err);
--            errlCommit(l_err, HWPF_COMP_ID);
--        }
-+      TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
-+          "Running host_secure_rng HWP on processor target %.8X",
-+          TARGETING::get_huid(l_cpu_target) );
-+
-+      FAPI_INVOKE_HWP(l_err, p9_rng_init_phase2, l_fapi2_proc_target);
-+      if(l_err)
-+      {
-+          TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace,
-+                    "ERROR: call p9_rng_init_phase2, PLID=0x%x",
-+                    l_err->plid());
-+          l_StepError.addErrorDetails(l_err);
-+          errlCommit(l_err, HWPF_COMP_ID);
-+      }
-+
-     } // end of going through all processors
- 
-     TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
--- 
-1.8.2.2
-
diff --git a/openpower/package/openpower-pnor/Config.in b/openpower/package/openpower-pnor/Config.in
index 438ea95..2328a04 100644
--- a/openpower/package/openpower-pnor/Config.in
+++ b/openpower/package/openpower-pnor/Config.in
@@ -67,11 +67,13 @@
 
 config BR2_WOFDATA_FILENAME
         string "Name of wofdata original file"
+        default "wof_output"
         help
             String used to define name of wofdata original file
 
 config BR2_WOFDATA_BINARY_FILENAME
         string "Name of wofdata binary file"
+        default "wofdata.bin.ecc"
         help
             String used to define name of wofdata binary ecc'd file
 
diff --git a/openpower/package/skiboot/Config.in b/openpower/package/skiboot/Config.in
index 0506983..fa8a8a3 100644
--- a/openpower/package/skiboot/Config.in
+++ b/openpower/package/skiboot/Config.in
@@ -31,7 +31,7 @@
 
 config BR2_SKIBOOT_VERSION
 	string
-	default "skiboot-5.6.0" if BR2_SKIBOOT_LATEST_VERSION
+	default "skiboot-5.6.0-87-ge835c2fb7ce1" if BR2_SKIBOOT_LATEST_VERSION
 	default BR2_SKIBOOT_CUSTOM_VERSION_VALUE \
 		if BR2_SKIBOOT_CUSTOM_VERSION