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