Merge pull request #149 from open-power/master-next

Merge v1.2 content back to master.
diff --git a/buildroot b/buildroot
index f462e06..9ac423f 160000
--- a/buildroot
+++ b/buildroot
@@ -1 +1 @@
-Subproject commit f462e06ab10035029f24d494d9936fcb8c6cf49a
+Subproject commit 9ac423f6f0d99b33e7bb7ad703cf83e80716da8a
diff --git a/openpower/configs/firestone_defconfig b/openpower/configs/firestone_defconfig
index 0e4b766..d72cb81 100644
--- a/openpower/configs/firestone_defconfig
+++ b/openpower/configs/firestone_defconfig
@@ -21,6 +21,7 @@
 
 BR2_OPENPOWER_PNOR_XML_LAYOUT_FILENAME="defaultPnorLayoutWithGoldenSide.xml"
 BR2_OPENPOWER_PNOR_FILENAME="firestone.pnor"
+BR2_OPENPOWER_PNOR_UPDATE_FILENAME="firestone_update.pnor"
 
 # skiboot requirements
 BR2_TARGET_SKIBOOT=y
diff --git a/openpower/configs/habanero_defconfig b/openpower/configs/habanero_defconfig
index 2d400c0..64b827a 100644
--- a/openpower/configs/habanero_defconfig
+++ b/openpower/configs/habanero_defconfig
@@ -21,6 +21,7 @@
 
 BR2_OPENPOWER_PNOR_XML_LAYOUT_FILENAME="defaultPnorLayoutWithGoldenSide.xml"
 BR2_OPENPOWER_PNOR_FILENAME="habanero.pnor"
+BR2_OPENPOWER_PNOR_UPDATE_FILENAME="habanero_update.pnor"
 
 # skiboot requirements
 BR2_TARGET_SKIBOOT=y
diff --git a/openpower/configs/hostboot/firestone.config b/openpower/configs/hostboot/firestone.config
index 6684dd6..4b96cd9 100755
--- a/openpower/configs/hostboot/firestone.config
+++ b/openpower/configs/hostboot/firestone.config
@@ -7,13 +7,19 @@
 
 # VPD options.
 set MVPD_READ_FROM_HW
-unset MVPD_READ_FROM_PNOR
+set MVPD_WRITE_TO_HW
+set MVPD_READ_FROM_PNOR
+set MVPD_WRITE_FROM_PNOR
 set DJVPD_READ_FROM_HW
-unset DJVPD_READ_FROM_PNOR
+set DJVPD_WRITE_TO_HW
+set DJVPD_READ_FROM_PNOR
+set DJVPD_WRITE_TO_PNOR
 set CVPD_READ_FROM_HW
-#set CVPD_WRITE_TO_HW
-unset CVPD_READ_FROM_PNOR
+set CVPD_WRITE_TO_HW
+set CVPD_READ_FROM_PNOR
+set CVPD_WRITE_TO_PNOR
 set SKIP_RESTRICT_EX_UNITS
+unset CDIMM_FORMAT_FOR_CVPD
 
 # gpio config
 set GPIODD
@@ -35,3 +41,7 @@
 set DISABLE_HOSTBOOT_RUNTIME
 unset HTMGT
 unset START_OCC_DURING_BOOT
+
+# Enable Checktop Analysis
+set ENABLE_CHECKSTOP_ANALYSIS
+
diff --git a/openpower/configs/hostboot/habanero.config b/openpower/configs/hostboot/habanero.config
index 2130784..90e5735 100755
--- a/openpower/configs/hostboot/habanero.config
+++ b/openpower/configs/hostboot/habanero.config
@@ -55,5 +55,8 @@
 
 set BMC_BT_LPC_IPMI
 
+# Enable Checktop Analysis
+set ENABLE_CHECKSTOP_ANALYSIS
+
 # set for trace debug to console
 unset CONSOLE_OUTPUT_TRACE
diff --git a/openpower/configs/hostboot/palmetto.config b/openpower/configs/hostboot/palmetto.config
index 0d48abe..12ebc2c 100755
--- a/openpower/configs/hostboot/palmetto.config
+++ b/openpower/configs/hostboot/palmetto.config
@@ -51,5 +51,8 @@
 
 set BMC_BT_LPC_IPMI
 
+# Enable Checktop Analysis
+set ENABLE_CHECKSTOP_ANALYSIS
+
 # set for trace debug to console
 unset CONSOLE_OUTPUT_TRACE
diff --git a/openpower/configs/linux/skiroot_defconfig b/openpower/configs/linux/skiroot_defconfig
index e54be62..78a02c0 100644
--- a/openpower/configs/linux/skiroot_defconfig
+++ b/openpower/configs/linux/skiroot_defconfig
@@ -29,6 +29,7 @@
 CONFIG_MODULE_UNLOAD=y
 CONFIG_PARTITION_ADVANCED=y
 # CONFIG_PPC_PMAC is not set
+CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y
 CONFIG_HZ_100=y
 CONFIG_KEXEC=y
 CONFIG_IRQ_ALL_CPUS=y
diff --git a/openpower/package/VERSION.readme b/openpower/package/VERSION.readme
index 59fec86..b9b43bb 100644
--- a/openpower/package/VERSION.readme
+++ b/openpower/package/VERSION.readme
@@ -13,12 +13,18 @@
 
     ## Op-build Commands ##
 
-    # Display package version
+    # Display subpackage version
     op-build $(package)-version
 
-    # Force a rebuild of a package version
+    # Display entire pnor version
+    op-build openpower-pnor-version
+
+    # Force a rebuild of a subpackage version
     op-build $(package)-build-version
 
+    # Force a rebuild of all subpackage versions
+    op-build openpower-pnor-build-version-all
+
     ##  Version String (ASCII) ##
 
     General:
diff --git a/openpower/package/firestone-xml/firestone.mk b/openpower/package/firestone-xml/firestone.mk
index aa77e03..600c285 100644
--- a/openpower/package/firestone-xml/firestone.mk
+++ b/openpower/package/firestone-xml/firestone.mk
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-FIRESTONE_XML_VERSION ?= 8023db709f2ed5ee4c481fcb7eff68a30248e0ae
+FIRESTONE_XML_VERSION ?= 3383b31643c225f7bcecc8ce08dcbb6803f3e058
 FIRESTONE_XML_SITE ?= $(call github,open-power,firestone-xml,$(FIRESTONE_XML_VERSION))
 
 FIRESTONE_XML_LICENSE = Apache-2.0
diff --git a/openpower/package/habanero-xml/habanero-xml-0001-Revert-Merge-pull-request-18-from-open-power-bofferd.patch b/openpower/package/habanero-xml/habanero-xml-0001-Revert-Merge-pull-request-18-from-open-power-bofferd.patch
deleted file mode 100644
index 0a921c5..0000000
--- a/openpower/package/habanero-xml/habanero-xml-0001-Revert-Merge-pull-request-18-from-open-power-bofferd.patch
+++ /dev/null
@@ -1,84 +0,0 @@
-From b1eb2395a4bf796603cb34aa5913f43b84c42855 Mon Sep 17 00:00:00 2001
-From: Bill Hoffa <wghoffa@us.ibm.com>
-Date: Tue, 31 Mar 2015 07:56:06 -0500
-Subject: [PATCH] Revert "Merge pull request #18 from
- open-power/bofferdn-hab-loadline"
-
-This reverts commit ddb962894919657517f0d9bca4540a427953f987, reversing
-changes made to a98bf456ff5d9f18dc2af1ffc59d67a302029a76.
-
-Conflicts:
-	habanero.xml
----
- habanero.xml | 48 ++++++++++++++++++++++++------------------------
- 1 file changed, 24 insertions(+), 24 deletions(-)
-
-diff --git a/habanero.xml b/habanero.xml
-index 8768f72..1aa85a8 100644
---- a/habanero.xml
-+++ b/habanero.xml
-@@ -4967,6 +4967,30 @@
- 		<default>1</default>
- 	</attribute>
- 	<attribute>
-+		<id>PROC_R_DISTLOSS_VCS</id>
-+		<default></default>
-+	</attribute>
-+	<attribute>
-+		<id>PROC_R_DISTLOSS_VDD</id>
-+		<default></default>
-+	</attribute>
-+	<attribute>
-+		<id>PROC_R_LOADLINE_VCS</id>
-+		<default></default>
-+	</attribute>
-+	<attribute>
-+		<id>PROC_R_LOADLINE_VDD</id>
-+		<default></default>
-+	</attribute>
-+	<attribute>
-+		<id>PROC_VRM_VOFFSET_VCS</id>
-+		<default></default>
-+	</attribute>
-+	<attribute>
-+		<id>PROC_VRM_VOFFSET_VDD</id>
-+		<default></default>
-+	</attribute>
-+	<attribute>
- 		<id>PROC_X_BUS_WIDTH</id>
- 		<default>2</default>
- 	</attribute>
-@@ -6996,30 +7020,6 @@
- 		<default>0</default>
- 	</attribute>
- 	<attribute>
--		<id>PROC_R_DISTLOSS_VCS</id>
--		<default></default>
--	</attribute>
--	<attribute>
--		<id>PROC_R_DISTLOSS_VDD</id>
--		<default></default>
--	</attribute>
--	<attribute>
--		<id>PROC_R_LOADLINE_VCS</id>
--		<default></default>
--	</attribute>
--	<attribute>
--		<id>PROC_R_LOADLINE_VDD</id>
--		<default></default>
--	</attribute>
--	<attribute>
--		<id>PROC_VRM_VOFFSET_VCS</id>
--		<default></default>
--	</attribute>
--	<attribute>
--		<id>PROC_VRM_VOFFSET_VDD</id>
--		<default></default>
--	</attribute>
--	<attribute>
- 		<id>PSI_BRIDGE_BASE_ADDR</id>
- 		<default>0,0x0000000000000000</default>
- 	</attribute>
--- 
-1.8.2.2
-
diff --git a/openpower/package/habanero-xml/habanero-xml.mk b/openpower/package/habanero-xml/habanero-xml.mk
index 0ab244c..557a7da 100644
--- a/openpower/package/habanero-xml/habanero-xml.mk
+++ b/openpower/package/habanero-xml/habanero-xml.mk
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-HABANERO_XML_VERSION ?= 4173b205b0a7dfd18a97f3a0d5319c9aad893035
+HABANERO_XML_VERSION ?= b7f0e388bba972fcdcf749f9bb8e31bc9e1022c0
 HABANERO_XML_SITE ?= $(call github,open-power,habanero-xml,$(HABANERO_XML_VERSION))
 
 HABANERO_XML_LICENSE = Apache-2.0
