diff --git a/openpower/package/hostboot/hostboot.mk b/openpower/package/hostboot/hostboot.mk
index 4d008b1..537e91d 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 ?= 814c42018faf5626960becf1e089f42127c6bd2d
+HOSTBOOT_VERSION_BRANCH_MASTER ?= 09611ce4c4d419f9202cea67c0ccb544d9c9da12
 
 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-1001-PM-HOMER-Header-Magic-word-change.patch b/openpower/package/hostboot/p9Patches/hostboot-1001-PM-HOMER-Header-Magic-word-change.patch
deleted file mode 100644
index 49e1de3..0000000
--- a/openpower/package/hostboot/p9Patches/hostboot-1001-PM-HOMER-Header-Magic-word-change.patch
+++ /dev/null
@@ -1,83 +0,0 @@
-From 6707528059ba2b13b6ab78c1ed12d99ecd3fa69c Mon Sep 17 00:00:00 2001
-From: Prem Shanker Jha <premjha2@in.ibm.com>
-Date: Fri, 23 Jun 2017 10:42:53 -0500
-Subject: [PATCH v1 1001/1002] PM: HOMER Header Magic word change.
-
-Commit restores the magic words of CPMR, QPMR and PPMR region to
-CPMR_1.0, QPMR_1.0 and PPMR_1.0 respectively. It dissociates it
-with EC level.
-
-Change-Id: I4a5a40f0d766eb80eaba09fb216b93ae54d0219e
-Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/42366
-Reviewed-by: Gregory S. Still <stillgs@us.ibm.com>
-Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
-Tested-by: Hostboot CI <hostboot-ci+hostboot@us.ibm.com>
-Reviewed-by: RAHUL BATRA <rbatra@us.ibm.com>
-Reviewed-by: Jennifer A Stofer <stofer@us.ibm.com>
----
- .../p9/procedures/hwp/pm/p9_hcode_image_build.C    | 32 ++++++++++------------
- 1 file changed, 14 insertions(+), 18 deletions(-)
-
-diff --git a/src/import/chips/p9/procedures/hwp/pm/p9_hcode_image_build.C b/src/import/chips/p9/procedures/hwp/pm/p9_hcode_image_build.C
-index 8957295..4ddb140 100644
---- a/src/import/chips/p9/procedures/hwp/pm/p9_hcode_image_build.C
-+++ b/src/import/chips/p9/procedures/hwp/pm/p9_hcode_image_build.C
-@@ -134,6 +134,7 @@ enum
-     L3_EPS_DIVIDER              =   1,
-     L2_EPS_DIVIDER              =   1,
-     MAX_HOMER_HEADER            =   6,
-+    MAX_PM_REGION_HEADER        =   3,
- };
- 
- /**
-@@ -3789,34 +3790,29 @@ void customizeMagicWord( Homerlayout_t*     i_pHomer, uint8_t i_ecLevel )
-     uint64_t magicWordCustom[MAX_HOMER_HEADER];
-     uint64_t * pMagicWord[MAX_HOMER_HEADER];
-     pMagicWord[0]   =   &pQpmrHdr->magic_number;
--    pMagicWord[1]   =   &pSgpeImgHdr->g_sgpe_magic_number;
--    pMagicWord[2]   =   &pCpmrHdr->magic_number;
--    pMagicWord[3]   =   &pCmeHdr->g_cme_magic_number;
--    pMagicWord[4]   =   &pPpmrHdr->g_ppmr_magic_number;
-+    pMagicWord[1]   =   &pCpmrHdr->magic_number;
-+    pMagicWord[2]   =   &pPpmrHdr->g_ppmr_magic_number;
-+    pMagicWord[3]   =   &pSgpeImgHdr->g_sgpe_magic_number;
-+    pMagicWord[4]   =   &pCmeHdr->g_cme_magic_number;
-     pMagicWord[5]   =   &pPgpeHdr->g_pgpe_magic_number;
- 
--    magicWordCustom[0]  =  QPMR_MAGIC_NUMBER_BASE;
--    magicWordCustom[1]  =  SGPE_MAGIC_NUMBER_BASE;
--    magicWordCustom[2]  =  CPMR_MAGIC_NUMBER_BASE;
--    magicWordCustom[3]  =  CME_MAGIC_NUMBER_BASE;
--    magicWordCustom[4]  =  PPMR_MAGIC_NUMBER_BASE;
--    magicWordCustom[5]  =  PGPE_MAGIC_NUMBER_BASE;
-+    magicWordCustom[0]  =  QPMR_MAGIC_NUMBER;
-+    magicWordCustom[1]  =  CPMR_MAGIC_NUMBER;
-+    magicWordCustom[2]  =  PPMR_MAGIC_NUMBER;
-+    magicWordCustom[3]  =  SGPE_MAGIC_NUMBER;
-+    magicWordCustom[4]  =  CME_MAGIC_NUMBER;
-+    magicWordCustom[5]  =  PGPE_MAGIC_NUMBER;
- 
--    uint32_t ecMajor = (i_ecLevel & 0xf0 );
--    ecMajor = ecMajor << 12;
--    uint8_t ecMinor = (i_ecLevel & 0x0f);
- 
-     FAPI_INF("=========== Header Magic Words Info ===========");
- 
-     for( uint32_t i = 0; i < MAX_HOMER_HEADER; i++ )
-     {
--        char magicWord[MAX_HOMER_HEADER][20] = { "QPMR Magic Word ", "SGPE Magic Word ", "CPMR Magic Word ",
--                                        "CME Magic Word ", "PPMR Magic Word ", "PGPE Magic Word " };
-+        char magicWord[MAX_HOMER_HEADER][20] = { "QPMR Magic Word ", "CPMR Magic Word ", "PPMR Magic Word ",
-+                                                 "SGPE Magic Word ", "CME Magic Word ", "PGPE Magic Word " };
-         char tempBuf[10] ;
-         memset( tempBuf, 0x00, 10 );
--        magicWordCustom[i] += ecMinor;
--        magicWordCustom[i] += ecMajor;
--        *pMagicWord[i]     = SWIZZLE_8_BYTE( magicWordCustom[i]);
-+        *pMagicWord[i]     =    SWIZZLE_8_BYTE( magicWordCustom[i] );
-         memcpy( tempBuf, pMagicWord[i], sizeof(uint64_t) );
-         FAPI_INF("%s\t\t:\t\t %s ( 0x%016lx ) ", &magicWord[i], tempBuf, SWIZZLE_8_BYTE(*pMagicWord[i]) );
-     }
--- 
-1.8.2.2
-