diff --git a/openpower/package/hostboot/hostboot-0002-Disable-centaur-memory-throttle.patch b/openpower/package/hostboot/hostboot-0002-Disable-centaur-memory-throttle.patch
deleted file mode 100644
index 632738c..0000000
--- a/openpower/package/hostboot/hostboot-0002-Disable-centaur-memory-throttle.patch
+++ /dev/null
@@ -1,94 +0,0 @@
-From 79836dad6267a420ccdd5d3a050ea012227cc9e3 Mon Sep 17 00:00:00 2001
-From: Dean Sanner <dsanner@us.ibm.com>
-Date: Thu, 30 Oct 2014 10:39:12 -0500
-Subject: [PATCH] Disable centaur memory throttle
-
-Change-Id: I86098af366a60b8132f802d8304f1ef883cff542
----
- .../mss_thermal_init/mss_thermal_init.C            |  3 +-
- src/usr/hwpf/hwp/initfiles/mba_def.initfile        | 49 ----------------------
- 2 files changed, 2 insertions(+), 50 deletions(-)
-
-diff --git a/src/usr/hwpf/hwp/dram_initialization/mss_thermal_init/mss_thermal_init.C b/src/usr/hwpf/hwp/dram_initialization/mss_thermal_init/mss_thermal_init.C
-index c295d0f..c607f9b 100644
---- a/src/usr/hwpf/hwp/dram_initialization/mss_thermal_init/mss_thermal_init.C
-+++ b/src/usr/hwpf/hwp/dram_initialization/mss_thermal_init/mss_thermal_init.C
-@@ -586,7 +586,7 @@ fapi::ReturnCode mss_thermal_init(const fapi::Target & i_target)
- 
- // Write the IPL Safe Mode Throttles
- // For centaur DD2 and above since OCC only writes runtime throttles for this
--
-+#if 0
-       uint8_t l_enable_safemode_throttle = 0;
-       l_rc = FAPI_ATTR_GET(ATTR_CENTAUR_EC_ENABLE_SAFEMODE_THROTTLE, &i_target, l_enable_safemode_throttle);
-       if (l_rc) return l_rc;
-@@ -618,6 +618,7 @@ fapi::ReturnCode mss_thermal_init(const fapi::Target & i_target)
- 	      if (l_rc) return l_rc;
- 	  }
-       }
-+#endif
- 
-       FAPI_INF("*** %s COMPLETE ***", procedure_name);
-       return l_rc;
-diff --git a/src/usr/hwpf/hwp/initfiles/mba_def.initfile b/src/usr/hwpf/hwp/initfiles/mba_def.initfile
-index 4a66dca..2dad4f4 100644
---- a/src/usr/hwpf/hwp/initfiles/mba_def.initfile
-+++ b/src/usr/hwpf/hwp/initfiles/mba_def.initfile
-@@ -1516,55 +1516,6 @@ scom 0x0301040E     {
- #cfg_nm_ras_weight, bits 45:47 = ATTR_MSS_THROTTLE_CONTROL_RAS_WEIGHT
- #cfg_nm_cas_weight, bits 48:50 = ATTR_MSS_THROTTLE_CONTROL_CAS_WEIGHT
- 
--
--
--scom 0x03010416     {
--    bits    ,   scom_data                                 ,       ATTR_FUNCTIONAL,     expr;
--    0:14    ,   ATTR_MSS_MEM_THROTTLE_NUMERATOR_PER_MBA   ,            1            ,     any;          # cfg_nm_n_per_mba	MSS_MEM_THROTTLE_NUMERATOR_PER_MBA
--    15:30   ,   ATTR_MSS_MEM_THROTTLE_NUMERATOR_PER_CHIP  ,            1            ,     any;          # cfg_nm_n_per_chip	MSS_MEM_THROTTLE_NUMERATOR_PER_CHIP
--    31:44   ,   ATTR_MSS_MEM_THROTTLE_DENOMINATOR         ,            1            ,     any;          # cfg_nm_m	MSS_MEM_THROTTLE_DENOMINATOR
--    45:47   ,   ATTR_MSS_THROTTLE_CONTROL_RAS_WEIGHT      ,            1            ,     any;          # cfg_nm_ras_weight
--    48:50   ,   ATTR_MSS_THROTTLE_CONTROL_CAS_WEIGHT      ,            1            ,     any;          # cfg_nm_cas_weight
--    51      ,   0b0                                       ,            1            ,     (ATTR_EFF_DIMM_TYPE == 2 ) && (ATTR_EFF_CUSTOM_DIMM == 1);          # cfg_nm_per_slot_enabled	Set to 0 for CDIMM, Set to 1 for everything else
--    51      ,   0b1                                       ,            1            ,     ((ATTR_EFF_DIMM_TYPE == 1) || ((ATTR_EFF_DIMM_TYPE == 2) && (ATTR_EFF_CUSTOM_DIMM == 0)) || (ATTR_EFF_DIMM_TYPE == 3));          # cfg_nm_per_slot_enabled	Set to 0 for CDIMM, Set to 1 for everything else
--    52      ,   0b0                                       ,            1            ,     (ATTR_EFF_DIMM_TYPE == 2) && (ATTR_EFF_CUSTOM_DIMM == 1);          # cfg_nm_count_other_mba_dis	Set to 0 for CDIMM, Set to 1 for everything else
--    52      ,   0b1                                       ,            1            ,     ((ATTR_EFF_DIMM_TYPE == 1) || ((ATTR_EFF_DIMM_TYPE == 2) && (ATTR_EFF_CUSTOM_DIMM == 0)) || (ATTR_EFF_DIMM_TYPE == 3));          # cfg_nm_count_other_mba_dis	Set to 0 for CDIMM, Set to 1 for everything else
--    53      ,   0b1                                       ,            1            ,     (ATTR_CENTAUR_EC_ENABLE_NM_CHANGE_AFTER_SYNC == 1);          # cfg_nm_change_after_sync
--}
--
--
--#Register Name	N/M Throttling Control
--#Mnemonic	MBA_FARB4Q
--#Attributes	PAR:EVEN	Bit	Field Mnemonic	Attribute or Setting to use
--#Description	N/M throttling control (Centaur only)
--#MBA_FARB4Q(0:1)		cfg_rhmr_en			01		Track only (only FIRs will go off, signaling when a block would have occurred)
--#MBA_FARB4Q(2)			cfg_rhmr_secondary_en	0		Secondary Structure disabled (this is for repair sequence)
--#MBA_FARB4Q(3)			cfg_rhmr_hash_swizzle_en	0		Disable swizzling hash (so we don't switch which rows correspond to which counters)
--#MBA_FARB4Q(4:9)		Reserved			000000		Don't Care
--#MBA_FARB4Q(10:11)		cfg_rhmr_decrement_weight	01		Decrement by 1 (minimum weight)
--#MBA_FARB4Q(12:18)		cfg_rhmr_primary_decr_intv	1111111	Slowest rate of decrements. Once ever 2^14 or 16K DRAM clocks*
--#MBA_FARB4Q(12:18)		cfg_rhmr_primary_decr_intv	0000011	 decrement every 512 DRAM clocks for 100K accesses to hash group
--#MBA_FARB4Q(19:25)		cfg_rhmr_secondary_decr_intv	0000000	Don't care
--#MBA_FARB4Q(26)		cfg_rhmr_sim_en		0		Disable sim mode
--#   -- bits 27:41 (cfg_emer_n) = ATTR_MRW_SAFEMODE_MEM_THROTTLE_NUMERATOR_PER_CHIP
--#   -- bits 42:55 (cfg_emer_m) = ATTR_MRW_MEM_THROTTLE_DENOMINATOR
--#*I think this corresponds to protecting a row from being hammered 64K times.
--
--scom 0x03010417     {
--    bits    ,   scom_data                                 ,       ATTR_FUNCTIONAL,     expr;
--    0:1     ,   0b01                                      ,            1            ,    (ATTR_CENTAUR_EC_ENABLE_ROW_HAMMER_FEATURE == 1);
--    2       ,   0b0                                       ,            1            ,    (ATTR_CENTAUR_EC_ENABLE_ROW_HAMMER_FEATURE == 1);
--    3       ,   0b0                                       ,            1            ,    (ATTR_CENTAUR_EC_ENABLE_ROW_HAMMER_FEATURE == 1);
--    4:9     ,   0b000000                                  ,            1            ,    (ATTR_CENTAUR_EC_ENABLE_ROW_HAMMER_FEATURE == 1);
--    10:11   ,   0b01                                      ,            1            ,    (ATTR_CENTAUR_EC_ENABLE_ROW_HAMMER_FEATURE == 1);
--    12:18   ,   0b0000011                                 ,            1            ,    (ATTR_CENTAUR_EC_ENABLE_ROW_HAMMER_FEATURE == 1);
--    19:25   ,   0b0000000                                 ,            1            ,    (ATTR_CENTAUR_EC_ENABLE_ROW_HAMMER_FEATURE == 1);
--    26      ,   0b0                                       ,            1            ,    (ATTR_CENTAUR_EC_ENABLE_ROW_HAMMER_FEATURE == 1);
--    27:41   ,   SYS.ATTR_MRW_SAFEMODE_MEM_THROTTLE_NUMERATOR_PER_CHIP,            1            ,    (ATTR_CENTAUR_EC_ENABLE_SAFE_MODE_THROTTLE == 1);
--    42:55   ,   SYS.ATTR_MRW_MEM_THROTTLE_DENOMINATOR                ,            1            ,    (ATTR_CENTAUR_EC_ENABLE_SAFE_MODE_THROTTLE == 1);
--}
--
--
- # ATTR_EFF_DIMM_TYPE
- # CDIMM = 0, RDIMM = 1, UDIMM = 2, LRDIMM = 3
- 
--- 
-1.9.1
\ No newline at end of file
diff --git a/openpower/package/hostboot/hostboot-0003-GCC-4.9-Make-compiler-use-ELFv1-ABI-and-use-O2.patch b/openpower/package/hostboot/hostboot-0002-GCC-4.9-Make-compiler-use-ELFv1-ABI-and-use-O2.patch
similarity index 100%
rename from openpower/package/hostboot/hostboot-0003-GCC-4.9-Make-compiler-use-ELFv1-ABI-and-use-O2.patch
rename to openpower/package/hostboot/hostboot-0002-GCC-4.9-Make-compiler-use-ELFv1-ABI-and-use-O2.patch
diff --git a/openpower/package/hostboot/hostboot-0003-mss_thermal_undo.patch b/openpower/package/hostboot/hostboot-0003-mss_thermal_undo.patch
new file mode 100644
index 0000000..455b3c7
--- /dev/null
+++ b/openpower/package/hostboot/hostboot-0003-mss_thermal_undo.patch
@@ -0,0 +1,43 @@
+From d7b5b4a29107c17ad97b2c25cec11f51df485ea1 Mon Sep 17 00:00:00 2001
+From: Brian Horton <brianh@linux.ibm.com>
+Date: Tue, 31 Mar 2015 13:26:40 -0500
+Subject: [PATCH] undo 1.18 change
+
+Change-Id: I477dd4a478fc3c752a7f4f9dd1dff9f03ce39cc1
+---
+ .../mss_thermal_init/mss_thermal_init.C            |    5 +++--
+ 1 files changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/src/usr/hwpf/hwp/dram_initialization/mss_thermal_init/mss_thermal_init.C b/src/usr/hwpf/hwp/dram_initialization/mss_thermal_init/mss_thermal_init.C
+index a98b58d..b90d1d6 100644
+--- a/src/usr/hwpf/hwp/dram_initialization/mss_thermal_init/mss_thermal_init.C
++++ b/src/usr/hwpf/hwp/dram_initialization/mss_thermal_init/mss_thermal_init.C
+@@ -22,7 +22,7 @@
+ /* permissions and limitations under the License.                         */
+ /*                                                                        */
+ /* IBM_PROLOG_END_TAG                                                     */
+-// $Id: mss_thermal_init.C,v 1.20 2015/03/02 20:43:37 pardeik Exp $
++// $Id: mss_thermal_init.C,v 1.20a CHANGED IN OPENPOWER PATCH brianh Exp $
+ // $Source: /afs/awd/projects/eclipz/KnowledgeBase/.cvsroot/eclipz/chips/centaur/working/procedures/ipl/fapi/mss_thermal_init.C,v $
+ //------------------------------------------------------------------------------
+ // *! (C) Copyright International Business Machines Corp. 2011
+@@ -49,6 +49,7 @@
+ //------------------------------------------------------------------------------
+ // Version:|  Author: |  Date:  | Comment:
+ //---------|----------|---------|-----------------------------------------------
++//   1.20a | brianh   |31-MAR-15| under 1.18
+ //   1.20  | pardeik  |02-MAR-15| initialize l_dimm_ranks_array to zero
+ //                              | use const variables in for loops instead of numbers
+ //   1.18  | pardeik  |12-FEB-15| change ATTR_MRW_MEM_SENSOR_CACHE_ADDR_MAP to
+@@ -295,7 +296,7 @@ fapi::ReturnCode mss_thermal_init(const fapi::Target & i_target)
+       else
+       {
+ 	  // sensor cache address map for non custom dimm temperature sensors (which i2c bus and i2c address they are)
+-	  l_rc = FAPI_ATTR_GET(ATTR_MRW_MEM_SENSOR_CACHE_ADDR_MAP, &i_target, l_dimm_sensor_cache_addr_map);
++	  l_rc = FAPI_ATTR_GET(ATTR_MRW_MEM_SENSOR_CACHE_ADDR_MAP, NULL, l_dimm_sensor_cache_addr_map);
+ 	  if (l_rc) return l_rc;
+       }
+ 
+-- 
+1.7.4.1
+
diff --git a/openpower/package/hostboot/hostboot-0004-Revert-SW294127-INITPROC-FSP-Hostboot-fast-exit-powe.patch b/openpower/package/hostboot/hostboot-0004-Revert-SW294127-INITPROC-FSP-Hostboot-fast-exit-powe.patch
deleted file mode 100644
index bb5a0ae..0000000
--- a/openpower/package/hostboot/hostboot-0004-Revert-SW294127-INITPROC-FSP-Hostboot-fast-exit-powe.patch
+++ /dev/null
@@ -1,544 +0,0 @@
-From 114bf3bb36fffe6c3c9c5894ebaae5772edb35ff Mon Sep 17 00:00:00 2001
-From: Andrew Geissler <andrewg@us.ibm.com>
-Date: Sat, 28 Feb 2015 12:28:05 -0600
-Subject: [PATCH] Revert "SW294127:INITPROC: FSP&Hostboot - fast exit power down"
-
-This reverts commit bffe97031429bd5656930f7453c496ce2594e5e6.
----
- .../mss_draminit_mc/mss_draminit_mc.C              |   19 +-
- src/usr/hwpf/hwp/initfiles/mba_def.initfile        |  423 +++++---------------
- 2 files changed, 118 insertions(+), 324 deletions(-)
-
-diff --git a/src/usr/hwpf/hwp/dram_training/mss_draminit_mc/mss_draminit_mc.C b/src/usr/hwpf/hwp/dram_training/mss_draminit_mc/mss_draminit_mc.C
-index 53f3132..350efb7 100644
---- a/src/usr/hwpf/hwp/dram_training/mss_draminit_mc/mss_draminit_mc.C
-+++ b/src/usr/hwpf/hwp/dram_training/mss_draminit_mc/mss_draminit_mc.C
-@@ -5,7 +5,7 @@
- /*                                                                        */
- /* OpenPOWER HostBoot Project                                             */
- /*                                                                        */
--/* Contributors Listed Below - COPYRIGHT 2012,2015                        */
-+/* Contributors Listed Below - COPYRIGHT 2012,2014                        */
- /* [+] International Business Machines Corp.                              */
- /*                                                                        */
- /*                                                                        */
-@@ -22,7 +22,7 @@
- /* permissions and limitations under the License.                         */
- /*                                                                        */
- /* IBM_PROLOG_END_TAG                                                     */
--// $Id: mss_draminit_mc.C,v 1.48 2014/12/05 15:37:43 dcadiga Exp $
-+// $Id: mss_draminit_mc.C,v 1.47 2014/09/24 14:48:18 dcadiga Exp $
- //------------------------------------------------------------------------------
- // *! (C) Copyright International Business Machines Corp. 2011
- // *! All Rights Reserved -- Property of IBM
-@@ -46,7 +46,6 @@
- //------------------------------------------------------------------------------
- // Version:|  Author: |  Date:  | Comment:
- //---------|----------|---------|-----------------------------------------------
--//  1.48   | dcadiga  |05-DEC-14| Powerdown control at initfile
- //  1.47   | dcadiga  |09-SEP-14| Removed SPARE cke disable step
- //  1.46   | gollub   |07-APR-14| Removed call to mss_unmask_inband_errors (moved it to proc_cen_framelock)
- //  1.45   | dcadiga  |14-FEB-14| Periodic Cal Fix for DD2
-@@ -255,14 +254,12 @@ ReturnCode mss_draminit_mc_cloned(Target& i_target)
- 
-         // Step Five: Setup Power Management
-         FAPI_INF( "+++ Setting Up Power Management +++");
--        FAPI_INF( "+++ POWER MANAGEMENT HANDLED AT INITFILE +++");
--        //Procedure commented out because domain reduction enablement now handled at the initfile
--        //rc = mss_enable_power_management(l_mbaChiplets[i]);
--        //if(rc)
--        //{
--        //   FAPI_ERR("---Error During Power Management Setup and Enable rc = 0x%08X (creator = %d)---", uint32_t(rc), rc.getCreator());
--        //   return rc;
--        //}
-+        rc = mss_enable_power_management(l_mbaChiplets[i]);
-+        if(rc)
-+        {
-+           FAPI_ERR("---Error During Power Management Setup and Enable rc = 0x%08X (creator = %d)---", uint32_t(rc), rc.getCreator());
-+           return rc;
-+        }
-   
-     }
- 
-diff --git a/src/usr/hwpf/hwp/initfiles/mba_def.initfile b/src/usr/hwpf/hwp/initfiles/mba_def.initfile
-index 61eba9e..88aafb9 100644
---- a/src/usr/hwpf/hwp/initfiles/mba_def.initfile
-+++ b/src/usr/hwpf/hwp/initfiles/mba_def.initfile
-@@ -1,9 +1,9 @@
--#-- $Id: mba_def.initfile,v 1.70 2014/12/05 16:21:33 yctschan Exp $
-+
-+#-- $Id: mba_def.initfile,v 1.69 2014/09/24 14:44:15 asaetow Exp $
- #-- CHANGE HISTORY:
- #--------------------------------------------------------------------------------
- #-- Version:|Author: | Date:  | Comment:
- #-- --------|--------|--------|--------------------------------------------------
--#--     1.70|yctschan|12/05/14| Updated settings for fast exit power down
- #--     1.69|asaetow | 9/24/14| Force SpareCKE sync. Spare DRAM workaround.
- #--     1.68|jdsloat | 4/04/14| Turned off Power controls for GA1 concerns - Turn back on at a later date
- #--     1.67|tschang | 4/01/14| Adjusted the PUP Avail and SEPD/FEPD time.
-@@ -144,12 +144,93 @@ define def_equal_test     =  (SYS.ATTR_SCRATCH_UINT32_1 == SYS.ATTR_SCRATCH_UINT
- #    <valueType>uint32</valueType>
- #    <enum>DISABLE = 0</enum>
- 
-+#<attribute>
-+#    <id>ATTR_EFF_DIMM_RANKS_CONFIGED</id>
-+#    <targetType>TARGET_TYPE_MBA_CHIPLET</targetType>
-+#    <description>Bit wise representation of master ranks in each DIMM that are used for reads and writes. Used in various locations and is computed in mss_eff_cnfg. Can be overwritten by ODM vendors if done from the PNOR or odm_eff_cnfg.
-+#Dimensions are [port][dimm]  A/B=Mba_0 C/D=Mba_1 There are only two DIMM ranks: DIMM0 and DIMM1 where DIMM0 is the furthest from the centaur.
-+#creator: mss_eff_cnfg
-+#consumer: various
-+#firmware notes: none</description>
-+#    <valueType>uint8</valueType>
-+#    <writeable/>
-+#    <odmVisable/>
-+#    <odmChangeable/>
-+#    <array> 2 2</array>
-+#    <persistRuntime/>
-+#</attribute>
-+#
-+#<attribute>
-+#    <id>ATTR_EFF_NUM_MASTER_RANKS_PER_DIMM</id>
-+#    <targetType>TARGET_TYPE_MBA_CHIPLET</targetType>
-+#    <description>Specifies the number of master ranks per DIMM.</description>
-+#    <valueType>uint8</valueType>
-+#    <writeable/>
-+#    <odmVisable/>
-+#    <odmChangeable/>
-+#    <array> 2 2</array>
-+#</attribute>
-+#
-+#<attribute>
-+#    <id>ATTR_EFF_NUM_RANKS_PER_DIMM</id>
-+#    <targetType>TARGET_TYPE_MBA_CHIPLET</targetType>
-+#    <description>Number of ranks in each DIMM. Used in various locations and is computed in mss_eff_cnfg. Can be overwritten by ODM vendors if done from the PNOR or odm_eff_cnfg.
-+#values are 0,1,2, 4 up to 32
-+#creator: mss_eff_cnfg
-+#consumer: various
-+#firmware notes: none</description>
-+#    <valueType>uint8</valueType>
-+#    <writeable/>
-+#    <odmVisable/>
-+#    <odmChangeable/>
-+#    <array> 2 2</array>
-+#    <persistRuntime/>
-+#</attribute>
-+#
-+#<attribute>
-+#    <id>ATTR_EFF_DRAM_BANKS</id>
-+#    <targetType>TARGET_TYPE_MBA_CHIPLET</targetType>
-+#    <description>Number of DRAM banks.  Used in various locations and is computed in mss_eff_cnfg. Can be overwritten by ODM vendors if done from the PNOR or odm_eff_cnfg.  Each memory channel will have a value.
-+#creator: mss_eff_cnfg
-+#consumer: various
-+#firmware notes: none</description>
-+#    <valueType>uint8</valueType>
-+#    <writeable/>
-+#    <odmVisable/>
-+#    <odmChangeable/>
-+#</attribute>
-+#
-+#<attribute>
-+#    <id>ATTR_EFF_DRAM_ROWS</id>
-+#    <targetType>TARGET_TYPE_MBA_CHIPLET</targetType>
-+#    <description>Number of DRAM rows.  Used in various locations and is computed in mss_eff_cnfg. Can be overwritten by ODM vendors if done from the PNOR or odm_eff_cnfg.  Each memory channel will have a value.
-+#creator: mss_eff_cnfg
-+#consumer: various
-+#firmware notes: none</description>
-+#    <valueType>uint8</valueType>
-+#    <writeable/>
-+#    <odmVisable/>
-+#    <odmChangeable/>
-+#</attribute>
-+#
-+#<attribute>
-+#    <id>ATTR_EFF_DRAM_COLS</id>
-+#    <targetType>TARGET_TYPE_MBA_CHIPLET</targetType>
-+#    <description>Number of DRAM columns.  Used in various locations and is computed in mss_eff_cnfg. Can be overwritten by ODM vendors if done from the PNOR or odm_eff_cnfg.  Each memory channel will have a value.
-+#creator: mss_eff_cnfg
-+#consumer: various
-+#firmware notes: none</description>
-+#    <valueType>uint8</valueType>
-+#    <writeable/>
-+#    <odmVisable/>
-+#    <odmChangeable/>
-+#</attribute
- 
- 
- # mba tmr0 register timings are added to the value below
- define def_margin1      = (1);
- define def_margin2      = (0);
--define def_margin_pup_fast   = (0);
-+define def_margin_pup_fast   = (7);
- define def_margin_pup_slow   = (0);
- define def_margin_rdtag = (4);
- 
-@@ -263,22 +344,6 @@ define def_C3c_C4C_ddr4                       = ((def_2b_1socket_ddr4)||(def_2b_
- define def_C4A_ddr4                           = ((def_2a_1socket_ddr4)||(def_2a_2socket_ddr4)||(def_3a_ddr4_cdimm  )||(def_7a_1socket_ddr4)||(def_7a_2socket_ddr4)||(def_3a_1socket_ddr4)||(def_3a_2socket_ddr4)||(def_4a_ddr4_cdimm));
- define def_IS5D                               = ((def_5d_1socket     )||(def_5d_2socket));
- 
--# ODT Mappings
--define  def_odt_mapping_1a           = (def_1a_1socket);
--define  def_odt_mapping_1b1dimm      = (def_1b_1socket      ||def_3a_1socket      ||def_3a_1socket_ddr4 ||def_3b_1socket      ||def_3c_1socket_ddr4);
--define  def_odt_mapping_1b2dimm      = (def_3c_2socket_ddr4   ||def_1b_2socket        ||def_3a_2socket        ||def_3a_2socket_ddr4   ||def_3b_2socket);
--#define  def_odt_mapping_1bcdimm      = (def_1a_2socket        ||def_1b_cdimm        ||def_3a_cdimm        ||def_3a_ddr4_cdimm   ||def_3b_cdimm        ||def_3b_ddr4_cdimm   ||def_3c_cdimm        ||def_3c_ddr4_cdimm);
--define  def_odt_mapping_1bcdimm      = (def_1a_2socket        ||def_3a_cdimm        ||def_3a_ddr4_cdimm   ||def_3b_cdimm        ||def_3b_ddr4_cdimm   ||def_3c_cdimm        ||def_3c_ddr4_cdimm);
--define  def_odt_mapping_1c2dimm      = (def_1c_2socket_odt);
--define  def_odt_mapping_1c1dimm      = (def_1c_1socket_odt);
--define  def_odt_mapping_1ccdimm      = (def_1c_cdimm        ||def_4a_cdimm        ||def_4a_ddr4_cdimm   ||def_4b_ddr4_cdimm   ||def_4c_ddr4_cdimm);
--define  def_odt_mapping_1dx82dimm    = (def_1d_2socket);
--define  def_odt_mapping_1dx4         = (def_1d_1socket);
--define  def_odt_mapping_2abc         = (def_2a_1socket      ||def_2a_2socket        ||def_2a_1socket_ddr4 ||def_2a_2socket_ddr4   ||def_2a_cdimm        ||def_2a_ddr4_cdimm   ||def_2b_1socket      ||def_2b_2socket        ||def_2b_1socket_ddr4 ||def_2b_2socket_ddr4   ||def_2b_cdimm        ||def_2b_ddr4_cdimm   ||def_2c_1socket      ||def_2c_2socket        ||def_2c_1socket_ddr4 ||def_2c_2socket_ddr4   ||def_2c_ddr4_cdimm);
--define  def_odt_mapping_56781lrdm    = (def_5b_1socket      ||def_5c_1socket      ||def_7a_1socket      ||def_7a_1socket_ddr4 ||def_7b_1socket      ||def_7b_1socket_ddr4 ||def_7c_1socket      ||def_7c_1socket_ddr4);
--define  def_odt_mapping_56782lrdm    = (def_5b_2socket        ||def_5c_2socket        ||def_7a_2socket        ||def_7a_2socket_ddr4   ||def_7b_2socket        ||def_7b_2socket_ddr4   ||def_7c_2socket        ||def_7c_2socket_ddr4);
--define  def_odt_mapping_5d1dimm      = (def_5d_1socket);
--define  def_odt_mapping_5d2dimm      = (def_5d_2socket);
- 
- 
- #gdial std_size           (            MBA_SRQ.mba_tmr1q_cfg_tfaw, MBA_SRQ.pc.MBAREF0Q_cfg_trfc,  MBA_SRQ.pc.MBAREF0Q_cfg_refr_tsv_stack, MBA_SRQ.pc.MBARPC0Q_cfg_pup_pdn, MBA_SRQ.pc.MBARPC0Q_cfg_pdn_pup, MBA_SRQ.pc.MBARPC0Q_cfg_pup_avail, MBA_SRQ.mba_tmr0q_RRSMSR_dly  , MBA_SRQ.mba_tmr0q_RRSMDR_dly, MBA_SRQ.mba_tmr0q_WWSMSR_dly, MBA_SRQ.mba_tmr0q_WWSMDR_dly  , MBA_SRQ.MBA_TMR0Q_Trrd,   MBA_SRQ.srqdbg.cfg_std_size_id)=
-@@ -1944,31 +2009,29 @@ scom 0x03010432    {
- #
- scom 0x03010434    {
-     bits    ,   scom_data   ,       ATTR_FUNCTIONAL,   expr;
--    2       ,   0b0       ,           1            ,   (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 0); # cfg_min_max_domains       36
--    2       ,   0b1       ,           1            ,   (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED != 0); # cfg_min_max_domains       36
--#    3:5     ,   0b001       ,           1            ,   any; # cfg_min_max_domains       36
--    6:10    ,   0b00100  + def_margin_pup_slow   ,           1            ,   (def_MBARPC0Q_cfg_pup_avail_dly4  == 1) && (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 1) && ((CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE == 1) || (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE == 3)); # MBARPC0Q_cfg_pup_avail   - performance enhancemnt
--    6:10    ,   0b00011  + def_margin_pup_fast   ,           1            ,   (def_MBARPC0Q_cfg_pup_avail_dly4  == 1) && (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && ((CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE == 2) || (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE == 3)); # MBARPC0Q_cfg_pup_avail   - performance enhancemnt
--    6:10    ,   0b00101  + def_margin_pup_slow   ,           1            ,   (def_MBARPC0Q_cfg_pup_avail_dly5  == 1) && (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 1) && ((CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE == 1) || (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE == 3)); # MBARPC0Q_cfg_pup_avail     36
--    6:10    ,   0b00100  + def_margin_pup_fast   ,           1            ,   (def_MBARPC0Q_cfg_pup_avail_dly5  == 1) && (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && ((CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE == 2) || (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE == 3)); # MBARPC0Q_cfg_pup_avail     36
--    6:10    ,   0b00110  + def_margin_pup_slow   ,           1            ,   (def_MBARPC0Q_cfg_pup_avail_dly6  == 1) && (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 1) && ((CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE == 1) || (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE == 3)); # MBARPC0Q_cfg_pup_avail     36
--    6:10    ,   0b00101  + def_margin_pup_fast   ,           1            ,   (def_MBARPC0Q_cfg_pup_avail_dly6  == 1) && (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && ((CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE == 2) || (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE == 3)); # MBARPC0Q_cfg_pup_avail     36
--    6:10    ,   0b00111  + def_margin_pup_slow   ,           1            ,   (def_MBARPC0Q_cfg_pup_avail_dly7  == 1) && (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 1) && ((CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE == 1) || (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE == 3)); # MBARPC0Q_cfg_pup_avail     36
--    6:10    ,   0b00110  + def_margin_pup_fast   ,           1            ,   (def_MBARPC0Q_cfg_pup_avail_dly7  == 1) && (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && ((CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE == 2) || (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE == 3)); # MBARPC0Q_cfg_pup_avail     36
--    6:10    ,   0b01000  + def_margin_pup_slow   ,           1            ,   (def_MBARPC0Q_cfg_pup_avail_dly8  == 1) && (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 1) && ((CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE == 1) || (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE == 3)); # MBARPC0Q_cfg_pup_avail     36
--    6:10    ,   0b00111  + def_margin_pup_fast   ,           1            ,   (def_MBARPC0Q_cfg_pup_avail_dly8  == 1) && (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && ((CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE == 2) || (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE == 3)); # MBARPC0Q_cfg_pup_avail     36
--    6:10    ,   0b01101  + def_margin_pup_slow   ,           1            ,   (def_MBARPC0Q_cfg_pup_avail_dly13 == 1) && (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 1) && ((CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE == 1) || (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE == 3)); # MBARPC0Q_cfg_pup_avail     36
--    6:10    ,   0b01100  + def_margin_pup_fast   ,           1            ,   (def_MBARPC0Q_cfg_pup_avail_dly13 == 1) && (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && ((CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE == 2) || (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE == 3)); # MBARPC0Q_cfg_pup_avail     36
--    6:10    ,   0b10000  + def_margin_pup_slow   ,           1            ,   (def_MBARPC0Q_cfg_pup_avail_dly16 == 1) && (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 1) && ((CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE == 1) || (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE == 3)); # MBARPC0Q_cfg_pup_avail     36
--    6:10    ,   0b01111  + def_margin_pup_fast   ,           1            ,   (def_MBARPC0Q_cfg_pup_avail_dly16 == 1) && (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && ((CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE == 2) || (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE == 3)); # MBARPC0Q_cfg_pup_avail     36
--    6:10    ,   0b10100  + def_margin_pup_slow   ,           1            ,   (def_MBARPC0Q_cfg_pup_avail_dly20 == 1) && (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 1) && ((CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE == 1) || (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE == 3)); # MBARPC0Q_cfg_pup_avail     36
--    6:10    ,   0b10011  + def_margin_pup_fast   ,           1            ,   (def_MBARPC0Q_cfg_pup_avail_dly20 == 1) && (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && ((CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE == 2) || (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE == 3)); # MBARPC0Q_cfg_pup_avail     36
--    6:10    ,   0b10111  + def_margin_pup_slow   ,           1            ,   (def_MBARPC0Q_cfg_pup_avail_dly23 == 1) && (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 1) && ((CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE == 1) || (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE == 3)); # MBARPC0Q_cfg_pup_avail     36
--    6:10    ,   0b10110  + def_margin_pup_fast   ,           1            ,   (def_MBARPC0Q_cfg_pup_avail_dly23 == 1) && (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && ((CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE == 2) || (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE == 3)); # MBARPC0Q_cfg_pup_avail     36
--    6:10    ,   0b11010  + def_margin_pup_slow   ,           1            ,   (def_MBARPC0Q_cfg_pup_avail_dly26 == 1) && (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 1) && ((CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE == 1) || (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE == 3)); # MBARPC0Q_cfg_pup_avail     36
--    6:10    ,   0b11001  + def_margin_pup_fast   ,           1            ,   (def_MBARPC0Q_cfg_pup_avail_dly26 == 1) && (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && ((CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE == 2) || (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE == 3)); # MBARPC0Q_cfg_pup_avail     36
--    6:10    ,   0b11101  + def_margin_pup_slow   ,           1            ,   (def_MBARPC0Q_cfg_pup_avail_dly29 == 1) && (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 1) && ((CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE == 1) || (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE == 3)); # MBARPC0Q_cfg_pup_avail     36
--    6:10    ,   0b11100  + def_margin_pup_fast   ,           1            ,   (def_MBARPC0Q_cfg_pup_avail_dly29 == 1) && (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && ((CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE == 2) || (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE == 3)); # MBARPC0Q_cfg_pup_avail     36
-+#    3:5     ,   0b010       ,           1            ,   any; # cfg_min_max_domains       36
-+    6:10    ,   0b00100  + def_margin_pup_slow   ,           1            ,   (def_MBARPC0Q_cfg_pup_avail_dly4  == 1) && (ATTR_EFF_DRAM_DLL_PPD == 0); # MBARPC0Q_cfg_pup_avail   - performance enhancemnt
-+    6:10    ,   0b00100  + def_margin_pup_fast   ,           1            ,   (def_MBARPC0Q_cfg_pup_avail_dly4  == 1) && (ATTR_EFF_DRAM_DLL_PPD == 1); # MBARPC0Q_cfg_pup_avail   - performance enhancemnt
-+    6:10    ,   0b00101  + def_margin_pup_slow   ,           1            ,   (def_MBARPC0Q_cfg_pup_avail_dly5  == 1) && (ATTR_EFF_DRAM_DLL_PPD == 0); # MBARPC0Q_cfg_pup_avail     36
-+    6:10    ,   0b00101  + def_margin_pup_fast   ,           1            ,   (def_MBARPC0Q_cfg_pup_avail_dly5  == 1) && (ATTR_EFF_DRAM_DLL_PPD == 1); # MBARPC0Q_cfg_pup_avail     36
-+    6:10    ,   0b00110  + def_margin_pup_slow   ,           1            ,   (def_MBARPC0Q_cfg_pup_avail_dly6  == 1) && (ATTR_EFF_DRAM_DLL_PPD == 0); # MBARPC0Q_cfg_pup_avail     36
-+    6:10    ,   0b00110  + def_margin_pup_fast   ,           1            ,   (def_MBARPC0Q_cfg_pup_avail_dly6  == 1) && (ATTR_EFF_DRAM_DLL_PPD == 1); # MBARPC0Q_cfg_pup_avail     36
-+    6:10    ,   0b00111  + def_margin_pup_slow   ,           1            ,   (def_MBARPC0Q_cfg_pup_avail_dly7  == 1) && (ATTR_EFF_DRAM_DLL_PPD == 0); # MBARPC0Q_cfg_pup_avail     36
-+    6:10    ,   0b00111  + def_margin_pup_fast   ,           1            ,   (def_MBARPC0Q_cfg_pup_avail_dly7  == 1) && (ATTR_EFF_DRAM_DLL_PPD == 1); # MBARPC0Q_cfg_pup_avail     36
-+    6:10    ,   0b01000  + def_margin_pup_slow   ,           1            ,   (def_MBARPC0Q_cfg_pup_avail_dly8  == 1) && (ATTR_EFF_DRAM_DLL_PPD == 0); # MBARPC0Q_cfg_pup_avail     36
-+    6:10    ,   0b01000  + def_margin_pup_fast   ,           1            ,   (def_MBARPC0Q_cfg_pup_avail_dly8  == 1) && (ATTR_EFF_DRAM_DLL_PPD == 1); # MBARPC0Q_cfg_pup_avail     36
-+    6:10    ,   0b01101  + def_margin_pup_slow   ,           1            ,   (def_MBARPC0Q_cfg_pup_avail_dly13 == 1) && (ATTR_EFF_DRAM_DLL_PPD == 0); # MBARPC0Q_cfg_pup_avail     36
-+    6:10    ,   0b01101  + def_margin_pup_fast   ,           1            ,   (def_MBARPC0Q_cfg_pup_avail_dly13 == 1) && (ATTR_EFF_DRAM_DLL_PPD == 1); # MBARPC0Q_cfg_pup_avail     36
-+    6:10    ,   0b10000  + def_margin_pup_slow   ,           1            ,   (def_MBARPC0Q_cfg_pup_avail_dly16 == 1) && (ATTR_EFF_DRAM_DLL_PPD == 0); # MBARPC0Q_cfg_pup_avail     36
-+    6:10    ,   0b10000  + def_margin_pup_fast   ,           1            ,   (def_MBARPC0Q_cfg_pup_avail_dly16 == 1) && (ATTR_EFF_DRAM_DLL_PPD == 1); # MBARPC0Q_cfg_pup_avail     36
-+    6:10    ,   0b10100  + def_margin_pup_slow   ,           1            ,   (def_MBARPC0Q_cfg_pup_avail_dly20 == 1) && (ATTR_EFF_DRAM_DLL_PPD == 0); # MBARPC0Q_cfg_pup_avail     36
-+    6:10    ,   0b10100  + def_margin_pup_fast   ,           1            ,   (def_MBARPC0Q_cfg_pup_avail_dly20 == 1) && (ATTR_EFF_DRAM_DLL_PPD == 1); # MBARPC0Q_cfg_pup_avail     36
-+    6:10    ,   0b10111  + def_margin_pup_slow   ,           1            ,   (def_MBARPC0Q_cfg_pup_avail_dly23 == 1) && (ATTR_EFF_DRAM_DLL_PPD == 0); # MBARPC0Q_cfg_pup_avail     36
-+    6:10    ,   0b10111  + def_margin_pup_fast   ,           1            ,   (def_MBARPC0Q_cfg_pup_avail_dly23 == 1) && (ATTR_EFF_DRAM_DLL_PPD == 1); # MBARPC0Q_cfg_pup_avail     36
-+    6:10    ,   0b11010  + def_margin_pup_slow   ,           1            ,   (def_MBARPC0Q_cfg_pup_avail_dly26 == 1) && (ATTR_EFF_DRAM_DLL_PPD == 0); # MBARPC0Q_cfg_pup_avail     36
-+    6:10    ,   0b11010  + def_margin_pup_fast   ,           1            ,   (def_MBARPC0Q_cfg_pup_avail_dly26 == 1) && (ATTR_EFF_DRAM_DLL_PPD == 1); # MBARPC0Q_cfg_pup_avail     36
-+    6:10    ,   0b11101  + def_margin_pup_slow   ,           1            ,   (def_MBARPC0Q_cfg_pup_avail_dly29 == 1) && (ATTR_EFF_DRAM_DLL_PPD == 0); # MBARPC0Q_cfg_pup_avail     36
-+    6:10    ,   0b11101  + def_margin_pup_fast   ,           1            ,   (def_MBARPC0Q_cfg_pup_avail_dly29 == 1) && (ATTR_EFF_DRAM_DLL_PPD == 1); # MBARPC0Q_cfg_pup_avail     36
-     11:15   ,   0b00011     ,           1            ,   (def_MBARPC0Q_cfg_pdn_pup_dly3 == 1); # MBARPC0Q_cfg_pup_pup       37
-     11:15   ,   0b00100     ,           1            ,   (def_MBARPC0Q_cfg_pdn_pup_dly4 == 1); # MBARPC0Q_cfg_pup_pup       37
-     11:15   ,   0b00101     ,           1            ,   (def_MBARPC0Q_cfg_pdn_pup_dly5 == 1); # MBARPC0Q_cfg_pup_pup       37
-@@ -1977,286 +2040,20 @@ scom 0x03010434    {
-     16:20   ,   0b00100     ,           1            ,   (def_MBARPC0Q_cfg_pup_pdn_dly4 == 1); # MBARPC0Q_cfg_pup_pdn       38
-     16:20   ,   0b00101     ,           1            ,   (def_MBARPC0Q_cfg_pup_pdn_dly5 == 1); # MBARPC0Q_cfg_pup_pdn       38
-     16:20   ,   0b00110     ,           1            ,   (def_MBARPC0Q_cfg_pup_pdn_dly6 == 1); # MBARPC0Q_cfg_pup_pdn       38
--    22      ,   0b0         ,           1            ,   (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 0);
--    22      ,   0b1         ,           1            ,   (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED != 0);
-+    22      ,   0b0         ,           1            ,   any; # cfg_min_domain_reduction_enable set to 1 to enable power controls
-     23:32   ,   0b0000000011,           1            ,   any; # Set min doman reduction time to 30.7 us (10.245us * 3)
-     42      ,   0b1         ,           1            ,   any; # Force SpareCKE sync
--    43      ,   0b1         ,           1            ,   any; # Use 1 in 8k 2:1 cycle pulses for min domain reduction time interval
-+    43      ,   0b0         ,           1            ,   any; # Use 1 in 8k 2:1 cycle pulses for min domain reduction time interval
- }
- 
--# had to shifts the data to be able to get it into the proper positions
--define shift_pwr_map1 = (ATTR_VPD_CKE_PWR_MAP >> 60);
--define shift_pwr_map2 = (ATTR_VPD_CKE_PWR_MAP >> 56);
--define shift_pwr_map3 = (ATTR_VPD_CKE_PWR_MAP >> 52);
--define shift_pwr_map4 = (ATTR_VPD_CKE_PWR_MAP >> 48);
--define shift_pwr_map5 = (ATTR_VPD_CKE_PWR_MAP >> 44);
--define shift_pwr_map6 = (ATTR_VPD_CKE_PWR_MAP >> 40);
--define shift_pwr_map7 = (ATTR_VPD_CKE_PWR_MAP >> 36);
--define shift_pwr_map8 = (ATTR_VPD_CKE_PWR_MAP >> 32);
--define shift_pwr_map9 = (ATTR_VPD_CKE_PWR_MAP >> 28);
--define shift_pwr_map10 = (ATTR_VPD_CKE_PWR_MAP >> 24);
--define shift_pwr_map11 = (ATTR_VPD_CKE_PWR_MAP >> 20);
--define shift_pwr_map12 = (ATTR_VPD_CKE_PWR_MAP >> 16);
--define shift_pwr_map13 = (ATTR_VPD_CKE_PWR_MAP >> 12);
--define shift_pwr_map14 = (ATTR_VPD_CKE_PWR_MAP >> 8);
--define shift_pwr_map15 = (ATTR_VPD_CKE_PWR_MAP >> 4);
--
- # MBAPC1Q    power control settings reg 1
- #
- scom 0x03010435    {
-     bits    ,   scom_data   ,       ATTR_FUNCTIONAL,   expr;
--    0:3    ,   shift_pwr_map1 ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 1) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 2); # slow exit pdown
--    0:3     ,   0x8         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1a        == 1); # cfg_mrnk0_rd_cke    36
--    0:3     ,   0xC         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1b1dimm   == 1);
--    0:3     ,   0xD         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1b2dimm   == 1);
--    0:3     ,   0x8         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1bcdimm   == 1);
--    0:3     ,   0x9         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1c2dimm   == 1);
--    0:3     ,   0xC         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1c1dimm   == 1);
--    0:3     ,   0xC         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1ccdimm   == 1);
--    0:3     ,   0xF         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1dx82dimm == 1);
--    0:3     ,   0xC         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1dx4      == 1);
--    0:3     ,   0x8         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_2abc      == 1);
--    0:3     ,   0x8         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_56781lrdm == 1);
--    0:3     ,   0x8         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_56782lrdm == 1);
--    0:3     ,   0xC         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_5d1dimm   == 1);
--    0:3     ,   0x0         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_5d2dimm   == 1); # cfg_mrnk0_rd_cke    36
--    4:7    ,   shift_pwr_map2 ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 1) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 2); # slow exit pdown
--    4:7     ,   0x0         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1a        == 1); # cfg_mrnk1_rd_cke    36
--    4:7     ,   0xC         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1b1dimm   == 1);
--    4:7     ,   0xE         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1b2dimm   == 1);
--    4:7     ,   0x4         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1bcdimm   == 1);
--    4:7     ,   0x5         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1c2dimm   == 1);
--    4:7     ,   0xC         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1c1dimm   == 1);
--    4:7     ,   0xC         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1ccdimm   == 1);
--    4:7     ,   0x7         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1dx82dimm == 1);
--    4:7     ,   0xC         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1dx4      == 1);
--    4:7     ,   0x0         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_2abc      == 1);
--    4:7     ,   0x4         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_56781lrdm == 1);
--    4:7     ,   0x4         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_56782lrdm == 1);
--    4:7     ,   0xC         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_5d1dimm   == 1);
--    4:7     ,   0xF         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_5d2dimm   == 1);
--    8:11   ,   shift_pwr_map3 ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 1) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 2); # slow exit pdown
--   8:11    ,   0x0         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1a        == 1); # cfg_mrnk2_rd_cke    36
--   8:11    ,   0x0         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1b1dimm   == 1);
--   8:11    ,   0x0         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1b2dimm   == 1);
--   8:11    ,   0x0         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1bcdimm   == 1);
--   8:11    ,   0x9         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1c2dimm   == 1);
--   8:11    ,   0xC         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1c1dimm   == 1);
--   8:11    ,   0x0         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1ccdimm   == 1);
--   8:11    ,   0xF         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1dx82dimm == 1);
--   8:11    ,   0xC         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1dx4      == 1);
--   8:11    ,   0x0         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_2abc      == 1);
--   8:11    ,   0x8         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_56781lrdm == 1);
--   8:11    ,   0x8         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_56782lrdm == 1);
--   8:11    ,   0x0         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_5d1dimm   == 1);
--   8:11    ,   0x0         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_5d2dimm   == 1);
--   12:15   ,   shift_pwr_map4 ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 1) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 2); # slow exit pdown
--   12:15   ,   0x0         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1a        == 1); # cfg_mrnk3_rd_cke    36
--   12:15   ,   0x0         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1b1dimm   == 1);
--   12:15   ,   0x0         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1b2dimm   == 1);
--   12:15   ,   0x0         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1bcdimm   == 1);
--   12:15   ,   0x5         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1c2dimm   == 1);
--   12:15   ,   0xC         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1c1dimm   == 1);
--   12:15   ,   0x0         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1ccdimm   == 1);
--   12:15   ,   0x7         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1dx82dimm == 1);
--   12:15   ,   0xC         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1dx4      == 1);
--   12:15   ,   0x0         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_2abc      == 1);
--   12:15   ,   0x4         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_56781lrdm == 1);
--   12:15   ,   0x4         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_56782lrdm == 1);
--   12:15   ,   0x0         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_5d1dimm   == 1);
--   12:15   ,   0x0         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_5d2dimm   == 1);
--   16:19   ,   shift_pwr_map5 ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 1) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 2); # slow exit pdown
--   16:19   ,   0x2         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1a        == 1); # cfg_mrnk4_rd_cke    36
--   16:19   ,   0x0         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1b1dimm   == 1);
--   16:19   ,   0x7         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1b2dimm   == 1);
--   16:19   ,   0x2         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1bcdimm   == 1);
--   16:19   ,   0xA         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1c2dimm   == 1);
--   16:19   ,   0x0         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1c1dimm   == 1);
--   16:19   ,   0x3         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1ccdimm   == 1);
--   16:19   ,   0xF         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1dx82dimm == 1);
--   16:19   ,   0x2         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1dx4      == 1);
--   16:19   ,   0x2         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_2abc      == 1);
--   16:19   ,   0x2         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_2abc      == 1);
--   16:19   ,   0x0         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_56781lrdm == 1);
--   16:19   ,   0x2         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_56782lrdm == 1);
--   16:19   ,   0x0         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_5d1dimm   == 1);
--   16:19   ,   0xF         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_5d2dimm   == 1);
--   20:23   ,   shift_pwr_map6 ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 1) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 2); # slow exit pdown
--   20:23   ,   0x0         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1a        == 1); # cfg_mrnk5_rd_cke    36
--   20:23   ,   0x0         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1b1dimm   == 1);
--   20:23   ,   0xB         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1b2dimm   == 1);
--   20:23   ,   0x1         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1bcdimm   == 1);
--   20:23   ,   0x9         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1c2dimm   == 1);
--   20:23   ,   0x0         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1c1dimm   == 1);
--   20:23   ,   0x3         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1ccdimm   == 1);
--   20:23   ,   0xD         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1dx82dimm == 1);
--   20:23   ,   0x1         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1dx4      == 1);
--   20:23   ,   0x0         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_2abc      == 1);
--   20:23   ,   0x0         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_56781lrdm == 1);
--   20:23   ,   0x1         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_56782lrdm == 1);
--   20:23   ,   0x0         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_5d1dimm   == 1);
--   20:23   ,   0xF         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_5d2dimm   == 1);
--}
--
--
--scom 0x03010435    {
--    bits    ,   scom_data   ,       ATTR_FUNCTIONAL,   expr;
--   24:27   ,   shift_pwr_map7 ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 1) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 2); # slow exit pdown
--   24:27   ,   0x0         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1a        == 1); # cfg_mrnk6_rd_cke    37
--   24:27   ,   0x0         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1b1dimm   == 1);
--   24:27   ,   0x0         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1b2dimm   == 1);
--   24:27   ,   0x0         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1bcdimm   == 1);
--   24:27   ,   0xA         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1c2dimm   == 1);
--   24:27   ,   0x0         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1c1dimm   == 1);
--   24:27   ,   0x0         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1ccdimm   == 1);
--   24:27   ,   0xF         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1dx82dimm == 1);
--   24:27   ,   0x2         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1dx4      == 1);
--   24:27   ,   0x0         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_2abc      == 1);
--   24:27   ,   0x0         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_56781lrdm == 1);
--   24:27   ,   0x2         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_56782lrdm == 1);
--   24:27   ,   0x0         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_5d1dimm   == 1);
--   24:27   ,   0x0         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_5d2dimm   == 1);
--   28:31   ,   shift_pwr_map8 ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 1) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 2); # slow exit pdown
--   28:31   ,   0x0         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1a        == 1); # cfg_mrnk7_rd_cke    37
--   28:31   ,   0x0         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1b1dimm   == 1);
--   28:31   ,   0x0         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1b2dimm   == 1);
--   28:31   ,   0x0         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1bcdimm   == 1);
--   28:31   ,   0x9         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1c2dimm   == 1);
--   28:31   ,   0x0         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1c1dimm   == 1);
--   28:31   ,   0x0         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1ccdimm   == 1);
--   28:31   ,   0xD         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1dx82dimm == 1);
--   28:31   ,   0x1         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1dx4      == 1);
--   28:31   ,   0x0         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_2abc      == 1);
--   28:31   ,   0x0         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_56781lrdm == 1);
--   28:31   ,   0x1         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_56782lrdm == 1);
--   28:31   ,   0x0         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_5d1dimm   == 1);
--   28:31   ,   0x0         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_5d2dimm   == 1);
--   32:35   ,   shift_pwr_map9 ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 1) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 2); # slow exit pdown
--   32:35   ,   0x8         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1a        == 1); # cfg_mrnk0_wr_cke    38
--   32:35   ,   0x8         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1b1dimm   == 1);
--   32:35   ,   0xD         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1b2dimm   == 1);
--   32:35   ,   0x8         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1bcdimm   == 1);
--   32:35   ,   0xA         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1c2dimm   == 1);
--   32:35   ,   0xC         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1c1dimm   == 1);
--   32:35   ,   0xC         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1ccdimm   == 1);
--   32:35   ,   0xF         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1dx82dimm == 1);
--   32:35   ,   0xC         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1dx4      == 1);
--   32:35   ,   0x8         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_2abc      == 1);
--   32:35   ,   0x8         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_56781lrdm == 1);
--   32:35   ,   0x8         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_56782lrdm == 1);
--   32:35   ,   0xC         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_5d1dimm   == 1);
--   36:39   ,   shift_pwr_map10,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 1) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 2); # slow exit pdown
--   32:35   ,   0xF         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_5d2dimm   == 1); # cfg_mrnk0_wr_cke    38
--   36:39   ,   0x0         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1a        == 1);
--   36:39   ,   0x4         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1b1dimm   == 1);
--   36:39   ,   0xE         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1b2dimm   == 1);
--   36:39   ,   0x4         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1bcdimm   == 1);
--   36:39   ,   0x6         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1c2dimm   == 1);
--   36:39   ,   0xC         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1c1dimm   == 1);
--   36:39   ,   0xC         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1ccdimm   == 1);
--   36:39   ,   0x7         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1dx82dimm == 1);
--   36:39   ,   0xC         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1dx4      == 1);
--   36:39   ,   0x0         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_2abc      == 1);
--   36:39   ,   0x4         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_56781lrdm == 1);
--   36:39   ,   0x4         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_56782lrdm == 1);
--   36:39   ,   0xC         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_5d1dimm   == 1);
--   36:39   ,   0xF         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_5d2dimm   == 1);
--   40:43   ,   shift_pwr_map11,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 1) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 2); # slow exit pdown
--   40:43   ,   0x0         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1a        == 1); # cfg_mrnk2_wr_cke    38
--   40:43   ,   0x0         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1b1dimm   == 1);
--   40:43   ,   0x0         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1b2dimm   == 1);
--   40:43   ,   0x0         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1bcdimm   == 1);
--   40:43   ,   0xA         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1c2dimm   == 1);
--   40:43   ,   0xC         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1c1dimm   == 1);
--   40:43   ,   0x0         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1ccdimm   == 1);
--   40:43   ,   0xF         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1dx82dimm == 1);
--   40:43   ,   0xC         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1dx4      == 1);
--   40:43   ,   0x0         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_2abc      == 1);
--   40:43   ,   0x8         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_56781lrdm == 1);
--   40:43   ,   0x8         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_56782lrdm == 1);
--   40:43   ,   0x0         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_5d1dimm   == 1);
--   40:43   ,   0x0         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_5d2dimm   == 1);
--   44:47   ,   shift_pwr_map12,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 1) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 2); # slow exit pdown
--   44:47   ,   0x0         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1a        == 1); # cfg_mrnk3_wr_cke    38
--   44:47   ,   0x0         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1b1dimm   == 1);
--   44:47   ,   0x0         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1b2dimm   == 1);
--   44:47   ,   0x0         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1bcdimm   == 1);
--   44:47   ,   0x6         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1c2dimm   == 1);
--   44:47   ,   0xC         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1c1dimm   == 1);
--   44:47   ,   0x0         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1ccdimm   == 1);
--   44:47   ,   0x7         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1dx82dimm == 1);
--   44:47   ,   0xC         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1dx4      == 1);
--   44:47   ,   0x0         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_2abc      == 1);
--   44:47   ,   0x4         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_56781lrdm == 1);
--   44:47   ,   0x4         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_56782lrdm == 1);
--   44:47   ,   0x0         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_5d1dimm   == 1);
--   44:47   ,   0x0         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_5d2dimm   == 1);
-+    0:63    ,   ATTR_VPD_CKE_PWR_MAP ,          1            ,    any; # data from VP now
- }
- 
- 
--scom 0x03010435    {
--    bits    ,   scom_data   ,       ATTR_FUNCTIONAL,   expr;
--   48:51   ,   shift_pwr_map13,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 1) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 2); # slow exit pdown
--   48:51   ,   0x2         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1a        == 1); # cfg_mrnk4_wr_cke    38
--   48:51   ,   0x0         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1b1dimm   == 1);
--   48:51   ,   0x7         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1b2dimm   == 1);
--   48:51   ,   0x2         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1bcdimm   == 1);
--   48:51   ,   0x6         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1c2dimm   == 1);
--   48:51   ,   0x0         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1c1dimm   == 1);
--   48:51   ,   0x3         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1ccdimm   == 1);
--   48:51   ,   0xF         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1dx82dimm == 1);
--   48:51   ,   0x2         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1dx4      == 1);
--   48:51   ,   0x2         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_2abc      == 1);
--   48:51   ,   0x0         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_56781lrdm == 1);
--   48:51   ,   0x2         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_56782lrdm == 1);
--   48:51   ,   0x0         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_5d1dimm   == 1);
--   48:51   ,   0xF         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_5d2dimm   == 1);
--   52:55   ,   shift_pwr_map14,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 1) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 2); # slow exit pdown
--   52:55   ,   0x0         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1a        == 1); # cfg_mrnk5_wr_cke    38
--   52:55   ,   0x0         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1b1dimm   == 1);
--   52:55   ,   0xB         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1b2dimm   == 1);
--   52:55   ,   0x1         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1bcdimm   == 1);
--   52:55   ,   0x5         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1c2dimm   == 1);
--   52:55   ,   0x0         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1c1dimm   == 1);
--   52:55   ,   0x3         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1ccdimm   == 1);
--   52:55   ,   0xD         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1dx82dimm == 1);
--   52:55   ,   0x1         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1dx4      == 1);
--   52:55   ,   0x0         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_2abc      == 1);
--   52:55   ,   0x0         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_56781lrdm == 1);
--   52:55   ,   0x1         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_56782lrdm == 1);
--   52:55   ,   0x0         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_5d1dimm   == 1);
--   52:55   ,   0xF         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_5d2dimm   == 1);
--   56:59   ,   shift_pwr_map15,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 1) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 2); # slow exit pdown
--   56:59   ,   0x0         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1a        == 1); # cfg_mrnk6_wr_cke    38
--   56:59   ,   0x0         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1b1dimm   == 1);
--   56:59   ,   0x0         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1b2dimm   == 1);
--   56:59   ,   0x0         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1bcdimm   == 1);
--   56:59   ,   0x6         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1c2dimm   == 1);
--   56:59   ,   0x0         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1c1dimm   == 1);
--   56:59   ,   0x0         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1ccdimm   == 1);
--   56:59   ,   0xF         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1dx82dimm == 1);
--   56:59   ,   0x2         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1dx4      == 1);
--   56:59   ,   0x0         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_2abc      == 1);
--   56:59   ,   0x0         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_56781lrdm == 1);
--   56:59   ,   0x2         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_56782lrdm == 1);
--   56:59   ,   0x0         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_5d1dimm   == 1);
--   56:59   ,   0x0         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_5d2dimm   == 1);
--   60:63   ,   ATTR_VPD_CKE_PWR_MAP,     1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 1) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 2); # slow exit pdown
--   60:63   ,   0x0         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1a        == 1); # cfg_mrnk7_wr_cke    38
--   60:63   ,   0x0         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1b1dimm   == 1);
--   60:63   ,   0x0         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1b2dimm   == 1);
--   60:63   ,   0x0         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1bcdimm   == 1);
--   60:63   ,   0x5         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1c2dimm   == 1);
--   60:63   ,   0x0         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1c1dimm   == 1);
--   60:63   ,   0x0         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1ccdimm   == 1);
--   60:63   ,   0xD         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1dx82dimm == 1);
--   60:63   ,   0x1         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_1dx4      == 1);
--   60:63   ,   0x0         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_2abc      == 1);
--   60:63   ,   0x0         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_56781lrdm == 1);
--   60:63   ,   0x1         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_56782lrdm == 1);
--   60:63   ,   0x0         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_5d1dimm   == 1);
--   60:63   ,   0x0         ,          1            ,    (SYS.ATTR_MRW_POWER_CONTROL_REQUESTED == 2) && (CENTAUR.ATTR_VPD_POWER_CONTROL_CAPABLE != 1) && (def_odt_mapping_5d2dimm   == 1);
--}
- 
- ###########################
- # MBA CKE mapping tables  #
--- 
-1.7.4.1
-
diff --git a/openpower/package/hostboot/hostboot-0004-targeting-support-for-backplane-VPD.patch b/openpower/package/hostboot/hostboot-0004-targeting-support-for-backplane-VPD.patch
new file mode 100644
index 0000000..edd4941
--- /dev/null
+++ b/openpower/package/hostboot/hostboot-0004-targeting-support-for-backplane-VPD.patch
@@ -0,0 +1,29 @@
+From bc07c585c41d4c6119d8608af27ab7ad1acdaab8 Mon Sep 17 00:00:00 2001
+From: Mike Baiocchi <baiocchi@us.ibm.com>
+Date: Wed, 22 Apr 2015 10:31:08 -0500
+Subject: [PATCH] Add targeting support for backplane VPD
+
+Only the targeting support required by "Updated VPD_REC_NUM numbering"
+
+Change-Id: I24cda4d713806330a9f61d588006d63966f92550
+RTC: 118373
+---
+ src/usr/targeting/common/xmltohb/target_types.xml | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/src/usr/targeting/common/xmltohb/target_types.xml b/src/usr/targeting/common/xmltohb/target_types.xml
+index 82ec014..759b73e 100644
+--- a/src/usr/targeting/common/xmltohb/target_types.xml
++++ b/src/usr/targeting/common/xmltohb/target_types.xml
+@@ -913,6 +913,8 @@
+     <attribute><id>FRU_ID</id></attribute>
+     <attribute><id>TPM_PRIMARY_INFO</id></attribute>
+     <attribute><id>TPM_BACKUP_INFO</id></attribute>
++    <attribute><id>EEPROM_VPD_PRIMARY_INFO</id></attribute>
++    <attribute><id>VPD_REC_NUM</id></attribute>
+ </targetType>
+ 
+ <targetType>
+-- 
+1.8.2.2
+
diff --git a/openpower/package/hostboot/hostboot-0005-Disable-SPD-writes-workaround-for-DRAM-repairs-error.patch b/openpower/package/hostboot/hostboot-0005-Disable-SPD-writes-workaround-for-DRAM-repairs-error.patch
deleted file mode 100644
index 43b5c43..0000000
--- a/openpower/package/hostboot/hostboot-0005-Disable-SPD-writes-workaround-for-DRAM-repairs-error.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From e02245750b63a6b892ee48f1422309c8dd4f0c4f Mon Sep 17 00:00:00 2001
-From: Corey Swenson <cswenson@us.ibm.com>
-Date: Fri, 27 Feb 2015 09:45:47 -0600
-Subject: [PATCH 2/4] Disable SPD writes - workaround for DRAM repairs error
-
-Change-Id: Ic5fac400abff8fef004268dfbdf33fa6ecdded1c
-(cherry picked from commit 1bc5bb42be8e81b525993e9b5dcf08fe684bade4)
----
- src/usr/vpd/spd.C |    1 +
- 1 files changed, 1 insertions(+), 0 deletions(-)
-
-diff --git a/src/usr/vpd/spd.C b/src/usr/vpd/spd.C
-index 54837a5..e101ff0 100644
---- a/src/usr/vpd/spd.C
-+++ b/src/usr/vpd/spd.C
-@@ -323,6 +323,7 @@ errlHndl_t spdWriteKeywordValue ( DeviceFW::OperationType i_opType,
-                                   va_list i_args )
- {
-     errlHndl_t err = NULL;
-+    return err;
-     VPD::vpdKeyword keyword = va_arg( i_args, uint64_t );
-     VPD::vpdCmdTarget location =
-             (VPD::vpdCmdTarget)va_arg( i_args, uint64_t );
--- 
-1.7.4.1
-
diff --git a/openpower/package/hostboot/hostboot-0006-sbe-pnor.patch b/openpower/package/hostboot/hostboot-0006-sbe-pnor.patch
deleted file mode 100644
index cbf25e1..0000000
--- a/openpower/package/hostboot/hostboot-0006-sbe-pnor.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From 961d01024912ce7b0547095d38921bdd61ae8cd8 Mon Sep 17 00:00:00 2001
-From: Brian Horton <brianh@linux.ibm.com>
-Date: Wed, 11 Mar 2015 10:14:31 -0500
-Subject: [PATCH] fix SBE/PNOR merge issues
-
-Change-Id: I74752dbfa50fc78be66a9f185a7c6bc4d31732cd
----
- src/usr/sbe/sbe_update.C |    4 ++--
- 1 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/src/usr/sbe/sbe_update.C b/src/usr/sbe/sbe_update.C
-index a559229..5ac4909 100644
---- a/src/usr/sbe/sbe_update.C
-+++ b/src/usr/sbe/sbe_update.C
-@@ -1791,8 +1791,8 @@ namespace SBE
-                                         reinterpret_cast<void*>(SBE_IMG_VADDR),
-                                         ((io_sbeState.seeprom_side_to_update ==
-                                          EEPROM::SBE_PRIMARY ) ?
--                                            PNOR::SBE_SEEPROM0 :
--                                            PNOR::SBE_SEEPROM1  ),
-+                                            SBE_SEEPROM0 :
-+                                            SBE_SEEPROM1  ),
-                                         PNOR::WORKING,
-                                         imageWasUpdated );
- 
--- 
-1.7.4.1
-
diff --git a/openpower/package/hostboot/hostboot-0007-mss-thermal-init-SW297647_and_undo.patch b/openpower/package/hostboot/hostboot-0007-mss-thermal-init-SW297647_and_undo.patch
deleted file mode 100644
index f6eafe5..0000000
--- a/openpower/package/hostboot/hostboot-0007-mss-thermal-init-SW297647_and_undo.patch
+++ /dev/null
@@ -1,95 +0,0 @@
-From 430bf7d7b8194bf7789db053999464390e143fdc Mon Sep 17 00:00:00 2001
-From: Brian Horton <brianh@linux.ibm.com>
-Date: Wed, 11 Mar 2015 16:13:11 -0500
-Subject: [PATCH] mss thermal patch from Mike Pradik
-
-AND undeo 1.18 attribute change
-
-Change-Id: I0c3e9d126077fb18bb771909631e0491da4b5f99
----
- .../mss_thermal_init/mss_thermal_init.C            |   26 ++++++++++++++++----
- 1 files changed, 21 insertions(+), 5 deletions(-)
-
-diff --git a/src/usr/hwpf/hwp/dram_initialization/mss_thermal_init/mss_thermal_init.C b/src/usr/hwpf/hwp/dram_initialization/mss_thermal_init/mss_thermal_init.C
-index e09f47f..dc21852 100644
---- a/src/usr/hwpf/hwp/dram_initialization/mss_thermal_init/mss_thermal_init.C
-+++ b/src/usr/hwpf/hwp/dram_initialization/mss_thermal_init/mss_thermal_init.C
-@@ -22,7 +22,7 @@
- /* permissions and limitations under the License.                         */
- /*                                                                        */
- /* IBM_PROLOG_END_TAG                                                     */
--// $Id: mss_thermal_init.C,v 1.19 2015/02/12 23:23:56 pardeik Exp $
-+// $Id: mss_thermal_init.C,v 1.18c CHANGED IN OPENPOWER PATCH brianh   Exp $
- // $Source: /afs/awd/projects/eclipz/KnowledgeBase/.cvsroot/eclipz/chips/centaur/working/procedures/ipl/fapi/mss_thermal_init.C,v $
- //------------------------------------------------------------------------------
- // *! (C) Copyright International Business Machines Corp. 2011
-@@ -49,6 +49,8 @@
- //------------------------------------------------------------------------------
- // Version:|  Author: |  Date:  | Comment:
- //---------|----------|---------|-----------------------------------------------
-+//   1.18v | brianhk  |11-MAR-15| undo 1.18 change
-+//   1.18u | pardeik  |03-MAR-15| user version to be like v1.20
- //   1.18  | pardeik  |12-FEB-15| change ATTR_MRW_MEM_SENSOR_CACHE_ADDR_MAP to
- //                              | a centaur target (was system)
- //   1.17  | pardeik  |19-NOV-14| Use MRW attribute for SC address map for ISDIMMs
-@@ -160,6 +162,7 @@ fapi::ReturnCode mss_thermal_init(const fapi::Target & i_target)
-       const uint8_t I2C_BUS_ENCODE_PRIMARY = 0;
-       const uint8_t I2C_BUS_ENCODE_SECONDARY = 8;
-       const uint8_t MAX_NUM_DIMM_SENSORS = 8;
-+      const uint8_t MAX_I2C_BUSSES = 2;
- 
-       // Variable declaration
-       uint8_t l_dimm_ranks_array[l_NUM_MBAS][l_NUM_PORTS][l_NUM_DIMMS];	// Number of ranks for each configured DIMM in each MBA
-@@ -249,6 +252,19 @@ fapi::ReturnCode mss_thermal_init(const fapi::Target & i_target)
-           l_custom_dimm[i] = fapi::ENUM_ATTR_EFF_CUSTOM_DIMM_NO;
-       }
- 
-+      // zero out the l_dimm_ranks_array so it is initialized for later use if there is a deconfigured MBA
-+      for (uint8_t i = 0; i < l_NUM_MBAS; i++)
-+      {
-+	  for (uint8_t j = 0; j < l_NUM_PORTS; j++)
-+	  {
-+	      for (uint8_t k = 0; k < l_NUM_DIMMS; k++)
-+	      {
-+		  l_dimm_ranks_array[i][j][k]=0;
-+	      }
-+	  }
-+
-+      }
-+
-       for (uint8_t mba_index = 0; mba_index < l_target_mba_array.size(); mba_index++){
-          l_rc = FAPI_ATTR_GET(ATTR_CHIP_UNIT_POS, &l_target_mba_array[mba_index], l_mba_pos);
- 	 if (l_rc) return l_rc;
-@@ -279,7 +295,7 @@ fapi::ReturnCode mss_thermal_init(const fapi::Target & i_target)
-       else
-       {
- 	  // sensor cache address map for non custom dimm temperature sensors (which i2c bus and i2c address they are)
--	  l_rc = FAPI_ATTR_GET(ATTR_MRW_MEM_SENSOR_CACHE_ADDR_MAP, &i_target, l_dimm_sensor_cache_addr_map);
-+	  l_rc = FAPI_ATTR_GET(ATTR_MRW_MEM_SENSOR_CACHE_ADDR_MAP, NULL, l_dimm_sensor_cache_addr_map);
- 	  if (l_rc) return l_rc;
-       }
- 
-@@ -399,9 +415,9 @@ fapi::ReturnCode mss_thermal_init(const fapi::Target & i_target)
- 
- 	  l_cdimm_number_dimm_temp_sensors = 0;
- 	  // cycle through both primary and secondary i2c busses, determine i2c address and enable bits
--	  for (uint8_t k = 0; k < 2; k++)
-+	  for (uint8_t k = 0; k < MAX_I2C_BUSSES; k++)
- 	  {
--	      for (uint8_t i = 0; i < 8; i++)
-+	      for (uint8_t i = 0; i < MAX_NUM_DIMM_SENSORS; i++)
- 	      {
- 		  if (k == 0)
- 		  {
-@@ -492,7 +508,7 @@ fapi::ReturnCode mss_thermal_init(const fapi::Target & i_target)
-          // Iterate through the num_ranks array to determine what DIMMs are plugged
- 	 // Enable sensor monitoring for each plugged DIMM
-          uint32_t l_iterator = 0;
--         for (uint32_t i = 0; i < 2; i++){
-+         for (uint32_t i = 0; i < l_NUM_MBAS; i++){
- 	    if (l_dimm_ranks_array[i][0][0] != 0){
- 	       l_ecmd_rc |= l_data_scac_enable.setBit(l_iterator);
- 	    }
--- 
-1.7.4.1
-
diff --git a/openpower/package/hostboot/hostboot-0008-Update-SBE-Update-IPMI-Watchdog-call-to-use-HARD_RES.patch b/openpower/package/hostboot/hostboot-0008-Update-SBE-Update-IPMI-Watchdog-call-to-use-HARD_RES.patch
deleted file mode 100644
index 9911d22..0000000
--- a/openpower/package/hostboot/hostboot-0008-Update-SBE-Update-IPMI-Watchdog-call-to-use-HARD_RES.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From a048585e96058e9bf1ba43853de3a6b70053d740 Mon Sep 17 00:00:00 2001
-From: Mike Baiocchi <baiocchi@us.ibm.com>
-Date: Thu, 26 Mar 2015 13:16:18 -0500
-Subject: [PATCH 1/5] Update SBE Update IPMI Watchdog call to use HARD_RESET
- action
-
-This commit updates how the SBE Update code will setup the IPMI
-watchdog timer before calling doShutdown().  Rather than using
-NO_ACTIONS, the updated code will use the HARD_RESET action.
-
-Change-Id: Id251307aa76259d8a290a92d9e9f3418b181bc3e
-RTC: 124679
-(cherry picked from commit 815998ab802c19ade01cdc71a9e59946eedf1ab1)
----
- src/usr/sbe/sbe_resolve_sides.C | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/usr/sbe/sbe_resolve_sides.C b/src/usr/sbe/sbe_resolve_sides.C
-index 49d2c25..26ac4e6 100644
---- a/src/usr/sbe/sbe_resolve_sides.C
-+++ b/src/usr/sbe/sbe_resolve_sides.C
-@@ -1350,7 +1350,7 @@ void sbePreShutdownIpmiCalls( void )
-                                static_cast<uint8_t>
-                                           (IPMIWATCHDOG::DO_NOT_STOP |
-                                            IPMIWATCHDOG::BIOS_FRB2), // default
--                               IPMIWATCHDOG::NO_ACTIONS); // boot count reset
-+                               IPMIWATCHDOG::TIMEOUT_HARD_RESET);
-         if(err)
-         {
-                TRACFCOMP( g_trac_sbe,
--- 
-1.8.2.2
-
diff --git a/openpower/package/hostboot/hostboot-0009-Reject-IPMI-events-which-arent-destined-for-the-host.patch b/openpower/package/hostboot/hostboot-0009-Reject-IPMI-events-which-arent-destined-for-the-host.patch
deleted file mode 100644
index 6676254..0000000
--- a/openpower/package/hostboot/hostboot-0009-Reject-IPMI-events-which-arent-destined-for-the-host.patch
+++ /dev/null
@@ -1,142 +0,0 @@
-From 1e70ee010552ad835b03751ebf4788e367bcecd4 Mon Sep 17 00:00:00 2001
-From: Brian Silver <bsilver@us.ibm.com>
-Date: Thu, 26 Mar 2015 15:34:54 -0500
-Subject: [PATCH 2/5] Reject IPMI events which aren't destined for the host
-
-Change-Id: I378e0763c5ca8c13830d0e6c057b24e6beb5dc8c
-(cherry picked from commit e7b68743f7d2a160fd1dd3019f5614860576de64)
----
- src/include/usr/ipmi/ipmiif.H |  8 ++++
- src/usr/ipmi/ipmirp.C         | 92 +++++++++++++++++++++++++++----------------
- 2 files changed, 65 insertions(+), 35 deletions(-)
-
-diff --git a/src/include/usr/ipmi/ipmiif.H b/src/include/usr/ipmi/ipmiif.H
-index 56e3c53..e65252a 100644
---- a/src/include/usr/ipmi/ipmiif.H
-+++ b/src/include/usr/ipmi/ipmiif.H
-@@ -88,6 +88,14 @@ namespace IPMI
-         NETFUN_NONE     = (0x30 << 2),
-     };
- 
-+    // SMS_ATN OEM Event constants
-+    enum oem_event
-+    {
-+        OEM_VALID_NETFUN      = 0x3a,
-+        OEM_VALID_SEL_ID      = 0x5555,
-+        OEM_VALID_RECORD_TYPE = 0xC0,
-+    };
-+
-     // IPMI Completion Codes
-     enum completion_code
-     {
-diff --git a/src/usr/ipmi/ipmirp.C b/src/usr/ipmi/ipmirp.C
-index 5925d45..de1b219 100644
---- a/src/usr/ipmi/ipmirp.C
-+++ b/src/usr/ipmi/ipmirp.C
-@@ -331,46 +331,68 @@ void IpmiRP::postEvent(IPMI::oemSEL* i_event)
- {
-     // Called in the context of the RP message loop, mutex locked
- 
--    // Check to see if this event has a queue registered
--    IPMI::event_q_t::iterator it = iv_eventq.find(i_event->iv_cmd[0]);
-+    do {
-+        // Check to see if event is valid. AMI recomends we check the netfun,
-+        // the SEL id, and the record id. If they don't match, we're allowed
-+        // to consider this an unhandled message.
-+        if ( (i_event->iv_netfun      != IPMI::OEM_VALID_NETFUN) ||
-+             (i_event->iv_record      != IPMI::OEM_VALID_SEL_ID) ||
-+             (i_event->iv_record_type != IPMI::OEM_VALID_RECORD_TYPE) )
-+        {
-+            IPMI_TRAC("rejecting event netfun: 0x%x record: 0x%x record type: 0x%x cmd: 0x%x",
-+                      i_event->iv_netfun,
-+                      i_event->iv_record,
-+                      i_event->iv_record_type,
-+                      i_event->iv_cmd[0]);
- 
--    msg_q_t outq = (it == iv_eventq.end()) ? iv_last_chanceq : it->second;
-+            // ... and clean up the memory for the caller
-+            delete i_event;
-+            break;
-+        }
- 
--    // Create a message to send asynchronously to the event handler queue
--    // Assign the event to the message, the caller will delete the message
--    // and the event.
--    msg_t* msg = msg_allocate();
--    msg->type = IPMI::TYPE_EVENT;
--    msg->extra_data = i_event;
-+        // Check to see if this event has a queue registered
-+        IPMI::event_q_t::iterator it = iv_eventq.find(i_event->iv_cmd[0]);
-+        msg_q_t outq = (it == iv_eventq.end()) ? iv_last_chanceq : it->second;
- 
--    IPMI_TRAC("queuing event %x:%x for handler",
--              i_event->iv_netfun, i_event->iv_cmd[0])
--    int rc = msg_send(outq, msg);
-+        // Create a message to send asynchronously to the event handler queue
-+        // Assign the event to the message, the caller will delete the message
-+        // and the event.
-+        msg_t* msg = msg_allocate();
-+        msg->type = IPMI::TYPE_EVENT;
-+        msg->extra_data = i_event;
- 
--    if (rc)
--    {
--        /* @errorlog tag
--         * @errortype       ERRL_SEV_UNRECOVERABLE
--         * @moduleid        IPMI::MOD_IPMISRV_SEND
--         * @reasoncode      IPMI::RC_INVALID_SEND
--         * @userdata1       rc from msq_send()
--         * @devdesc         msg_send() failed
--         * @custdesc        Firmware error during IPMI event handling
--         */
--        errlHndl_t err =
--            new ERRORLOG::ErrlEntry(ERRORLOG::ERRL_SEV_UNRECOVERABLE,
--                                    IPMI::MOD_IPMISRV_SEND,
--                                    IPMI::RC_INVALID_SEND,
--                                    rc,
--                                    0,
--                                    true);
--        err->collectTrace(IPMI_COMP_NAME);
--        errlCommit(err, IPMI_COMP_ID);
-+        IPMI_TRAC("queuing event %x:%x for handler",
-+                  i_event->iv_netfun, i_event->iv_cmd[0])
-+            int rc = msg_send(outq, msg);
- 
--        // ... and clean up the memory for the caller
--        delete i_event;
--        msg_free(msg);
--    }
-+        if (rc)
-+        {
-+            /* @errorlog tag
-+             * @errortype       ERRL_SEV_UNRECOVERABLE
-+             * @moduleid        IPMI::MOD_IPMISRV_SEND
-+             * @reasoncode      IPMI::RC_INVALID_SEND
-+             * @userdata1       rc from msq_send()
-+             * @devdesc         msg_send() failed
-+             * @custdesc        Firmware error during IPMI event handling
-+             */
-+            errlHndl_t err =
-+                new ERRORLOG::ErrlEntry(ERRORLOG::ERRL_SEV_UNRECOVERABLE,
-+                                        IPMI::MOD_IPMISRV_SEND,
-+                                        IPMI::RC_INVALID_SEND,
-+                                        rc,
-+                                        0,
-+                                        true);
-+            err->collectTrace(IPMI_COMP_NAME);
-+            errlCommit(err, IPMI_COMP_ID);
-+
-+            // ... and clean up the memory for the caller
-+            delete i_event;
-+            msg_free(msg);
-+        }
-+
-+    } while(0);
-+
-+    return;
- }
- 
- /**
--- 
-1.8.2.2
-
diff --git a/openpower/package/hostboot/hostboot-0010-Support-partial-good-Xbus.patch b/openpower/package/hostboot/hostboot-0010-Support-partial-good-Xbus.patch
deleted file mode 100644
index df1a728..0000000
--- a/openpower/package/hostboot/hostboot-0010-Support-partial-good-Xbus.patch
+++ /dev/null
@@ -1,71 +0,0 @@
-From 07b936c1c5f97314719e7e988e6c07810637b8c1 Mon Sep 17 00:00:00 2001
-From: Dean Sanner <dsanner@us.ibm.com>
-Date: Wed, 11 Mar 2015 09:11:14 -0500
-Subject: [PATCH 3/8] Support partial good Xbus
-
-Change-Id: I245cd9947d5b7a05ff9a8f92ff18c658b1fe09d6
-Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/16300
-Tested-by: Jenkins Server
-Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
-Reviewed-by: Brian H. Horton <brianh@linux.ibm.com>
-Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
-(cherry picked from commit a0f4a934254572ce49a1ddf5e4d5d944b52779be)
----
- src/usr/hwpf/plat/fapiPlatAttributeService.C | 22 ++++++++++++++++++----
- 1 file changed, 18 insertions(+), 4 deletions(-)
-
-diff --git a/src/usr/hwpf/plat/fapiPlatAttributeService.C b/src/usr/hwpf/plat/fapiPlatAttributeService.C
-index 6e4f400..7da841a 100644
---- a/src/usr/hwpf/plat/fapiPlatAttributeService.C
-+++ b/src/usr/hwpf/plat/fapiPlatAttributeService.C
-@@ -58,11 +58,14 @@
- #include <hwpf/hwp/pll_accessors/getPllRingInfoAttr.H>
- #include <hwpf/hwp/winkle_ring_accessors/getL3DeltaDataAttr.H>
- #include <fapiAttributeIds.H>
-+#include <hwas/common/hwasCommon.H>
-+
- // The following file checks at compile time that all HWPF attributes are
- // handled by Hostboot. This is done to ensure that the HTML file listing
- // supported HWPF attributes lists attributes handled by Hostboot
- #include <fapiAttributePlatCheck.H>
- 
-+
- //******************************************************************************
- // Implementation
- //******************************************************************************
-@@ -1239,6 +1242,7 @@ fapi::ReturnCode fapiPlatGetEnableAttr ( fapi::AttributeId i_id,
- {
-     fapi::ReturnCode l_rc;
-     TARGETING::Target * l_pTarget = NULL;
-+    o_enable = 0;
- 
-     // Get the Targeting Target
-     l_rc = getTargetingTarget(i_pFapiTarget, l_pTarget);
-@@ -1271,10 +1275,20 @@ fapi::ReturnCode fapiPlatGetEnableAttr ( fapi::AttributeId i_id,
-                 o_enable = 1;
-                 break;
-             case fapi::ATTR_PROC_X_ENABLE:
--                // The enable flag reflects the state of the pervasive chiplet,
--                //  NOT the bus logic, so always return true since we don't
--                //  support partial good on the XBUS chiplet
--                o_enable = 1;
-+                // Need to support having the X bus chiplet partial good
-+                // Look at the saved away PG data
-+                TARGETING::ATTR_CHIP_REGIONS_TO_ENABLE_type l_chipRegionData;
-+                l_rc = FAPI_ATTR_GET(ATTR_CHIP_REGIONS_TO_ENABLE, i_pFapiTarget,
-+                                     l_chipRegionData);
-+                if (l_rc) {
-+                    FAPI_ERR("fapi_attr_get( ATTR_CHIP_REGIONS_TO_ENABLE ) failed. With rc = 0x%x",
-+                             (uint32_t) l_rc );
-+                    break;
-+                }
-+                else if (l_chipRegionData[HWAS::VPD_CP00_PG_XBUS_INDEX] != 0)
-+                {
-+                    o_enable = 0x1;
-+                }
-                 break;
-             default:
-                 o_enable = 0;
--- 
-1.8.2.2
-
diff --git a/openpower/package/hostboot/hostboot-0011-Pull-model-name-and-serial-from-OSYS-record-if-avail.patch b/openpower/package/hostboot/hostboot-0011-Pull-model-name-and-serial-from-OSYS-record-if-avail.patch
deleted file mode 100644
index 0f20e0b..0000000
--- a/openpower/package/hostboot/hostboot-0011-Pull-model-name-and-serial-from-OSYS-record-if-avail.patch
+++ /dev/null
@@ -1,213 +0,0 @@
-From 438ebf4b5acbaab0da69009d4248a6aac45fbed6 Mon Sep 17 00:00:00 2001
-From: Dan Crowell <dcrowell@us.ibm.com>
-Date: Wed, 11 Mar 2015 16:44:59 -0500
-Subject: [PATCH 3/5] Pull model name and serial from OSYS record if available
-
-The supported level of OP planar VPD has the system model
-name inside OSYS:MM, not OPFR:DR.
-
-Change-Id: Iaa9c4e00325f8fa6efb7a9fca1275bcea2759308
-Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/16308
-Reviewed-by: William H. Schwartz <whs@us.ibm.com>
-Tested-by: Jenkins Server
-Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
-(cherry picked from commit 2114a66c76558f41cd305fc294ccdfaf6607c0e5)
----
- src/usr/devtree/bld_devtree.C | 142 +++++++++++++++++++++++++++++++++++++-----
- 1 file changed, 126 insertions(+), 16 deletions(-)
-
-diff --git a/src/usr/devtree/bld_devtree.C b/src/usr/devtree/bld_devtree.C
-index f2e9438..622178a 100644
---- a/src/usr/devtree/bld_devtree.C
-+++ b/src/usr/devtree/bld_devtree.C
-@@ -1034,18 +1034,26 @@ errlHndl_t bld_fdt_system(devTree * i_dt, bool i_smallTree)
-     // Nothing to do for small trees currently.
-     if (!i_smallTree)
-     {
-+        //===== compatible =====
-         /* Fetch the MRW-defined compatible model from attributes */
-         ATTR_OPAL_MODEL_type l_model = {0};
-         TARGETING::Target* sys = NULL;
-         TARGETING::targetService().getTopLevelTarget(sys);
-         sys->tryGetAttr<TARGETING::ATTR_OPAL_MODEL>(l_model);
- 
--        /* Add compatibility node */
-+        /* Add compatibility value */
-         const char* l_compats[] = { "ibm,powernv", l_model, NULL };
-         i_dt->addPropertyStrings(rootNode, "compatible", l_compats);
- 
--        /* Add system model node */
--        // Based off of the DR field in the OPFR
-+        //===== model =====
-+        /* Add system model value
-+           Depending on the vintage of the planar VPD, there are 3 places
-+           we need to look for this data.
-+           1) OSYS:MM
-+           2) OPFR:DR
-+           3) Default to 'unknown'
-+         */
-+        bool foundvpd = false;
-         // TODO RTC 118373 -- update to account for firestone/memory riser
-         TARGETING::TargetHandleList l_membTargetList;
-         getAllChips(l_membTargetList, TYPE_MEMBUF);
-@@ -1061,42 +1069,144 @@ errlHndl_t bld_fdt_system(devTree * i_dt, bool i_smallTree)
-             errhdl = deviceRead( l_pMem,
-                                  NULL,
-                                  vpdSize,
--                                 DEVICE_CVPD_ADDRESS( CVPD::OPFR,
--                                                      CVPD::DR ));
-+                                 DEVICE_CVPD_ADDRESS( CVPD::OSYS,
-+                                                      CVPD::MM ));
- 
-             if(errhdl)
-             {
--                TRACFCOMP(g_trac_devtree,ERR_MRK" Couldn't get DR size for HUID=0x%.8X",
-+                TRACFCOMP(g_trac_devtree,ERR_MRK" Couldn't get OSYS:MM size for HUID=0x%.8X",
-                           TARGETING::get_huid(l_pMem));
--                i_dt->addPropertyString(rootNode, "model", "unknown");
--                errlCommit(errhdl, DEVTREE_COMP_ID);
-+
-+                // Try the OPFR record
-+                errlHndl_t opfr_errhdl = deviceRead( l_pMem,
-+                                           NULL,
-+                                           vpdSize,
-+                                           DEVICE_CVPD_ADDRESS( CVPD::OPFR,
-+                                                                CVPD::DR ));
-+                if(opfr_errhdl)
-+                {
-+                    TRACFCOMP(g_trac_devtree,ERR_MRK" Couldn't get OPFR:DR size for HUID=0x%.8X",
-+                              TARGETING::get_huid(l_pMem));
-+                    delete opfr_errhdl; //delete OPFR log, VPD is just bad
-+                }
-+                else
-+                {
-+                    delete errhdl; //ignore lack of OSYS due to older vpd
-+                    errhdl = NULL;
-+                    char drBuf[vpdSize+1];
-+                    memset(&drBuf, 0x0, (vpdSize+1)); //null terminated str
-+                    errhdl = deviceRead( l_pMem,
-+                                         reinterpret_cast<void*>( &drBuf ),
-+                                         vpdSize,
-+                                         DEVICE_CVPD_ADDRESS( CVPD::OPFR,
-+                                                              CVPD::DR ));
-+
-+                    if(errhdl)
-+                    {
-+                        TRACFCOMP(g_trac_devtree,ERR_MRK" Couldn't read OPFR:DR for HUID=0x%.8X",
-+                                  TARGETING::get_huid(l_pMem));
-+                    }
-+                    else
-+                    {
-+                        foundvpd = true;
-+                        i_dt->addPropertyString(rootNode, "model", drBuf);
-+                    }
-+                }
-             }
-             else
-             {
--                char drBuf[vpdSize+1];
--                memset(&drBuf, 0x0, (vpdSize+1)); //ensure null terminated str
-+                char mmBuf[vpdSize+1];
-+                memset(&mmBuf, 0x0, (vpdSize+1)); //ensure null terminated str
-                 errhdl = deviceRead( l_pMem,
--                                     reinterpret_cast<void*>( &drBuf ),
-+                                     reinterpret_cast<void*>( &mmBuf ),
-                                      vpdSize,
--                                     DEVICE_CVPD_ADDRESS( CVPD::OPFR,
--                                                          CVPD::DR ));
-+                                     DEVICE_CVPD_ADDRESS( CVPD::OSYS,
-+                                                          CVPD::MM ));
- 
-                 if(errhdl)
-                 {
--                    TRACFCOMP(g_trac_devtree,ERR_MRK" Couldn't read DR for HUID=0x%.8X",
-+                    TRACFCOMP(g_trac_devtree,ERR_MRK" Couldn't read OSYS:MM for HUID=0x%.8X",
-                               TARGETING::get_huid(l_pMem));
-                 }
-                 else
-                 {
--                    i_dt->addPropertyString(rootNode, "model", drBuf);
-+                    foundvpd = true;
-+                    i_dt->addPropertyString(rootNode, "model", mmBuf);
-                 }
-             }
-         }
--        else //chassis info not found, default to unknown
-+
-+        // just commit any errors we get, this isn't critical
-+        if( errhdl )
-+        {
-+            errlCommit(errhdl, DEVTREE_COMP_ID); //commit original OSYS log
-+        }
-+
-+        if( !foundvpd ) //chassis info not found, default to unknown
-         {
-             TRACFCOMP(g_trac_devtree,ERR_MRK" VPD not found, model defaulted to unknown");
-             i_dt->addPropertyString(rootNode, "model", "unknown");
-         }
-+
-+        //===== system-id =====
-+        /* Add system-id value
-+           1) OSYS:SS
-+           2) Default to 'unavailable'
-+         */
-+        // TODO RTC 118373 -- update to account for firestone/memory riser
-+        foundvpd = false;
-+        if( l_membTargetList.size() )
-+        {
-+            // TODO RTC 118373 - Should be able to read from attribute
-+            TARGETING::Target * l_pMem = l_membTargetList[0];
-+            size_t vpdSize = 0x0;
-+
-+            // Note: First read with NULL for o_buffer sets vpdSize to the
-+            // correct length
-+            errhdl = deviceRead( l_pMem,
-+                                 NULL,
-+                                 vpdSize,
-+                                 DEVICE_CVPD_ADDRESS( CVPD::OSYS,
-+                                                      CVPD::SS ));
-+
-+            if(errhdl)
-+            {
-+                TRACFCOMP(g_trac_devtree,ERR_MRK" Couldn't get OSYS:SS size for HUID=0x%.8X",
-+                          TARGETING::get_huid(l_pMem));
-+                // Note - not supporting old vpd versions without OSYS here
-+            }
-+            else
-+            {
-+                char ssBuf[vpdSize+1];
-+                memset(&ssBuf, 0x0, (vpdSize+1)); //ensure null terminated str
-+                errhdl = deviceRead( l_pMem,
-+                                     reinterpret_cast<void*>( &ssBuf ),
-+                                     vpdSize,
-+                                     DEVICE_CVPD_ADDRESS( CVPD::OSYS,
-+                                                          CVPD::SS ));
-+
-+                if(errhdl)
-+                {
-+                    TRACFCOMP(g_trac_devtree,ERR_MRK" Couldn't read OSYS:SS for HUID=0x%.8X",
-+                              TARGETING::get_huid(l_pMem));
-+                }
-+                else
-+                {
-+                    foundvpd = true;
-+                    i_dt->addPropertyString(rootNode, "system-id", ssBuf);
-+                }
-+            }
-+        }
-+        // just commit any errors we get, this isn't critical
-+        if( errhdl )
-+        {
-+            errlCommit(errhdl, DEVTREE_COMP_ID);
-+        }
-+
-+        if( !foundvpd ) //serial number not found, default to unavailable
-+        {
-+            i_dt->addPropertyString(rootNode, "system-id", "unavailable");
-+        }
-     }
- 
-     return errhdl;
--- 
-1.8.2.2
-
diff --git a/openpower/package/hostboot/hostboot-0012-Cap-off-the-TRACFBIN-such-that-nothing-exceeds-64-by.patch b/openpower/package/hostboot/hostboot-0012-Cap-off-the-TRACFBIN-such-that-nothing-exceeds-64-by.patch
deleted file mode 100644
index fd60ef3..0000000
--- a/openpower/package/hostboot/hostboot-0012-Cap-off-the-TRACFBIN-such-that-nothing-exceeds-64-by.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-From 7cd4c46c4b6689dcd16f7667076283abf14ef575 Mon Sep 17 00:00:00 2001
-From: Elizabeth Liner <eliner@us.ibm.com>
-Date: Mon, 30 Mar 2015 12:41:45 -0500
-Subject: [PATCH 08/10] Cap off the TRACFBIN such that nothing exceeds 64 bytes
-
-Change-Id: If8f08d1602b4437aa0e72e6d2e8d99ca615a2c77
-Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/16762
-Tested-by: Jenkins Server
-Reviewed-by: Brian H. Horton <brianh@linux.ibm.com>
-Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
-(cherry picked from commit 56ab0ee178b8277c4cc7e24e8535802821b4cba7)
----
- src/include/usr/trace/interface.H | 17 ++++++++++++-----
- src/include/usr/trace/trace.H     |  3 +++
- 2 files changed, 15 insertions(+), 5 deletions(-)
-
-diff --git a/src/include/usr/trace/interface.H b/src/include/usr/trace/interface.H
-index 3ef8575..4115ec2 100644
---- a/src/include/usr/trace/interface.H
-+++ b/src/include/usr/trace/interface.H
-@@ -218,13 +218,20 @@ const uint32_t TRACE_FIELD   = 0;       //Indicates trace is field
- */
- #define TRACFBIN(des,printf_string,address,len) \
-     { \
-+        /*TODO: RTC 124618 - remove this block once issue is resolved*/ \
-+        uint16_t l_length = len; \
-+        if(l_length > MAX_WORKING_TRACBIN_SIZE) \
-+        { \
-+            l_length = MAX_WORKING_TRACBIN_SIZE; \
-+            TRACFCOMP(des,"Shrinking to max size in TRACFBIN"); \
-+        } \
-         __TRACE_HASH_STRUCTURES(printf_string); \
-         TRACE::trace_adal_write_bin((des), \
--                                    &__traceData_codeInfo, \
--                                    __LINE__, \
--                                    address, \
--                                    len, \
--                                    TRACE_FIELD); \
-+                                &__traceData_codeInfo, \
-+                                __LINE__, \
-+                                address, \
-+                                l_length, \
-+                                TRACE_FIELD); \
-     }
- 
- /**
-diff --git a/src/include/usr/trace/trace.H b/src/include/usr/trace/trace.H
-index fdcce88..bf5421c 100644
---- a/src/include/usr/trace/trace.H
-+++ b/src/include/usr/trace/trace.H
-@@ -42,6 +42,9 @@ const uint32_t TRACE_DEBUG_OFF   = 0;       //< Set to this when debug trace off
- const uint32_t TRAC_COMP_SIZE    = 16;      //< Max component name size
- const uint32_t TRAC_MAX_ARGS     = 9;       //< Max number of arguments in trace
- 
-+//TODO: RTC 124618 - remove this block once issue is resolved
-+const uint16_t MAX_WORKING_TRACBIN_SIZE = 64; //< Max working tracBin size
-+
- typedef uint32_t trace_hash_val;    //< Hash values are 32 bits.
- 
- 
--- 
-1.8.2.2
-
diff --git a/openpower/package/hostboot/hostboot-0013-Enable-vrml-mvpd.patch b/openpower/package/hostboot/hostboot-0013-Enable-vrml-mvpd.patch
deleted file mode 100644
index 04118e9..0000000
--- a/openpower/package/hostboot/hostboot-0013-Enable-vrml-mvpd.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From a5d5840c4780a39be436e2dde2a53037b1b82635 Mon Sep 17 00:00:00 2001
-From: Bill Hoffa <wghoffa@us.ibm.com>
-Date: Mon, 30 Mar 2015 19:22:44 -0500
-Subject: [PATCH] Add VRML MVPD Enablement for Habanero
-
-Change-Id: I7dd2d155e295a5fee09010ba173c82748e25221d
----
- src/include/usr/vpd/mvpdenums.H | 1 +
- src/usr/vpd/mvpd.H              | 1 +
- 2 files changed, 2 insertions(+)
-
-diff --git a/src/include/usr/vpd/mvpdenums.H b/src/include/usr/vpd/mvpdenums.H
-index 950245f..fd4ddaf 100644
---- a/src/include/usr/vpd/mvpdenums.H
-+++ b/src/include/usr/vpd/mvpdenums.H
-@@ -79,6 +79,7 @@ enum mvpdRecord
-     LWPE        = 0x20,
-     VWML        = 0x21,
-     MER0        = 0x22,
-+    VRML        = 0x23,
- 
-     // Last Record
-     MVPD_LAST_RECORD,
-diff --git a/src/usr/vpd/mvpd.H b/src/usr/vpd/mvpd.H
-index 60a8491..e9fe905 100644
---- a/src/usr/vpd/mvpd.H
-+++ b/src/usr/vpd/mvpd.H
-@@ -88,6 +88,7 @@ namespace MVPD
-         { LWPE, "LWPE" },
-         { VWML, "VWML" },
-         { MER0, "MER0" },
-+        { VRML, "VRML" },
-         // -------------------------------------------------------------------
-         // DO NOT USE!!  This is for test purposes ONLY!
-         { MVPD_TEST_RECORD, "TEST" },
--- 
-1.8.2.2
-
diff --git a/openpower/package/hostboot/hostboot-0014-Update-VPD-Fields-Use-for-Fru-Inventory.patch b/openpower/package/hostboot/hostboot-0014-Update-VPD-Fields-Use-for-Fru-Inventory.patch
deleted file mode 100644
index b048484..0000000
--- a/openpower/package/hostboot/hostboot-0014-Update-VPD-Fields-Use-for-Fru-Inventory.patch
+++ /dev/null
@@ -1,203 +0,0 @@
-From 1521a501ada30fd69606829b8f551547d7d882cd Mon Sep 17 00:00:00 2001
-From: Bill Hoffa <wghoffa@us.ibm.com>
-Date: Mon, 30 Mar 2015 11:09:17 -0500
-Subject: [PATCH 5/5] Update VPD Fields Use for Fru Inventory
-
-Change-Id: Iaa4802e72e355acd03cb88e58c40d1069dd76ef5
-RTC:125044
-(cherry picked from commit 8a7427bd44bd4742a53412e6894cc2294d893012)
----
- src/usr/ipmi/ipmifruinv.C     | 97 +++++++++++++++++--------------------------
- src/usr/ipmi/ipmifruinvprvt.H |  6 ++-
- 2 files changed, 42 insertions(+), 61 deletions(-)
-
-diff --git a/src/usr/ipmi/ipmifruinv.C b/src/usr/ipmi/ipmifruinv.C
-index 7c9eb85..c6c7a30 100644
---- a/src/usr/ipmi/ipmifruinv.C
-+++ b/src/usr/ipmi/ipmifruinv.C
-@@ -35,6 +35,7 @@
- #include <ipmi/ipmifruinv.H>
- #include "ipmifru.H"
- #include "ipmifruinvprvt.H"
-+#include <stdio.h>
- 
- extern trace_desc_t * g_trac_ipmi;
- 
-@@ -401,7 +402,7 @@ errlHndl_t isdimmIpmiFruInv::buildProductInfoArea(std::vector<uint8_t> &io_data)
-         l_errl = addVpdData(io_data, SPD::BASIC_MEMORY_TYPE);
-         if (l_errl) { break; }
-         //Set Product Part/Model Number
--        l_errl = addVpdData(io_data, SPD::MODULE_PART_NUMBER);
-+        l_errl = addVpdData(io_data, SPD::MODULE_PART_NUMBER, true);
-         if (l_errl) { break; }
-         //Set Product Version
-         l_errl = addVpdData(io_data, SPD::MODULE_REVISION_CODE);
-@@ -411,8 +412,7 @@ errlHndl_t isdimmIpmiFruInv::buildProductInfoArea(std::vector<uint8_t> &io_data)
-         if (l_errl) { break; }
- 
-         //Add Asset Tag
--        io_data.push_back(uint8_t(1)); //Asset Tag is One Byte for now
--        io_data.push_back(uint8_t(0));
-+        io_data.push_back(uint8_t(0)); //No Asset Tag needed - O bytes
- 
-         //FRU File ID - Empty
-         io_data.push_back(IPMIFRUINV::TYPELENGTH_BYTE_NULL);
-@@ -434,7 +434,8 @@ errlHndl_t isdimmIpmiFruInv::buildProductInfoArea(std::vector<uint8_t> &io_data)
- }
- 
- errlHndl_t isdimmIpmiFruInv::addVpdData(std::vector<uint8_t> &io_data,
--                                     uint8_t i_keyword)
-+                                     uint8_t i_keyword,
-+                                     bool i_ascii)
- {
-     size_t     l_vpdSize = 0;
-     errlHndl_t l_errl = NULL;
-@@ -463,12 +464,22 @@ errlHndl_t isdimmIpmiFruInv::addVpdData(std::vector<uint8_t> &io_data,
-             uint8_t l_offset = io_data.size();
-             io_data.resize(l_offset + 1 + l_vpdSize);
- 
--            //Add on the data to the type/length byte indicating it is binary
--            io_data.at(l_offset) = l_vpdSize;
-+            //Add on the data to the type/length byte indicating it is ascii
-+            // otherwise leave it as binary
-+            if (i_ascii)
-+            {
-+                io_data.at(l_offset) = l_vpdSize
-+                                       + IPMIFRUINV::TYPELENGTH_BYTE_ASCII;
-+            }
-+            else
-+            {
-+                io_data.at(l_offset) = l_vpdSize;
-+            }
-+            l_offset += 1;
- 
-             //Read the VPD data directly into fru inventory data buffer
--            l_errl = deviceRead(iv_target,&io_data[l_offset+1], l_vpdSize,
--                        DEVICE_SPD_ADDRESS(i_keyword));
-+            l_errl = deviceRead(iv_target,&io_data[l_offset], l_vpdSize,
-+                       DEVICE_SPD_ADDRESS(i_keyword));
-         }
-         else
-         {
-@@ -534,10 +545,10 @@ errlHndl_t procIpmiFruInv::buildBoardInfoArea(std::vector<uint8_t> &io_data)
-         l_errl = addVpdData(io_data, MVPD::VINI, MVPD::DR, true);
-         if (l_errl) { break; }
-         //Set Board Info serial number
--        l_errl = addVpdData(io_data, MVPD::VINI, MVPD::SN);
-+        l_errl = addVpdData(io_data, MVPD::VRML, MVPD::SN, true);
-         if (l_errl) { break; }
-         //Set Board part number
--        l_errl = addVpdData(io_data, MVPD::VINI, MVPD::FN);
-+        l_errl = addVpdData(io_data, MVPD::VRML, MVPD::PN, true);
-         if (l_errl) { break; }
-         //Set Board FRU File ID
-         l_errl = addVpdData(io_data, MVPD::VINI, MVPD::VZ);
-@@ -760,47 +771,18 @@ errlHndl_t backplaneIpmiFruInv::buildBoardInfoArea(
- 
-         //Set Product Name - ascii formatted data
-         //@fixme RTC Story 118373
--        l_errl = addVpdData(io_data, CVPD::OSYS, CVPD::DR, true);
--
--        //Support Legacy VPD without OSYS record
--        if (l_errl)
--        {
--
--            TRACFCOMP(g_trac_ipmi,
--                      "backplaneIpmiFruInv::buildChassisBoardInfoArea - "
--                      " Using Legacy Chassis VPD Data without OSYS record");
--
--            //Delete errorlog and use Legacy VPD Fields
--            delete l_errl;
--            l_errl = NULL;
--            //Set Product Name - ascii formatted data
--            //@fixme RTC Story 118373
--            l_errl = addVpdData(io_data, CVPD::OPFR, CVPD::DR, true);
--            if (l_errl) { break; }
--
--            //Set Product Serial number - ascii formatted data
--            //@fixme RTC Story 118373
--            l_errl = addVpdData(io_data, CVPD::OPFR, CVPD::VS, true);
--            if (l_errl) { break; }
--
--            //Set Product Part number - ascii formatted data
--            //@fixme RTC Story 118373
--            l_errl = addVpdData(io_data, CVPD::OPFR, CVPD::VP, true);
--            if (l_errl) { break; }
-+        l_errl = addVpdData(io_data, CVPD::OPFR, CVPD::DR, true);
-+        if (l_errl) { break; }
- 
--        }
--        else
--        {
--            //Set serial number - ascii formatted field
--            //@fixme RTC Story 118373
--            l_errl = addVpdData(io_data, CVPD::OSYS, CVPD::SS, true);
--            if (l_errl) { break; }
-+        //Set Product Serial number - ascii formatted data
-+        //@fixme RTC Story 118373
-+        l_errl = addVpdData(io_data, CVPD::OPFR, CVPD::VS, true);
-+        if (l_errl) { break; }
- 
--            //Set chassis part number - ascii formatted field
--            //@fixme RTC Story 118373
--            l_errl = addVpdData(io_data, CVPD::OSYS, CVPD::MM, true);
--            if (l_errl) { break; }
--        }
-+        //Set Product Part number - ascii formatted data
-+        //@fixme RTC Story 118373
-+        l_errl = addVpdData(io_data, CVPD::OPFR, CVPD::VP, true);
-+        if (l_errl) { break; }
- 
-         //Push Fru File ID Byte - NULL
-         io_data.push_back(IPMIFRUINV::TYPELENGTH_BYTE_NULL);
-@@ -950,22 +932,19 @@ void IpmiFruInv::addEcidData(const TARGETING::TargetHandle_t& i_target,
- {
-     // Create Custom ECID Field
-     // - First put in 'ECID:' to make it obvious what this is
--    uint8_t l_data[] = {IPMIFRUINV::TYPELENGTH_BYTE_ASCII + 5,'E','C','I','D',
--                                   ':', IPMIFRUINV::TYPELENGTH_BYTE_NULL + 16};
-+    uint8_t l_data[] = {IPMIFRUINV::TYPELENGTH_BYTE_ASCII + 21,'E','C','I','D',
-+                                    ':'};
- 
-     // @todo-RTC:124687 - Refactor multiple reallocations
-     io_data.insert( io_data.end(),
-                     &l_data[0],
-                     &l_data[0] + (uint8_t(sizeof(l_data) / sizeof(uint8_t))));
- 
--    uint8_t* l_vDataPtr = (uint8_t*) &i_ecidInfo[0];
--    //Insert first 64 bits of ECID data
--    io_data.insert(io_data.end(),
--                &l_vDataPtr[0], &l_vDataPtr[0]+8);
--    l_vDataPtr = (uint8_t*) &i_ecidInfo[1];
--    //Insert second 64 bits of ECID data
--    io_data.insert(io_data.end(),
--        &l_vDataPtr[0], &l_vDataPtr[0]+8);
-+    char l_ecidAscii[33];
-+    sprintf(l_ecidAscii, "%.16llX%.16llX", i_ecidInfo[0], i_ecidInfo[1]);
-+
-+    uint8_t* l_vDataPtr = (uint8_t*) &l_ecidAscii[0];
-+    io_data.insert(io_data.end(), &l_vDataPtr[0], &l_vDataPtr[0]+16);
- 
-     return;
- }
-diff --git a/src/usr/ipmi/ipmifruinvprvt.H b/src/usr/ipmi/ipmifruinvprvt.H
-index aed5dfc..2573a84 100644
---- a/src/usr/ipmi/ipmifruinvprvt.H
-+++ b/src/usr/ipmi/ipmifruinvprvt.H
-@@ -303,9 +303,11 @@ class isdimmIpmiFruInv : public IpmiFruInv
-      *        record
-      * @param[in/out] data, The container with record data
-      * @param[in] keyword, Indicates where in the VPD to get more data
--
-+     * @param[in] ascii, Indicates if VPD field is in ascii format or not
-      */
--    errlHndl_t addVpdData(std::vector<uint8_t> &io_data, uint8_t i_keyword);
-+    errlHndl_t addVpdData(std::vector<uint8_t> &io_data,
-+                          uint8_t i_keyword,
-+                          bool i_ascii=false);
- 
- };
- 
--- 
-1.8.2.2
-
diff --git a/openpower/package/hostboot/hostboot-0015-Add-PNOR-Version-Information-to-IPMI-Fru-Inventory.patch b/openpower/package/hostboot/hostboot-0015-Add-PNOR-Version-Information-to-IPMI-Fru-Inventory.patch
deleted file mode 100644
index 83dca55..0000000
--- a/openpower/package/hostboot/hostboot-0015-Add-PNOR-Version-Information-to-IPMI-Fru-Inventory.patch
+++ /dev/null
@@ -1,351 +0,0 @@
-From 5bda70dc5e135261f5393858959056b44332885b Mon Sep 17 00:00:00 2001
-From: Bill Hoffa <wghoffa@us.ibm.com>
-Date: Mon, 30 Mar 2015 15:11:28 -0500
-Subject: [PATCH 6/7] Add PNOR Version Information to IPMI Fru Inventory
-
-Change-Id: Ib49fe67e9c6631b2b7ea0005e692c9aea6d84057
-RTC:123353
-(cherry picked from commit 90f8e938932e867283e28cade6741b6bf968602c)
----
- src/usr/ipmi/ipmifruinv.C                          | 207 +++++++++++++++++++++
- src/usr/ipmi/ipmifruinvprvt.H                      |  47 +++++
- .../targeting/common/xmltohb/attribute_types.xml   |   8 +
- src/usr/targeting/common/xmltohb/target_types.xml  |   1 +
- 4 files changed, 263 insertions(+)
-
-diff --git a/src/usr/ipmi/ipmifruinv.C b/src/usr/ipmi/ipmifruinv.C
-index c6c7a30..b376ebf 100644
---- a/src/usr/ipmi/ipmifruinv.C
-+++ b/src/usr/ipmi/ipmifruinv.C
-@@ -36,6 +36,7 @@
- #include "ipmifru.H"
- #include "ipmifruinvprvt.H"
- #include <stdio.h>
-+#include <pnor/pnorif.H>
- 
- extern trace_desc_t * g_trac_ipmi;
- 
-@@ -83,6 +84,10 @@ IpmiFruInv *IpmiFruInv::Factory(TARGETING::TargetHandleList i_targets,
-             // @todo-RTC:117702
-             l_fru = new backplaneIpmiFruInv(l_target, i_targets, i_updateData);
-             break;
-+        case TARGETING::TYPE_SYS:
-+            // Use sys target for setting System Firmware Info
-+            l_fru = new systemFwIpmiFruInv(l_target);
-+            break;
-         default:
-             assert(false,
-                 "IpmiFruInv::Factory: No support for target type given: [%08x]",
-@@ -926,6 +931,199 @@ errlHndl_t backplaneIpmiFruInv::addVpdData(std::vector<uint8_t> &io_data,
-     return l_errl;
- }
- 
-+//##############################################################################
-+systemFwIpmiFruInv::systemFwIpmiFruInv( TARGETING::TargetHandle_t i_target )
-+    :IpmiFruInv(i_target)
-+{
-+
-+};
-+
-+errlHndl_t systemFwIpmiFruInv::buildInternalUseArea(std::vector<uint8_t>
-+                                                                       &io_data)
-+{
-+    //This section not needed for proc type
-+    return IpmiFruInv::buildEmptyArea(io_data);
-+}
-+
-+errlHndl_t systemFwIpmiFruInv::buildChassisInfoArea(std::vector<uint8_t>
-+                                                                       &io_data)
-+{
-+    //This section not needed for system firmware type
-+    return IpmiFruInv::buildEmptyArea(io_data);
-+}
-+
-+errlHndl_t systemFwIpmiFruInv::buildBoardInfoArea(std::vector<uint8_t> &io_data)
-+{
-+    //This section not needed for system firmware type
-+    return IpmiFruInv::buildEmptyArea(io_data);
-+}
-+
-+errlHndl_t systemFwIpmiFruInv::buildProductInfoArea(std::vector<uint8_t>
-+                                                                       &io_data)
-+{
-+    errlHndl_t l_errl = NULL;
-+
-+    do {
-+        //Set formatting data that goes at the beginning of the record
-+        preFormatProcessing(io_data, true);
-+
-+        uint8_t l_data[] = {IPMIFRUINV::TYPELENGTH_BYTE_ASCII + 3,'I','B','M',
-+                            IPMIFRUINV::TYPELENGTH_BYTE_ASCII + 18, 'O','p','e',
-+                            'n','P','O','W','E','R',' ','F','i','r','m','w','a',
-+                            'r','e', IPMIFRUINV::TYPELENGTH_BYTE_NULL};
-+
-+        io_data.insert( io_data.end(),
-+                    &l_data[0],
-+                    &l_data[0] + (uint8_t(sizeof(l_data) / sizeof(uint8_t))));
-+
-+        //Get PNOR Version Here
-+        PNOR::SectionInfo_t l_pnorInfo;
-+        l_errl = getSectionInfo( PNOR::VERSION , l_pnorInfo);
-+        if (l_errl) { break; }
-+
-+        uint8_t* l_versionData = reinterpret_cast<uint8_t*>( l_pnorInfo.vaddr );
-+        //Total Bytes in PNOR Version String
-+        uint8_t l_numBytes = 0;
-+        uint8_t l_curOffset = 0;
-+
-+        //Total Number of fields needed to print PNOR Version String
-+        uint8_t l_numFields = 0;
-+        bool l_clearStandardFields = true;
-+
-+        //First determine number of bytes in PNOR Version string
-+        //  with the caveat there is a max record size allowed, so
-+        //  the string will be cut off if too long
-+        //Also, remove whitespace/newline chars
-+        while ((l_numBytes < IPMIFRUINV::MAX_RECORD_SIZE -
-+                              (uint8_t(sizeof(l_data) / sizeof(uint8_t))) -
-+                              IPMIFRUINV::COMMON_HEADER_FORMAT_SIZE - 8)
-+                               && (((char)(l_versionData[l_numBytes])) != '\0'))
-+        {
-+
-+            if (((char)(l_versionData[l_numBytes])) == '\n')
-+            {
-+
-+                if (l_numBytes > l_curOffset)
-+                {
-+                    //Add on size of this field to the data buffer
-+                    io_data.push_back(
-+                         IPMIFRUINV::TYPELENGTH_BYTE_ASCII
-+                           + (l_numBytes-l_curOffset));
-+
-+                    io_data.insert(io_data.end(),
-+                       &l_versionData[0]+(l_curOffset),
-+                       &l_versionData[0]+(l_numBytes));
-+                }
-+
-+                //Null data for standard fields needs to be indicated once after
-+                // the first segment of data is displayed to match the
-+                // ipmi fru spec
-+                if (l_clearStandardFields)
-+                {
-+                    //Add Empty Asset Tag
-+                    io_data.push_back(uint8_t(0));
-+                    //FRU File ID - Empty
-+                    io_data.push_back(IPMIFRUINV::TYPELENGTH_BYTE_NULL);
-+                    io_data.push_back(uint8_t(0)); // Empty FRU File ID bytes
-+                    l_clearStandardFields = false;
-+                }
-+
-+                //Increment past the newline char
-+                l_curOffset = l_numBytes + 1;
-+            }
-+            l_numBytes++;
-+        }
-+
-+        if (l_curOffset == 0)
-+        {
-+            //Calculate the number of fields required to display this data
-+            //  given only MAX_ASCII_FIELD_SIZE bytes can be in any one given
-+            //  IPMI fru inventory field
-+            l_numFields = l_numBytes / IPMIFRUINV::MAX_ASCII_FIELD_SIZE;
-+            if (l_numBytes % IPMIFRUINV::MAX_ASCII_FIELD_SIZE)
-+            {
-+                l_numFields += 1;
-+            }
-+
-+            //Count by number of fields, adding the data to the buffer as
-+            // we go.
-+            for (uint8_t i=0; i < l_numFields; i++)
-+            {
-+                //Determine the data size for this particular field
-+                uint8_t l_dataSize=IPMIFRUINV::MAX_ASCII_FIELD_SIZE;
-+                if (i == l_numFields - 1)
-+                {
-+                    l_dataSize = l_numBytes -
-+                           (i * IPMIFRUINV::MAX_ASCII_FIELD_SIZE);
-+                }
-+
-+                //Add on size of this field to the data buffer
-+                io_data.push_back(IPMIFRUINV::TYPELENGTH_BYTE_ASCII
-+                                         + l_dataSize);
-+
-+                //Insert this segment of version string data
-+                io_data.insert(io_data.end(),
-+                       &l_versionData[0]+(i * IPMIFRUINV::MAX_ASCII_FIELD_SIZE),
-+                       &l_versionData[0]+(i * IPMIFRUINV::MAX_ASCII_FIELD_SIZE)
-+                                        +l_dataSize);
-+
-+                //Null data for standard fields needs to be indicated once after
-+                // the first segment of data is displayed to match the
-+                // ipmi fru spec
-+                if (l_clearStandardFields)
-+                {
-+                    //Add Empty Asset Tag
-+                    io_data.push_back(uint8_t(0));
-+                    //FRU File ID - Empty
-+                    io_data.push_back(IPMIFRUINV::TYPELENGTH_BYTE_NULL);
-+                    //io_data.push_back(uint8_t(0)); // Empty FRU File ID bytes
-+                    l_clearStandardFields = false;
-+                }
-+
-+            }
-+        }
-+        else
-+        {
-+            if (l_numBytes > l_curOffset)
-+            {
-+                io_data.push_back( IPMIFRUINV::TYPELENGTH_BYTE_ASCII
-+                        + (l_numBytes-l_curOffset));
-+
-+                io_data.insert(io_data.end(),
-+                       &l_versionData[0]+(l_curOffset),
-+                       &l_versionData[0]+(l_numBytes));
-+            }
-+
-+        }
-+
-+        if (l_clearStandardFields)
-+        {
-+            //Add Asset Tag
-+            io_data.push_back(uint8_t(0)); //No Asset Tag needed - O bytes
-+            //FRU File ID - Empty
-+            io_data.push_back(IPMIFRUINV::TYPELENGTH_BYTE_NULL);
-+            //io_data.push_back(uint8_t(0)); // Empty FRU File ID bytes
-+        }
-+
-+        io_data.push_back(IPMIFRUINV::END_OF_CUSTOM_FIELDS);
-+
-+        //Finalize section formatting
-+        postFormatProcessing(io_data);
-+
-+    } while(0);
-+
-+    return l_errl;
-+}
-+
-+errlHndl_t systemFwIpmiFruInv::buildMultiRecordInfoArea(std::vector<uint8_t>
-+                                                                       &io_data)
-+{
-+    //This section not needed for system firmware type
-+    return IpmiFruInv::buildEmptyArea(io_data);
-+}
-+
-+
-+
- void IpmiFruInv::addEcidData(const TARGETING::TargetHandle_t& i_target,
-                              const TARGETING::ATTR_ECID_type& i_ecidInfo,
-                              std::vector<uint8_t> &io_data)
-@@ -993,6 +1191,15 @@ void IPMIFRUINV::setData(bool i_updateData)
-             IPMIFRUINV::gatherClearData(pSys, frusToClear);
-         }
- 
-+        //Get System FW FRU_ID if available
-+        uint32_t l_systemFwFruId;
-+        bool hasSystemFwFruId =
-+                            pSys->tryGetAttr<TARGETING::ATTR_BMC_FRU_ID>(l_systemFwFruId);
-+        if (hasSystemFwFruId)
-+        {
-+            l_potentialFrus.push_back(std::make_pair(pSys, l_systemFwFruId));
-+        }
-+
-         // Find list of all target types that may need a fru inv. record set
-         IPMIFRUINV::gatherSetData(pSys, frusToClear,
-                                      l_potentialFrus, i_updateData);
-diff --git a/src/usr/ipmi/ipmifruinvprvt.H b/src/usr/ipmi/ipmifruinvprvt.H
-index 2573a84..468a47f 100644
---- a/src/usr/ipmi/ipmifruinvprvt.H
-+++ b/src/usr/ipmi/ipmifruinvprvt.H
-@@ -42,6 +42,8 @@ namespace IPMIFRUINV
-         COMMON_HEADER_FORMAT_SIZE     = 8, //size in bytes
-         DEFAULT_CHASSIS_TYPE          = 0x05,
-         DEFAULT_FRU_OFFSET            = 0,
-+        MAX_ASCII_FIELD_SIZE          = 0x3F, //size in bytes
-+        MAX_RECORD_SIZE               = 0xFF, //size in bytes
-     };
- };
- 
-@@ -460,4 +462,49 @@ class backplaneIpmiFruInv : public IpmiFruInv
- 
- };
- 
-+//Child class for building up System Firwmare Fru Inventory Record Data
-+class systemFwIpmiFruInv : public IpmiFruInv
-+{
-+
-+  public:
-+    /**
-+    * @brief Constructor
-+    *
-+    * @param[in] TargetHandle_t, Handle to target for which
-+    *             to get relevant IPMI FRU Data from
-+    */
-+    systemFwIpmiFruInv( TARGETING::TargetHandle_t i_target);
-+
-+    /**
-+     * @brief Builds the Internal Use Area Data Section
-+     * @param[in/out] data, The container to put internal use area data in
-+     */
-+    errlHndl_t buildInternalUseArea(std::vector<uint8_t> &io_data);
-+
-+    /**
-+     * @brief Builds the Chassis Info Area Data Section
-+     * @param[in/out] data, The container to put chassis info area data in
-+     */
-+    errlHndl_t buildChassisInfoArea(std::vector<uint8_t> &io_data);
-+
-+    /**
-+     * @brief Builds the Board Info Area Data Section
-+     * @param[in/out] data, The container to put board info area data in
-+     */
-+    errlHndl_t buildBoardInfoArea(std::vector<uint8_t> &io_data);
-+
-+    /**
-+     * @brief Builds the Product Info Area Data Section
-+     * @param[in/out] data, The container to put product info area data in
-+     */
-+    errlHndl_t buildProductInfoArea(std::vector<uint8_t> &io_data);
-+
-+    /**
-+     * @brief Builds the MultiRecord Info Area Data Section
-+     * @param[in/out] data, The container to put multirecord info area data in
-+     */
-+    errlHndl_t buildMultiRecordInfoArea(std::vector<uint8_t> &io_data);
-+
-+};
-+
- #endif
-diff --git a/src/usr/targeting/common/xmltohb/attribute_types.xml b/src/usr/targeting/common/xmltohb/attribute_types.xml
-index c961ebe..bbf02dd 100644
---- a/src/usr/targeting/common/xmltohb/attribute_types.xml
-+++ b/src/usr/targeting/common/xmltohb/attribute_types.xml
-@@ -11425,6 +11425,14 @@ firmware notes: Platforms should initialize this attribute to AUTO (0)</descript
- </attribute>
- 
- <attribute>
-+    <id>BMC_FRU_ID</id>
-+    <description>BMC FRU ID attribute for node class</description>
-+    <simpleType><uint32_t><default>0</default></uint32_t></simpleType>
-+    <persistency>non-volatile</persistency>
-+    <readable/>
-+</attribute>
-+
-+<attribute>
-     <id>PLCK_IPL_ATTR_OVERRIDES_EXIST</id>
-     <description>
-       Set to 1 by HWSV to indicate that attribute overrides exist in a PLCK IPL
-diff --git a/src/usr/targeting/common/xmltohb/target_types.xml b/src/usr/targeting/common/xmltohb/target_types.xml
-index 6dc4e58..b4b9a30 100644
---- a/src/usr/targeting/common/xmltohb/target_types.xml
-+++ b/src/usr/targeting/common/xmltohb/target_types.xml
-@@ -305,6 +305,7 @@
-     <attribute><id>MNFG_TH_CEN_L4_CACHE_CES</id></attribute>
-     <attribute><id>OPT_MEMMAP_GROUP_POLICY</id></attribute>
-     <attribute><id>FRU_ID</id></attribute>
-+    <attribute><id>BMC_FRU_ID</id></attribute>
- </targetType>
- 
- <targetType>
--- 
-1.8.2.2
-
diff --git a/openpower/package/hostboot/hostboot-0016-Initialize-I2C-Switches-in-struct-to-zero.patch b/openpower/package/hostboot/hostboot-0016-Initialize-I2C-Switches-in-struct-to-zero.patch
deleted file mode 100644
index d7da480..0000000
--- a/openpower/package/hostboot/hostboot-0016-Initialize-I2C-Switches-in-struct-to-zero.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-From 4c31ecf3b63f4f21e677d7359f64de22cd8fc1eb Mon Sep 17 00:00:00 2001
-From: Mike Baiocchi <baiocchi@us.ibm.com>
-Date: Wed, 18 Mar 2015 10:31:21 -0500
-Subject: [PATCH] Initialize I2C Switches in struct to zero
-
-There are multiple uses for the I2C Switches in the misc_args_t
-struct used in I2C operations.  The struct was not defaulting the
-switches value to zero and there were negative consequences of this
-early in the IPL for the i2cPresence() function.
-
-Fixes open-power/hostboot#18
-
-Change-Id: I83d34770ff04cfe31bf07b320d8821c8fa80c705
-CQ: SW2999529
-Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/16447
-Tested-by: Jenkins Server
-Reviewed-by: MATTHEW A. PLOETZ <maploetz@us.ibm.com>
-Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
-Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
----
- src/usr/i2c/i2c.C        | 4 +++-
- src/usr/i2c/i2c_common.H | 5 ++++-
- 2 files changed, 7 insertions(+), 2 deletions(-)
-
-diff --git a/src/usr/i2c/i2c.C b/src/usr/i2c/i2c.C
-index 1f2b8a0..f8583b8 100755
---- a/src/usr/i2c/i2c.C
-+++ b/src/usr/i2c/i2c.C
-@@ -688,7 +688,9 @@ bool i2cPresence( TARGETING::Target * i_target,
- 
- 
- 
--        //Set Host vs FSI switches
-+        // Set I2C Mode (Host vs FSI) for the target
-+        args.switches.useHostI2C = 0;
-+        args.switches.useFsiI2C  = 0;
-         i2cSetSwitches( i_target, args );
- 
-         err = i2cSetBusVariables(i_target,
-diff --git a/src/usr/i2c/i2c_common.H b/src/usr/i2c/i2c_common.H
-index 68865a5..1772ea2 100644
---- a/src/usr/i2c/i2c_common.H
-+++ b/src/usr/i2c/i2c_common.H
-@@ -75,7 +75,10 @@ struct misc_args_t
-                   polling_interval_ns(0),
-                   timeout_count(0),
-                   offset_length(0),
--                  offset_buffer(NULL){};
-+                  offset_buffer(NULL)
-+                  {
-+                      memset(&switches, 0x0, sizeof(switches));
-+                  };
- 
- };
- 
--- 
-2.3.0
-
diff --git a/openpower/package/hostboot/hostboot-0017-Do-not-fail-IPL-for-missing-OSYS-SS-data.patch b/openpower/package/hostboot/hostboot-0017-Do-not-fail-IPL-for-missing-OSYS-SS-data.patch
deleted file mode 100644
index 804f62a..0000000
--- a/openpower/package/hostboot/hostboot-0017-Do-not-fail-IPL-for-missing-OSYS-SS-data.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-From 632df20fb598f38c246eb6ce93d972a9cbec4145 Mon Sep 17 00:00:00 2001
-From: Dan Crowell <dcrowell@us.ibm.com>
-Date: Wed, 1 Apr 2015 10:29:25 -0500
-Subject: [PATCH] Do not fail IPL for missing OSYS:SS data
-
-Older planar vpd vintages may not have the OSYS record filled
-in.  We should allow the system to boot in this case but log
-an error pointing to the planar in need of update.
-
-CQ: SW201885
-Change-Id: Ia4f6440551b4bb6d4a849d24290c19667f3a6c6b
----
- src/usr/devtree/bld_devtree.C |    7 +++++--
- src/usr/errl/errlentry.C      |    1 +
- 2 files changed, 6 insertions(+), 2 deletions(-)
-
-diff --git a/src/usr/devtree/bld_devtree.C b/src/usr/devtree/bld_devtree.C
-index 622178a..a73c812 100644
---- a/src/usr/devtree/bld_devtree.C
-+++ b/src/usr/devtree/bld_devtree.C
-@@ -1197,10 +1197,13 @@ errlHndl_t bld_fdt_system(devTree * i_dt, bool i_smallTree)
-                 }
-             }
-         }
--        // just commit any errors we get, this isn't critical
-+        // just delete any errors we get, this isn't critical
-         if( errhdl )
-         {
--            errlCommit(errhdl, DEVTREE_COMP_ID);
-+            // since there are old parts out in the wild without
-+            //  this data, we can't log an error
-+            delete errhdl;
-+            errhdl = NULL;
-         }
- 
-         if( !foundvpd ) //serial number not found, default to unavailable
-diff --git a/src/usr/errl/errlentry.C b/src/usr/errl/errlentry.C
-index 2d604ce..967638f 100644
---- a/src/usr/errl/errlentry.C
-+++ b/src/usr/errl/errlentry.C
-@@ -94,6 +94,7 @@ struct epubTargetTypeToSub_t
- // Target type to subsystem table.
- static const epubTargetTypeToSub_t TARGET_TO_SUBSYS_TABLE[] =
- {
-+    { TARGETING::TYPE_NODE             , EPUB_CEC_HDW_SUBSYS       },
-     { TARGETING::TYPE_DIMM             , EPUB_MEMORY_DIMM          },
-     { TARGETING::TYPE_MEMBUF           , EPUB_MEMORY_SUBSYS        },
-     { TARGETING::TYPE_PROC             , EPUB_PROCESSOR_SUBSYS     },
--- 
-1.7.4.1
-
diff --git a/openpower/package/hostboot/hostboot-0017-Fix-I2C-Reset-to-resolve-I2C-Bus-Arbitration-Lost-Er.patch b/openpower/package/hostboot/hostboot-0017-Fix-I2C-Reset-to-resolve-I2C-Bus-Arbitration-Lost-Er.patch
deleted file mode 100644
index 757f701..0000000
--- a/openpower/package/hostboot/hostboot-0017-Fix-I2C-Reset-to-resolve-I2C-Bus-Arbitration-Lost-Er.patch
+++ /dev/null
@@ -1,306 +0,0 @@
-From 3f630837040bae961612214307d2903e65af9e5d Mon Sep 17 00:00:00 2001
-From: Mike Baiocchi <baiocchi@us.ibm.com>
-Date: Thu, 2 Apr 2015 13:42:00 -0500
-Subject: [PATCH 05/10] Fix I2C Reset to resolve I2C Bus Arbitration Lost
- Errors
-
-This commit fixes 2 bugs where the full "Force Reset and Unlock"
-I2C reset procedure used to both avoid and recover from I2C Bus
-Arbitration Lost errors was not being performed correctly on any
-ports but port 0.
-
-Change-Id: Ie967d81917e9b942d5cb516856075ebdb5029487
-CQ: SW297864
-(cherry picked from commit 01ee7107170c867d25af2485b75307e3bfa87339)
----
- src/include/usr/i2c/i2creasoncodes.H |   1 +
- src/usr/i2c/i2c.C                    | 182 ++++++++++++++++++++++++-----------
- src/usr/i2c/i2c.H                    |   4 +-
- 3 files changed, 130 insertions(+), 57 deletions(-)
-
-diff --git a/src/include/usr/i2c/i2creasoncodes.H b/src/include/usr/i2c/i2creasoncodes.H
-index a63e8d5..454ef15 100644
---- a/src/include/usr/i2c/i2creasoncodes.H
-+++ b/src/include/usr/i2c/i2creasoncodes.H
-@@ -58,6 +58,7 @@ enum i2cModuleId
-     I2C_SETUP_MASTERS                   = 0x08,
-     I2C_SEND_SLAVE_STOP                 = 0x09,
-     I2C_PROCESS_ACTIVE_MASTERS          = 0x0A,
-+    I2C_FORCE_RESET_AND_UNLOCK          = 0x0B,
- };
- 
- 
-diff --git a/src/usr/i2c/i2c.C b/src/usr/i2c/i2c.C
-index bc4bb7b..ee7e5e3 100755
---- a/src/usr/i2c/i2c.C
-+++ b/src/usr/i2c/i2c.C
-@@ -1925,6 +1925,11 @@ errlHndl_t i2cForceResetAndUnlock( TARGETING::Target * i_target,
- {
- 
-     errlHndl_t err = NULL;
-+    mode_reg_t mode;
-+    uint64_t l_speed = I2C_BUS_SPEED_FROM_MRW;
-+
-+    // I2C Bus Speed Array
-+    TARGETING::ATTR_I2C_BUS_SPEED_ARRAY_type speed_array;
- 
-     TRACDCOMP( g_trac_i2c,
-                ENTER_MRK"i2cForceResetAndUnlock()" );
-@@ -1932,62 +1937,122 @@ errlHndl_t i2cForceResetAndUnlock( TARGETING::Target * i_target,
-     do
-     {
- 
--        // enable diagnostic mode
--        // set bit in mode register
--        mode_reg_t diagnostic;
--
--        diagnostic.diag_mode = 0x1;
--
--        err = i2cRegisterOp( DeviceFW::WRITE,
--                             i_target,
--                             &diagnostic.value,
--                             I2C_REG_MODE,
--                             i_args );
--
--        if( err )
-+        // Get I2C Bus Speed Array attribute.  It will be used to determine
-+        // which engine/port combinations have devices on them
-+        if (  !( i_target->tryGetAttr<TARGETING::ATTR_I2C_BUS_SPEED_ARRAY>
-+                                          (speed_array) ) )
-         {
-             TRACFCOMP( g_trac_i2c,
--                       ERR_MRK"I2C Enable Diagnostic mode Failed!!" );
-+                       ERR_MRK"i2cForceResetAndUnlock() - Cannot find "
-+                       "ATTR_I2C_BUS_SPEED_ARRAY needed for operation");
-+            /*@
-+             * @errortype
-+             * @reasoncode     I2C_ATTRIBUTE_NOT_FOUND
-+             * @severity       ERRORLOG_SEV_UNRECOVERABLE
-+             * @moduleid       I2C_FORCE_RESET_AND_UNLOCK
-+             * @userdata1      Target for the attribute
-+             * @userdata2      <UNUSED>
-+             * @devdesc        ATTR_I2C_BUS_SPEED_ARRAY not found
-+             * @custdesc       I2C configuration data missing
-+             */
-+            err = new ERRORLOG::ErrlEntry( ERRORLOG::ERRL_SEV_UNRECOVERABLE,
-+                                           I2C_FORCE_RESET_AND_UNLOCK,
-+                                           I2C_ATTRIBUTE_NOT_FOUND,
-+                                           TARGETING::get_huid(i_target),
-+                                           0x0,
-+                                           true /*Add HB SW Callout*/ );
-+
-+            err->collectTrace( I2C_COMP_NAME, 256);
-+
-             break;
-         }
- 
-+        // Need to send slave stop to all ports with a device on the engine
-+        for( uint32_t port = 0; port < P8_MASTER_PORTS; port++ )
-+        {
- 
--        //toggle clock line
--        err = i2cToggleClockLine( i_target,
--                                  i_args );
-+            // Only send stop to a port if there are devices on it
-+            l_speed = speed_array[i_args.engine][port];
-+            if ( l_speed == 0 )
-+            {
-+                continue;
-+            }
- 
--        if( err )
--        {
--            break;
--        }
-+            TRACUCOMP( g_trac_i2c,
-+                       INFO_MRK"i2cForceResetAndUnlock() - Performing op on "
-+                       "engine=%d, port=%d",
-+                       i_args.engine, port);
- 
--        //manually send stop signal
--        err = i2cSendStopSignal( i_target,
--                                  i_args );
-+            // Clear mode register
-+            mode.value = 0x0ull;
- 
--        if( err )
--        {
--            break;
--        }
-+            // set port in mode register
-+            mode.port_num = port;
- 
--        //disable diagnostic mode
--        //set bit in mode register
--        diagnostic.diag_mode = 0x0;
-+            // enable diagnostic mode in mode register
-+            mode.diag_mode = 0x1;
- 
--        err = i2cRegisterOp( DeviceFW::WRITE,
--                             i_target,
--                             &diagnostic.value,
--                             I2C_REG_MODE,
--                             i_args );
-+            err = i2cRegisterOp( DeviceFW::WRITE,
-+                                 i_target,
-+                                 &mode.value,
-+                                 I2C_REG_MODE,
-+                                 i_args );
- 
-+            if( err )
-+            {
-+                TRACFCOMP( g_trac_i2c,
-+                           ERR_MRK"I2C Enable Diagnostic mode Failed!!" );
- 
--        if( err )
--        {
--            TRACFCOMP( g_trac_i2c,
--                       ERR_MRK"I2C disable Diagnostic mode Failed!!" );
--            break;
--        }
- 
-+                // We still need to reset the other ports on this I2C engine
-+                errlCommit( err, I2C_COMP_ID );
-+                continue;
-+            }
-+
-+
-+            //toggle clock line
-+            err = i2cToggleClockLine( i_target,
-+                                      i_args );
-+
-+            if( err )
-+            {
-+                // We still need to reset the other ports on this I2C engine
-+                errlCommit( err, I2C_COMP_ID );
-+                continue;
-+            }
-+
-+            //manually send stop signal
-+            err = i2cSendStopSignal( i_target,
-+                                     i_args );
-+
-+            if( err )
-+            {
-+                // We still need to reset the other ports on this I2C engine
-+                errlCommit( err, I2C_COMP_ID );
-+                continue;
-+            }
-+
-+            // disable diagnostic mode in mode register
-+            mode.diag_mode = 0x0;
-+
-+            err = i2cRegisterOp( DeviceFW::WRITE,
-+                                 i_target,
-+                                 &mode.value,
-+                                 I2C_REG_MODE,
-+                                 i_args );
-+
-+
-+            if( err )
-+            {
-+                TRACFCOMP( g_trac_i2c,
-+                           ERR_MRK"I2C disable Diagnostic mode Failed!!" );
-+                // We still need to reset the other ports on this I2C engine
-+                errlCommit( err, I2C_COMP_ID );
-+                continue;
-+            }
-+
-+
-+        } // end of port for loop
- 
-     }while(0);
- 
-@@ -2036,8 +2101,10 @@ errlHndl_t i2cReset ( TARGETING::Target * i_target,
- 
-             if( err )
-             {
--                //error trying to force a reset break
--                break;
-+                // We still want to send the slave stop command since the
-+                // initial reset completed above.
-+                // So just commit the log here and let the function continue.
-+                errlCommit( err, I2C_COMP_ID );
-             }
-         }
- 
-@@ -2114,13 +2181,6 @@ errlHndl_t i2cSendSlaveStop ( TARGETING::Target * i_target,
-         // Need to send slave stop to all ports with a device on the engine
-         for( uint32_t port = 0; port < P8_MASTER_PORTS; port++ )
-         {
--            // Only do port 0 for FSI I2C
--            if ( ( i_args.switches.useFsiI2C == 1 ) &&
--                 ( port != 0 ) )
--            {
--                break;
--            }
--
-             // Only send stop to a port if there are devices on it
-             l_speed = speed_array[i_args.engine][port];
-             if ( l_speed == 0 )
-@@ -2139,7 +2199,10 @@ errlHndl_t i2cSendSlaveStop ( TARGETING::Target * i_target,
-                                        i_args );
-             if( err )
-             {
--                break;
-+                // We still need to send the slave stop to the other ports
-+                // on this I2C engine
-+                errlCommit( err, I2C_COMP_ID );
-+                continue;
-             }
- 
-             mode.bit_rate_div = i_args.bit_rate_divisor;
-@@ -2156,7 +2219,10 @@ errlHndl_t i2cSendSlaveStop ( TARGETING::Target * i_target,
- 
-             if( err )
-             {
--                break;
-+                // We still need to send the slave stop to the other ports
-+                // on this I2C engine
-+                errlCommit( err, I2C_COMP_ID );
-+                continue;
-             }
- 
-             cmd.value = 0x0ull;
-@@ -2174,7 +2240,10 @@ errlHndl_t i2cSendSlaveStop ( TARGETING::Target * i_target,
- 
-             if( err )
-             {
--                break;
-+                // We still need to send the slave stop to the other ports
-+                // on this I2C engine
-+                errlCommit( err, I2C_COMP_ID );
-+                continue;
-             }
- 
-             // Now wait for cmd Complete
-@@ -2183,7 +2252,10 @@ errlHndl_t i2cSendSlaveStop ( TARGETING::Target * i_target,
- 
-             if( err )
-             {
--                break;
-+                // We still need to send the slave stop to the other ports
-+                // on this I2C engine
-+                errlCommit( err, I2C_COMP_ID );
-+                continue;
-             }
- 
-         } // end of port for-loop
-diff --git a/src/usr/i2c/i2c.H b/src/usr/i2c/i2c.H
-index c3e5278..4a74663 100755
---- a/src/usr/i2c/i2c.H
-+++ b/src/usr/i2c/i2c.H
-@@ -723,8 +723,8 @@ errlHndl_t i2cSendStopSignal(TARGETING::Target * i_target,
- 
- /**
-  * @brief This function will reset the I2C Master engine specified
-- *      by the args.  It will also then initiate a Stop cmd to the
-- *      slave device.
-+ *      by the args.  It will also end the sequence by initiating a Stop
-+ *      cmd to all ports on the engine that have a slave device.
-  *
-  * @param[in] i_target - The I2C master target.
-  *
--- 
-1.8.2.2
-
diff --git a/openpower/package/hostboot/hostboot-0018-Fix-constant-refresh-of-vpd-cache.patch b/openpower/package/hostboot/hostboot-0018-Fix-constant-refresh-of-vpd-cache.patch
deleted file mode 100644
index ac16f09..0000000
--- a/openpower/package/hostboot/hostboot-0018-Fix-constant-refresh-of-vpd-cache.patch
+++ /dev/null
@@ -1,116 +0,0 @@
-From 5f06da05527c3ef2d9ee709e912c5840eb366e87 Mon Sep 17 00:00:00 2001
-From: Dan Crowell <dcrowell@us.ibm.com>
-Date: Thu, 2 Apr 2015 12:29:45 -0500
-Subject: [PATCH 04/10] Fix constant refresh of vpd cache
-
-Code was inadvertantly detecting mismatched pnor cache contents
-on every boot.
-
-Change-Id: I631dc758e03316a28d13f6d19032c1a76e3cffc1
-(cherry picked from commit 0d95414e03ff337404a3e20fd421fd8b4272ebc5)
----
- src/usr/vpd/ipvpd.C | 18 ++++++++++++------
- src/usr/vpd/ipvpd.H |  5 ++++-
- src/usr/vpd/vpd.C   |  2 +-
- 3 files changed, 17 insertions(+), 8 deletions(-)
-
-diff --git a/src/usr/vpd/ipvpd.C b/src/usr/vpd/ipvpd.C
-index a0682d2..2cefb6e 100644
---- a/src/usr/vpd/ipvpd.C
-+++ b/src/usr/vpd/ipvpd.C
-@@ -397,6 +397,9 @@ errlHndl_t IpVpdFacade::cmpPnorToSeeprom ( TARGETING::Target * i_target,
-                     l_dataSeeprom,
-                     l_sizePnor ) != 0 )
-         {
-+            TRACFCOMP( g_trac_vpd, "cmpPnorToSeeprom found mismatch for HUID %.8X 0x%X:0x%X", TARGETING::get_huid(i_target), i_record, i_keyword );
-+            TRACFBIN( g_trac_vpd, "EEPROM", l_dataSeeprom, l_sizeSeeprom );
-+            TRACFBIN( g_trac_vpd, "PNOR", l_dataPnor, l_sizePnor );
-             break;
-         }
- 
-@@ -898,8 +901,9 @@ bool IpVpdFacade::hasVpdPresent( TARGETING::Target * i_target,
-         }
- 
-         vpdPresent = recordPresent( recordName,
--                                recordOffset,
--                                i_target );
-+                                    recordOffset,
-+                                    i_target,
-+                                    VPD::AUTOSELECT );
- 
-     }while( 0 );
- 
-@@ -918,7 +922,8 @@ bool IpVpdFacade::hasVpdPresent( TARGETING::Target * i_target,
- // ------------------------------------------------------------------
- bool IpVpdFacade::recordPresent( const char * i_record,
-                                  uint16_t & o_offset,
--                                 TARGETING::Target * i_target )
-+                                 TARGETING::Target * i_target,
-+                                 VPD::vpdCmdTarget i_location )
- {
-     errlHndl_t err = NULL;
-     uint64_t tmpOffset = 0x0;
-@@ -946,7 +951,7 @@ bool IpVpdFacade::recordPresent( const char * i_record,
-                              RECORD_BYTE_SIZE,
-                              record,
-                              i_target,
--                             VPD::AUTOSELECT );
-+                             i_location );
-             tmpOffset += RECORD_BYTE_SIZE;
- 
-             if( err )
-@@ -963,7 +968,7 @@ bool IpVpdFacade::recordPresent( const char * i_record,
-                                  RECORD_ADDR_BYTE_SIZE,
-                                  &o_offset,
-                                  i_target,
--                                 VPD::AUTOSELECT );
-+                                 i_location );
-                 if( err )
-                 {
-                     break;
-@@ -1003,7 +1008,8 @@ errlHndl_t IpVpdFacade::findRecordOffsetPnor ( const char * i_record,
- 
-     matchFound = recordPresent( i_record,
-                                 offset,
--                                i_target );
-+                                i_target,
-+                                i_args.location );
- 
-     if( !matchFound )
-     {
-diff --git a/src/usr/vpd/ipvpd.H b/src/usr/vpd/ipvpd.H
-index 2350bdd..7c2090c 100644
---- a/src/usr/vpd/ipvpd.H
-+++ b/src/usr/vpd/ipvpd.H
-@@ -353,11 +353,14 @@ class IpVpdFacade
-      *
-      * @param[in] i_target - The target to retrieve the data for.
-      *
-+     * @param[in] i_location - VPD location to fetch data from (PNOR/SEEPROM)
-+     *
-      * @return bool - True if the record is found, False otherwise.
-      */
-     bool recordPresent( const char * i_record,
-                         uint16_t & offset,
--                        TARGETING::Target * i_target );
-+                        TARGETING::Target * i_target,
-+                        VPD::vpdCmdTarget i_location );
- 
-     /**
-      * @brief This function will read the VPD TOC to find the offset where the
-diff --git a/src/usr/vpd/vpd.C b/src/usr/vpd/vpd.C
-index 3533af9..963025f 100755
---- a/src/usr/vpd/vpd.C
-+++ b/src/usr/vpd/vpd.C
-@@ -533,7 +533,7 @@ errlHndl_t ensureCacheIsInSync ( TARGETING::Target * i_target )
-         // If we did not match, we need to load SEEPROM VPD data into PNOR
-         if( l_matchPN && l_matchSN )
-         {
--            TRACFCOMP(g_trac_vpd,"VPD::ensureCacheIsInSync: PNOR_PN/SN = SEEPROM_PN/SN for target %.8X",TARGETING::get_huid(i_target));
-+            TRACFCOMP(g_trac_vpd,"VPD::ensureCacheIsInSync: PNOR_PN/SN == SEEPROM_PN/SN for target %.8X",TARGETING::get_huid(i_target));
-         }
-         else
-         {
--- 
-1.8.2.2
-
diff --git a/openpower/package/hostboot/hostboot.mk b/openpower/package/hostboot/hostboot.mk
index 478f3ed..83aae71 100644
--- a/openpower/package/hostboot/hostboot.mk
+++ b/openpower/package/hostboot/hostboot.mk
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-HOSTBOOT_VERSION ?= bda236e6e0c7d3aa5165160abbd5ead92ac0a68e
+HOSTBOOT_VERSION ?= 70b5e31d74487d51e69a0e0a390adea6b4f32dc5
 HOSTBOOT_SITE ?= $(call github,open-power,hostboot,$(HOSTBOOT_VERSION))
 
 HOSTBOOT_LICENSE = Apache-2.0
diff --git a/openpower/package/occ/occ.mk b/openpower/package/occ/occ.mk
index 5f601bf..1a0b636 100644
--- a/openpower/package/occ/occ.mk
+++ b/openpower/package/occ/occ.mk
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-OCC_VERSION ?= cc8376d863afd715ea13346d5841610a9fad1bd2
+OCC_VERSION ?= 19678d6a7dd078e3206bac6f1d5e3cf03008542b
 OCC_SITE ?= $(call github,open-power,occ,$(OCC_VERSION))
 OCC_LICENSE = Apache-2.0
 OCC_DEPENDENCIES = host-binutils host-p8-pore-binutils
diff --git a/openpower/package/openpower-pnor/Config.in b/openpower/package/openpower-pnor/Config.in
index 8815490..6a23e51 100644
--- a/openpower/package/openpower-pnor/Config.in
+++ b/openpower/package/openpower-pnor/Config.in
@@ -24,6 +24,11 @@
         help
             String used to define pnor filename to be created
 
+config BR2_OPENPOWER_PNOR_UPDATE_FILENAME
+        string "Name of pnor file to be created for updates, if needed"
+        help
+            String used to define pnor filename to be created for updates, if needed
+
 config BR2_SKIBOOT_LID_NAME
         string "Name of skiboot lid name to be used"
         default "skiboot.lid"
diff --git a/openpower/package/openpower-pnor/openpower-pnor.mk b/openpower/package/openpower-pnor/openpower-pnor.mk
index d19e95d..fb7e230 100644
--- a/openpower/package/openpower-pnor/openpower-pnor.mk
+++ b/openpower/package/openpower-pnor/openpower-pnor.mk
@@ -68,6 +68,13 @@
             -openpower_version_filename $(OPENPOWER_PNOR_VERSION_FILE)
 
         $(INSTALL) $(STAGING_DIR)/pnor/$(BR2_OPENPOWER_PNOR_FILENAME) $(BINARIES_DIR)
+
+        # if this config has an UPDATE_FILENAME defined, create a 32M (1/2 size)
+        # image that only updates the non-golden side
+        if [ "$(BR2_OPENPOWER_PNOR_UPDATE_FILENAME)" != "" ]; then \
+            dd if=$(STAGING_DIR)/pnor/$(BR2_OPENPOWER_PNOR_FILENAME) of=$(STAGING_DIR)/pnor/$(BR2_OPENPOWER_PNOR_UPDATE_FILENAME) bs=32M count=1; \
+            $(INSTALL) $(STAGING_DIR)/pnor/$(BR2_OPENPOWER_PNOR_UPDATE_FILENAME) $(BINARIES_DIR); \
+        fi
 endef
 
 $(eval $(generic-package))
diff --git a/openpower/package/palmetto-xml/palmetto-xml-0001-Revert-Merge-pull-request-12-from-open-power-bofferd.patch b/openpower/package/palmetto-xml/palmetto-xml-0001-Revert-Merge-pull-request-12-from-open-power-bofferd.patch
deleted file mode 100644
index 1eea695..0000000
--- a/openpower/package/palmetto-xml/palmetto-xml-0001-Revert-Merge-pull-request-12-from-open-power-bofferd.patch
+++ /dev/null
@@ -1,84 +0,0 @@
-From 55eae8d646b3c95df32b67ef8d67887581f94fa0 Mon Sep 17 00:00:00 2001
-From: Bill Hoffa <wghoffa@us.ibm.com>
-Date: Tue, 31 Mar 2015 08:15:06 -0500
-Subject: [PATCH] Revert "Merge pull request #12 from
- open-power/bofferdn-pal-loadline"
-
-This reverts commit dbe13549a81c15c81e1fbd2d3de80ea91dd20503, reversing
-changes made to 167ded68387aa69fabb28e6cafaa6ae4bf165a40.
-
-Conflicts:
-	palmetto.xml
----
- palmetto.xml | 48 ++++++++++++++++++++++++------------------------
- 1 file changed, 24 insertions(+), 24 deletions(-)
-
-diff --git a/palmetto.xml b/palmetto.xml
-index 6df6652..89669ab 100644
---- a/palmetto.xml
-+++ b/palmetto.xml
-@@ -2854,6 +2854,30 @@
- 		<default>1</default>
- 	</attribute>
- 	<attribute>
-+		<id>PROC_R_DISTLOSS_VCS</id>
-+		<default></default>
-+	</attribute>
-+	<attribute>
-+		<id>PROC_R_DISTLOSS_VDD</id>
-+		<default></default>
-+	</attribute>
-+	<attribute>
-+		<id>PROC_R_LOADLINE_VCS</id>
-+		<default></default>
-+	</attribute>
-+	<attribute>
-+		<id>PROC_R_LOADLINE_VDD</id>
-+		<default></default>
-+	</attribute>
-+	<attribute>
-+		<id>PROC_VRM_VOFFSET_VCS</id>
-+		<default></default>
-+	</attribute>
-+	<attribute>
-+		<id>PROC_VRM_VOFFSET_VDD</id>
-+		<default></default>
-+	</attribute>
-+	<attribute>
- 		<id>PROC_X_BUS_WIDTH</id>
- 		<default>2</default>
- 	</attribute>
-@@ -3735,30 +3759,6 @@
- 		<default>0</default>
- 	</attribute>
- 	<attribute>
--		<id>PROC_R_DISTLOSS_VCS</id>
--		<default></default>
--	</attribute>
--	<attribute>
--		<id>PROC_R_DISTLOSS_VDD</id>
--		<default></default>
--	</attribute>
--	<attribute>
--		<id>PROC_R_LOADLINE_VCS</id>
--		<default></default>
--	</attribute>
--	<attribute>
--		<id>PROC_R_LOADLINE_VDD</id>
--		<default></default>
--	</attribute>
--	<attribute>
--		<id>PROC_VRM_VOFFSET_VCS</id>
--		<default></default>
--	</attribute>
--	<attribute>
--		<id>PROC_VRM_VOFFSET_VDD</id>
--		<default></default>
--	</attribute>
--	<attribute>
- 		<id>PSI_BRIDGE_BASE_ADDR</id>
- 		<default>0,0x0000000000000000</default>
- 	</attribute>
--- 
-1.8.2.2
-
diff --git a/openpower/package/pkg-versions.mk b/openpower/package/pkg-versions.mk
index 3ac8c9f..e3acbda 100644
--- a/openpower/package/pkg-versions.mk
+++ b/openpower/package/pkg-versions.mk
@@ -184,7 +184,6 @@
 		@cat $$($$(UPPER_CASE_PKG)_VERSION_FILE)
 		@echo ""; echo "**See openpower/package/VERSION.readme for detailed info on package strings"; echo ""
 
-
 # Rule to generate pnor version
 $(1)-build-version: $$(foreach pkg,$$(OPENPOWER_VERSIONED_SUBPACKAGES), $$(pkg)-version)
 		@$$($$(UPPER_CASE_PKG)_OPENPOWER_VERSION_FILE)
@@ -192,4 +191,11 @@
 		@cat $$($$(UPPER_CASE_PKG)_VERSION_FILE)
 		@echo ""; echo "**See openpower/package/VERSION.readme for detailed info on package strings"; echo ""
 
+# Rule to force re-generation of all versioned subpackages
+$(1)-build-version-all: $$(foreach pkg,$$(OPENPOWER_VERSIONED_SUBPACKAGES), $$(pkg)-build-version)
+		@$$($$(UPPER_CASE_PKG)_OPENPOWER_VERSION_FILE)
+		@echo "=== $$(UPPER_CASE_PKG)_VERSION ==="
+		@cat $$($$(UPPER_CASE_PKG)_VERSION_FILE)
+		@echo ""; echo "**See openpower/package/VERSION.readme for detailed info on package strings"; echo ""
+
 endef
diff --git a/openpower/package/skiboot/skiboot-0002-prd-Only-alter-host-presentation-bits-of-IPOLL-mask.patch b/openpower/package/skiboot/skiboot-0002-prd-Only-alter-host-presentation-bits-of-IPOLL-mask.patch
new file mode 100644
index 0000000..68a4cbd
--- /dev/null
+++ b/openpower/package/skiboot/skiboot-0002-prd-Only-alter-host-presentation-bits-of-IPOLL-mask.patch
@@ -0,0 +1,47 @@
+diff --git a/hw/prd.c b/hw/prd.c
+index e65ae57..4862213 100644
+--- a/hw/prd.c
++++ b/hw/prd.c
+@@ -226,12 +226,13 @@ static int ipoll_record_and_mask_pending(uint32_t proc)
+ 
+ 	lock(&ipoll_lock);
+ 	rc = xscom_read(proc, PRD_IPOLL_REG_STATUS, &status);
++	status &= PRD_IPOLL_MASK;
+ 	if (!rc)
+ 		__ipoll_update_mask(proc, true, status);
+ 	unlock(&ipoll_lock);
+ 
+ 	if (!rc)
+-		ipoll_status[proc] |= (status & PRD_IPOLL_MASK);
++		ipoll_status[proc] |= status;
+ 
+ 	return rc;
+ }
+@@ -284,7 +285,8 @@ static int prd_msg_handle_init(struct opal_prd_msg *msg)
+ 
+ 	lock(&ipoll_lock);
+ 	for_each_chip(chip) {
+-		__ipoll_update_mask(chip->id, false, msg->init.ipoll);
++		__ipoll_update_mask(chip->id, false,
++			msg->init.ipoll & PRD_IPOLL_MASK);
+ 	}
+ 	unlock(&ipoll_lock);
+ 
+@@ -309,7 +311,7 @@ static int prd_msg_handle_fini(void)
+ 
+ 	lock(&ipoll_lock);
+ 	for_each_chip(chip) {
+-		__ipoll_update_mask(chip->id, true, -1ul);
++		__ipoll_update_mask(chip->id, true, PRD_IPOLL_MASK);
+ 	}
+ 	unlock(&ipoll_lock);
+ 
+@@ -345,7 +347,7 @@ void prd_init(void)
+ 	/* mask everything */
+ 	lock(&ipoll_lock);
+ 	for_each_chip(chip) {
+-		__ipoll_update_mask(chip->id, true, -1ul);
++		__ipoll_update_mask(chip->id, true, PRD_IPOLL_MASK);
+ 	}
+ 	unlock(&ipoll_lock);
+ 
diff --git a/openpower/package/skiboot/skiboot.mk b/openpower/package/skiboot/skiboot.mk
index 0a95c63..3b4ad1a 100644
--- a/openpower/package/skiboot/skiboot.mk
+++ b/openpower/package/skiboot/skiboot.mk
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-SKIBOOT_VERSION = 5dea3e71fc7fd13d7a2aeb966d78043b74227394
+SKIBOOT_VERSION = skiboot-5.0-rc3
 SKIBOOT_SITE = $(call github,open-power,skiboot,$(SKIBOOT_VERSION))
 SKIBOOT_INSTALL_IMAGES = YES
 SKIBOOT_INSTALL_TARGET = NO