summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatt Derksen <mderkse1@us.ibm.com>2019-03-15 16:33:27 -0500
committerDaniel M. Crowell <dcrowell@us.ibm.com>2019-04-18 16:34:18 -0500
commit16cf78fed03ff0426cd7885c935a711541f329a1 (patch)
tree398e8f2682cbdf5dfb129cd987d2142779eecebb
parent625a082c5e39460925c868a6ae27233fecc029dd (diff)
downloadtalos-hostboot-16cf78fed03ff0426cd7885c935a711541f329a1.tar.gz
talos-hostboot-16cf78fed03ff0426cd7885c935a711541f329a1.zip
Add new PMIC target for Axone
PMIC is a voltage regulator for the DDIMM. It supplies power to the OCMB and DIMM targets. Change-Id: I10c1b03169f53b070f521ec9cd60cdbd15c4a268 RTC:206184 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/75136 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com> Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins OP HW <op-hw-jenkins+hostboot@us.ibm.com> Reviewed-by: Glenn Miles <milesg@ibm.com> Reviewed-by: Christian R. Geddes <crgeddes@us.ibm.com> Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
-rw-r--r--src/usr/hwas/common/hwas.C4
-rwxr-xr-xsrc/usr/i2c/i2c.C123
-rw-r--r--src/usr/i2c/i2cTargetPres.C6
-rw-r--r--src/usr/targeting/common/entitypath.C4
-rw-r--r--src/usr/targeting/common/xmltohb/attribute_types.xml6
-rw-r--r--src/usr/targeting/common/xmltohb/simics_AXONE.system.xml728
-rw-r--r--src/usr/targeting/common/xmltohb/target_types.xml48
7 files changed, 864 insertions, 55 deletions
diff --git a/src/usr/hwas/common/hwas.C b/src/usr/hwas/common/hwas.C
index f48b80e94..45a88cf85 100644
--- a/src/usr/hwas/common/hwas.C
+++ b/src/usr/hwas/common/hwas.C
@@ -640,12 +640,14 @@ errlHndl_t discoverTargets()
PredicateCTM predChip(CLASS_CHIP);
PredicateCTM predDimm(CLASS_LOGICAL_CARD, TYPE_DIMM);
PredicateCTM predMcs(CLASS_UNIT, TYPE_MCS);
+ PredicateCTM predPmic(CLASS_ASIC, TYPE_PMIC);
// We can ignore chips of TYPE_I2C_MUX because they
// were already detected above in discoverMuxTargetsAndEnable
PredicateCTM predMux(CLASS_CHIP, TYPE_I2C_MUX);
PredicatePostfixExpr checkExpr;
checkExpr.push(&predChip).push(&predDimm).Or().push(&predEnc).Or().
- push(&predMcs).Or().push(&predMux).Not().And();
+ push(&predMcs).Or().push(&predPmic).Or().
+ push(&predMux).Not().And();
TargetHandleList pCheckPres;
targetService().getAssociated( pCheckPres, pSys,
diff --git a/src/usr/i2c/i2c.C b/src/usr/i2c/i2c.C
index ff8629010..63b579202 100755
--- a/src/usr/i2c/i2c.C
+++ b/src/usr/i2c/i2c.C
@@ -1134,7 +1134,8 @@ void i2cSetSwitches( TARGETING::Target * i_target,
// i2cGetI2cMuxTarget
// ------------------------------------------------------------------
errlHndl_t i2cGetI2cMuxTarget ( const TARGETING::EntityPath & i_i2cMuxPath,
- TARGETING::Target * &o_target )
+ TARGETING::Target * &o_target,
+ bool i_noError )
{
errlHndl_t l_err(nullptr);
@@ -1155,34 +1156,37 @@ errlHndl_t i2cGetI2cMuxTarget ( const TARGETING::EntityPath & i_i2cMuxPath,
if ( nullptr == o_target )
{
- TRACFCOMP( g_trac_i2c,
- ERR_MRK "i2cGetI2cMuxTarget() - I2C MUX Entity Path (%s)"
- " could not be converted to a target.",
- l_muxPath );
+ if (!i_noError)
+ {
+ TRACFCOMP( g_trac_i2c,
+ ERR_MRK "i2cGetI2cMuxTarget() - I2C MUX Entity Path (%s)"
+ " could not be converted to a target.",
+ l_muxPath );
- /*@
- * @errortype
- * @reasoncode I2C_MUX_TARGET_NOT_FOUND
- * @severity ERRORLOG::ERRL_SEV_UNRECOVERABLE
- * @moduleid I2C_ACCESS_MUX
- * @devdesc I2C mux path target is null
- * @custdesc Unexpected boot firmware error
- */
- l_err = new ERRORLOG::ErrlEntry(
- ERRORLOG::ERRL_SEV_UNRECOVERABLE,
- I2C_ACCESS_MUX,
- I2C_MUX_TARGET_NOT_FOUND,
- 0,
- 0,
- ERRORLOG::ErrlEntry::ADD_SW_CALLOUT );
+ /*@
+ * @errortype
+ * @reasoncode I2C_MUX_TARGET_NOT_FOUND
+ * @severity ERRORLOG::ERRL_SEV_UNRECOVERABLE
+ * @moduleid I2C_ACCESS_MUX
+ * @devdesc I2C mux path target is null
+ * @custdesc Unexpected boot firmware error
+ */
+ l_err = new ERRORLOG::ErrlEntry(
+ ERRORLOG::ERRL_SEV_UNRECOVERABLE,
+ I2C_ACCESS_MUX,
+ I2C_MUX_TARGET_NOT_FOUND,
+ 0,
+ 0,
+ ERRORLOG::ErrlEntry::ADD_SW_CALLOUT );
- // Collect the MUX entity path info
- ERRORLOG::ErrlUserDetailsString(l_muxPath).addToLog(l_err);
+ // Collect the MUX entity path info
+ ERRORLOG::ErrlUserDetailsString(l_muxPath).addToLog(l_err);
- l_err->collectTrace( I2C_COMP_NAME, 256);
+ l_err->collectTrace( I2C_COMP_NAME, 256);
- break;
+ break;
+ }
}
// Is the target functional
@@ -1192,31 +1196,34 @@ errlHndl_t i2cGetI2cMuxTarget ( const TARGETING::EntityPath & i_i2cMuxPath,
!l_hwasState.present ||
!l_hwasState.functional )
{
- TRACFCOMP( g_trac_i2c,
- ERR_MRK "i2cGetI2cMuxTarget() - I2C MUX target (0x%X) "
- "is non functional.",
- TARGETING::get_huid(o_target) );
- /*@
- * @errortype
- * @reasoncode I2C_MUX_TARGET_NON_FUNCTIONAL
- * @severity ERRORLOG::ERRL_SEV_UNRECOVERABLE
- * @moduleid I2C_ACCESS_MUX
- * @userdata1 I2C MUX Target Huid
- * @devdesc I2C mux path target is not functional
- * @custdesc Unexpected boot firmware error
- */
- l_err = new ERRORLOG::ErrlEntry(
- ERRORLOG::ERRL_SEV_UNRECOVERABLE,
- I2C_ACCESS_MUX,
- I2C_MUX_TARGET_NON_FUNCTIONAL,
- TARGETING::get_huid(o_target),
- 0,
- ERRORLOG::ErrlEntry::ADD_SW_CALLOUT );
-
- // Collect the MUX entity path info
- ERRORLOG::ErrlUserDetailsString(l_muxPath).addToLog(l_err);
-
- l_err->collectTrace( I2C_COMP_NAME, 256);
+ if (!i_noError)
+ {
+ TRACFCOMP( g_trac_i2c,
+ ERR_MRK "i2cGetI2cMuxTarget() - I2C MUX target (0x%X) "
+ "is non functional.",
+ TARGETING::get_huid(o_target) );
+ /*@
+ * @errortype
+ * @reasoncode I2C_MUX_TARGET_NON_FUNCTIONAL
+ * @severity ERRORLOG::ERRL_SEV_UNRECOVERABLE
+ * @moduleid I2C_ACCESS_MUX
+ * @userdata1 I2C MUX Target Huid
+ * @devdesc I2C mux path target is not functional
+ * @custdesc Unexpected boot firmware error
+ */
+ l_err = new ERRORLOG::ErrlEntry(
+ ERRORLOG::ERRL_SEV_UNRECOVERABLE,
+ I2C_ACCESS_MUX,
+ I2C_MUX_TARGET_NON_FUNCTIONAL,
+ TARGETING::get_huid(o_target),
+ 0,
+ ERRORLOG::ErrlEntry::ADD_SW_CALLOUT );
+
+ // Collect the MUX entity path info
+ ERRORLOG::ErrlUserDetailsString(l_muxPath).addToLog(l_err);
+
+ l_err->collectTrace( I2C_COMP_NAME, 256);
+ }
// Don't return a non functional target
o_target = nullptr;
@@ -1264,7 +1271,7 @@ errlHndl_t i2cAccessMux( TARGETING::Target* i_masterTarget,
TARGETING::TargetHandle_t l_i2cMuxTarget(nullptr);
l_err = i2cGetI2cMuxTarget( i_i2cMuxPath,
- l_i2cMuxTarget);
+ l_i2cMuxTarget, false);
// If an issue getting the MUX target, then return error
if (l_err)
@@ -2278,6 +2285,22 @@ bool i2cPresence( TARGETING::Target * i_target,
// Set the MUX selector (if there is one) for the MUX before continuing
if (I2C_MUX::NOT_APPLICABLE != i_i2cMuxBusSelector)
{
+ // Check that Mux exists first
+ TARGETING::TargetHandle_t l_i2cMuxTarget(nullptr);
+
+ bool noError = true; // just return nullptr target if mux doesn't exist
+ err = i2cGetI2cMuxTarget( i_i2cMuxPath,
+ l_i2cMuxTarget,
+ noError );
+ if (err || (l_i2cMuxTarget == nullptr))
+ {
+ // exit early if mux does not exist
+ TRACFCOMP(g_trac_i2c,
+ ERR_MRK"i2cPresence() - XML appears to be wrong since "
+ "i2cMuxSelector 0x%02X != NOT_APPLICABLE for non-existent "
+ "I2C MUX target", i_i2cMuxBusSelector);
+ break;
+ }
err = i2cAccessMux(i_target, i_i2cMuxBusSelector, i_i2cMuxPath );
if ( err )
diff --git a/src/usr/i2c/i2cTargetPres.C b/src/usr/i2c/i2cTargetPres.C
index 5e7fb5d3b..c3809f099 100644
--- a/src/usr/i2c/i2cTargetPres.C
+++ b/src/usr/i2c/i2cTargetPres.C
@@ -295,4 +295,10 @@ DEVICE_REGISTER_ROUTE( DeviceFW::READ,
TARGETING::TYPE_I2C_MUX,
basicI2CPresencePerformOp );
+// Register the pmic vrm presence detect function with the device framework
+DEVICE_REGISTER_ROUTE( DeviceFW::READ,
+ DeviceFW::PRESENT,
+ TARGETING::TYPE_PMIC,
+ basicI2CPresencePerformOp );
+
}
diff --git a/src/usr/targeting/common/entitypath.C b/src/usr/targeting/common/entitypath.C
index ed81d1b4a..e7a13b81e 100644
--- a/src/usr/targeting/common/entitypath.C
+++ b/src/usr/targeting/common/entitypath.C
@@ -5,7 +5,7 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
-/* Contributors Listed Below - COPYRIGHT 2012,2018 */
+/* Contributors Listed Below - COPYRIGHT 2012,2019 */
/* [+] International Business Machines Corp. */
/* */
/* */
@@ -489,6 +489,8 @@ const char* EntityPath::pathElementTypeAsString(
// return "CFAM";
// case TYPE_ENGINE:
// return "Engine";
+ case TYPE_PMIC:
+ return "PMIC";
default:
return "Unknown path type";
}
diff --git a/src/usr/targeting/common/xmltohb/attribute_types.xml b/src/usr/targeting/common/xmltohb/attribute_types.xml
index d8df2230d..385644611 100644
--- a/src/usr/targeting/common/xmltohb/attribute_types.xml
+++ b/src/usr/targeting/common/xmltohb/attribute_types.xml
@@ -8146,9 +8146,13 @@
<value>77</value>
</enumerator>
<enumerator>
- <name>LAST_IN_RANGE</name>
+ <name>PMIC</name>
<value>78</value>
</enumerator>
+ <enumerator>
+ <name>LAST_IN_RANGE</name>
+ <value>79</value>
+ </enumerator>
<id>TYPE</id>
</enumerationType>
diff --git a/src/usr/targeting/common/xmltohb/simics_AXONE.system.xml b/src/usr/targeting/common/xmltohb/simics_AXONE.system.xml
index a5c60f943..157582ce6 100644
--- a/src/usr/targeting/common/xmltohb/simics_AXONE.system.xml
+++ b/src/usr/targeting/common/xmltohb/simics_AXONE.system.xml
@@ -43,6 +43,7 @@
* Each OMI unit connects to 1 OCMB chip
* Each OCMB unit contains 1 MEM_PORT unit
* Each MEM_PORT unit connects to 2 DIMMS (Only 1 dimm per mem_port in this XML)
+ * Each OCMB chip and its DIMMS are powered by 2 PMIC units
* Each MC unit has 3 OMIC units (a total of 12 per chip)
* Each OMIC unit contains 2 or 3 OMI Units (OMIC0/1/3/4 contain 3 and OMIC2/5 contain 2 for a total of 16 per chip)
* OMI Units are special as they have two parents (OMIC + MCC (described above))
@@ -8546,7 +8547,7 @@
<!-- OCMB_CHIP Units -->
<!-- ===================================================================== -->
<targetInstance>
- <id>sys0node0ocmb_chip0</id>
+ <id>sys0node0ocmb0</id>
<type>chip-ocmb-explorer</type>
<attribute>
<id>AFFINITY_PATH</id>
@@ -8612,7 +8613,7 @@
</targetInstance>
<targetInstance>
- <id>sys0node0ocmb_chip1</id>
+ <id>sys0node0ocmb1</id>
<type>chip-ocmb-explorer</type>
<attribute>
<id>AFFINITY_PATH</id>
@@ -9594,6 +9595,729 @@
</targetInstance>
<!-- ===================================================================== -->
+<!-- PMIC Units -->
+<!-- ===================================================================== -->
+<targetInstance>
+ <id>sys0node0pmic0</id>
+ <type>pmic</type>
+ <attribute>
+ <id>HUID</id>
+ <default>0x00360000</default>
+ </attribute>
+ <attribute>
+ <id>AFFINITY_PATH</id>
+ <default>affinity:sys-0/node-0/proc-0/mc-0/mi-0/mcc-0/omi-0/ocmb_chip-0/pmic-0</default>
+ </attribute>
+ <attribute>
+ <id>FAPI_NAME</id>
+ <default>pmic:k0:n0:s0:p00</default>
+ </attribute>
+ <attribute>
+ <id>FAPI_I2C_CONTROL_INFO</id>
+ <default>
+ <field><id>i2cMasterPath</id><value>physical:sys-0/node-0/proc-0</value></field>
+ <field><id>engine</id><value>3</value></field>
+ <field><id>port</id><value>0</value></field>
+ <field><id>devAddr</id><value>0x90</value></field>
+ <field><id>i2cMuxBusSelector</id><value>0x08</value></field>
+ <field><id>i2cMuxPath</id><value>physical:sys-0/node-0/i2c_mux-0</value></field>
+ </default>
+ </attribute>
+ <attribute>
+ <id>ORDINAL_ID</id>
+ <default>0</default>
+ </attribute>
+ <attribute>
+ <id>PHYS_PATH</id>
+ <default>physical:sys-0/node-0/pmic-0</default>
+ </attribute>
+ <attribute>
+ <id>REL_POS</id>
+ <default>0</default>
+ </attribute>
+</targetInstance>
+
+<targetInstance>
+ <id>sys0node0pmic1</id>
+ <type>pmic</type>
+ <attribute>
+ <id>HUID</id>
+ <default>0x00360001</default>
+ </attribute>
+ <attribute>
+ <id>AFFINITY_PATH</id>
+ <default>affinity:sys-0/node-0/proc-0/mc-0/mi-0/mcc-0/omi-0/ocmb_chip-0/pmic-1</default>
+ </attribute>
+ <attribute>
+ <id>FAPI_NAME</id>
+ <default>pmic:k0:n0:s0:p01</default>
+ </attribute>
+ <attribute>
+ <id>FAPI_I2C_CONTROL_INFO</id>
+ <default>
+ <field><id>i2cMasterPath</id><value>physical:sys-0/node-0/proc-0</value></field>
+ <field><id>engine</id><value>3</value></field>
+ <field><id>port</id><value>0</value></field>
+ <field><id>devAddr</id><value>0xC0</value></field>
+ <field><id>i2cMuxBusSelector</id><value>0x08</value></field>
+ <field><id>i2cMuxPath</id><value>physical:sys-0/node-0/i2c_mux-0</value></field>
+ </default>
+ </attribute>
+ <attribute>
+ <id>ORDINAL_ID</id>
+ <default>1</default>
+ </attribute>
+ <attribute>
+ <id>PHYS_PATH</id>
+ <default>physical:sys-0/node-0/pmic-1</default>
+ </attribute>
+ <attribute>
+ <id>REL_POS</id>
+ <default>1</default>
+ </attribute>
+</targetInstance>
+
+<targetInstance>
+ <id>sys0node0pmic2</id>
+ <type>pmic</type>
+ <attribute>
+ <id>HUID</id>
+ <default>0x00360002</default>
+ </attribute>
+ <attribute>
+ <id>AFFINITY_PATH</id>
+ <default>affinity:sys-0/node-0/proc-0/mc-0/mi-0/mcc-0/omi-1/ocmb_chip-0/pmic-0</default>
+ </attribute>
+ <attribute>
+ <id>FAPI_NAME</id>
+ <default>pmic:k0:n0:s0:p02</default>
+ </attribute>
+ <attribute>
+ <id>FAPI_I2C_CONTROL_INFO</id>
+ <default>
+ <field><id>i2cMasterPath</id><value>physical:sys-0/node-0/proc-0</value></field>
+ <field><id>engine</id><value>3</value></field>
+ <field><id>port</id><value>0</value></field>
+ <field><id>devAddr</id><value>0x90</value></field>
+ <field><id>i2cMuxBusSelector</id><value>0x09</value></field>
+ <field><id>i2cMuxPath</id><value>physical:sys-0/node-0/i2c_mux-0</value></field>
+ </default>
+ </attribute>
+ <attribute>
+ <id>ORDINAL_ID</id>
+ <default>2</default>
+ </attribute>
+ <attribute>
+ <id>PHYS_PATH</id>
+ <default>physical:sys-0/node-0/pmic-2</default>
+ </attribute>
+ <attribute>
+ <id>REL_POS</id>
+ <default>0</default>
+ </attribute>
+</targetInstance>
+
+<targetInstance>
+ <id>sys0node0pmic3</id>
+ <type>pmic</type>
+ <attribute>
+ <id>HUID</id>
+ <default>0x00360003</default>
+ </attribute>
+ <attribute>
+ <id>AFFINITY_PATH</id>
+ <default>affinity:sys-0/node-0/proc-0/mc-0/mi-0/mcc-0/omi-1/ocmb_chip-0/pmic-1</default>
+ </attribute>
+ <attribute>
+ <id>FAPI_NAME</id>
+ <default>pmic:k0:n0:s0:p03</default>
+ </attribute>
+ <attribute>
+ <id>FAPI_I2C_CONTROL_INFO</id>
+ <default>
+ <field><id>i2cMasterPath</id><value>physical:sys-0/node-0/proc-0</value></field>
+ <field><id>engine</id><value>3</value></field>
+ <field><id>port</id><value>0</value></field>
+ <field><id>devAddr</id><value>0xC0</value></field>
+ <field><id>i2cMuxBusSelector</id><value>0x09</value></field>
+ <field><id>i2cMuxPath</id><value>physical:sys-0/node-0/i2c_mux-0</value></field>
+ </default>
+ </attribute>
+ <attribute>
+ <id>ORDINAL_ID</id>
+ <default>3</default>
+ </attribute>
+ <attribute>
+ <id>PHYS_PATH</id>
+ <default>physical:sys-0/node-0/pmic-3</default>
+ </attribute>
+ <attribute>
+ <id>REL_POS</id>
+ <default>1</default>
+ </attribute>
+</targetInstance>
+
+<targetInstance>
+ <id>sys0node0pmic4</id>
+ <type>pmic</type>
+ <attribute>
+ <id>HUID</id>
+ <default>0x00360004</default>
+ </attribute>
+ <attribute>
+ <id>AFFINITY_PATH</id>
+ <default>affinity:sys-0/node-0/proc-0/mc-0/mi-0/mcc-1/omi-0/ocmb_chip-0/pmic-0</default>
+ </attribute>
+ <attribute>
+ <id>FAPI_NAME</id>
+ <default>pmic:k0:n0:s0:p04</default>
+ </attribute>
+ <attribute>
+ <id>FAPI_I2C_CONTROL_INFO</id>
+ <default>
+ <field><id>i2cMasterPath</id><value>physical:sys-0/node-0/proc-0</value></field>
+ <field><id>engine</id><value>3</value></field>
+ <field><id>port</id><value>0</value></field>
+ <field><id>devAddr</id><value>0x90</value></field>
+ <field><id>i2cMuxBusSelector</id><value>0x0A</value></field>
+ <field><id>i2cMuxPath</id><value>physical:sys-0/node-0/i2c_mux-0</value></field>
+ </default>
+ </attribute>
+ <attribute>
+ <id>ORDINAL_ID</id>
+ <default>4</default>
+ </attribute>
+ <attribute>
+ <id>PHYS_PATH</id>
+ <default>physical:sys-0/node-0/pmic-4</default>
+ </attribute>
+ <attribute>
+ <id>REL_POS</id>
+ <default>0</default>
+ </attribute>
+</targetInstance>
+
+<targetInstance>
+ <id>sys0node0pmic5</id>
+ <type>pmic</type>
+ <attribute>
+ <id>HUID</id>
+ <default>0x00360005</default>
+ </attribute>
+ <attribute>
+ <id>AFFINITY_PATH</id>
+ <default>affinity:sys-0/node-0/proc-0/mc-0/mi-0/mcc-1/omi-0/ocmb_chip-0/pmic-1</default>
+ </attribute>
+ <attribute>
+ <id>FAPI_NAME</id>
+ <default>pmic:k0:n0:s0:p05</default>
+ </attribute>
+ <attribute>
+ <id>FAPI_I2C_CONTROL_INFO</id>
+ <default>
+ <field><id>i2cMasterPath</id><value>physical:sys-0/node-0/proc-0</value></field>
+ <field><id>engine</id><value>3</value></field>
+ <field><id>port</id><value>0</value></field>
+ <field><id>devAddr</id><value>0xC0</value></field>
+ <field><id>i2cMuxBusSelector</id><value>0x0A</value></field>
+ <field><id>i2cMuxPath</id><value>physical:sys-0/node-0/i2c_mux-0</value></field>
+ </default>
+ </attribute>
+ <attribute>
+ <id>ORDINAL_ID</id>
+ <default>5</default>
+ </attribute>
+ <attribute>
+ <id>PHYS_PATH</id>
+ <default>physical:sys-0/node-0/pmic-5</default>
+ </attribute>
+ <attribute>
+ <id>REL_POS</id>
+ <default>1</default>
+ </attribute>
+</targetInstance>
+
+<targetInstance>
+ <id>sys0node0pmic6</id>
+ <type>pmic</type>
+ <attribute>
+ <id>HUID</id>
+ <default>0x00360006</default>
+ </attribute>
+ <attribute>
+ <id>AFFINITY_PATH</id>
+ <default>affinity:sys-0/node-0/proc-0/mc-0/mi-0/mcc-1/omi-1/ocmb_chip-0/pmic-0</default>
+ </attribute>
+ <attribute>
+ <id>FAPI_NAME</id>
+ <default>pmic:k0:n0:s0:p06</default>
+ </attribute>
+ <attribute>
+ <id>FAPI_I2C_CONTROL_INFO</id>
+ <default>
+ <field><id>i2cMasterPath</id><value>physical:sys-0/node-0/proc-0</value></field>
+ <field><id>engine</id><value>3</value></field>
+ <field><id>port</id><value>0</value></field>
+ <field><id>devAddr</id><value>0x90</value></field>
+ <field><id>i2cMuxBusSelector</id><value>0x0B</value></field>
+ <field><id>i2cMuxPath</id><value>physical:sys-0/node-0/i2c_mux-0</value></field>
+ </default>
+ </attribute>
+ <attribute>
+ <id>ORDINAL_ID</id>
+ <default>6</default>
+ </attribute>
+ <attribute>
+ <id>PHYS_PATH</id>
+ <default>physical:sys-0/node-0/pmic-6</default>
+ </attribute>
+ <attribute>
+ <id>REL_POS</id>
+ <default>0</default>
+ </attribute>
+</targetInstance>
+
+<targetInstance>
+ <id>sys0node0pmic7</id>
+ <type>pmic</type>
+ <attribute>
+ <id>HUID</id>
+ <default>0x00360007</default>
+ </attribute>
+ <attribute>
+ <id>AFFINITY_PATH</id>
+ <default>affinity:sys-0/node-0/proc-0/mc-0/mi-0/mcc-1/omi-1/ocmb_chip-0/pmic-1</default>
+ </attribute>
+ <attribute>
+ <id>FAPI_NAME</id>
+ <default>pmic:k0:n0:s0:p07</default>
+ </attribute>
+ <attribute>
+ <id>FAPI_I2C_CONTROL_INFO</id>
+ <default>
+ <field><id>i2cMasterPath</id><value>physical:sys-0/node-0/proc-0</value></field>
+ <field><id>engine</id><value>3</value></field>
+ <field><id>port</id><value>0</value></field>
+ <field><id>devAddr</id><value>0xC0</value></field>
+ <field><id>i2cMuxBusSelector</id><value>0x0B</value></field>
+ <field><id>i2cMuxPath</id><value>physical:sys-0/node-0/i2c_mux-0</value></field>
+ </default>
+ </attribute>
+ <attribute>
+ <id>ORDINAL_ID</id>
+ <default>7</default>
+ </attribute>
+ <attribute>
+ <id>PHYS_PATH</id>
+ <default>physical:sys-0/node-0/pmic-7</default>
+ </attribute>
+ <attribute>
+ <id>REL_POS</id>
+ <default>1</default>
+ </attribute>
+</targetInstance>
+
+<targetInstance>
+ <id>sys0node0pmic8</id>
+ <type>pmic</type>
+ <attribute>
+ <id>HUID</id>
+ <default>0x00360008</default>
+ </attribute>
+ <attribute>
+ <id>AFFINITY_PATH</id>
+ <default>affinity:sys-0/node-0/proc-0/mc-0/mi-1/mcc-0/omi-0/ocmb_chip-0/pmic-0</default>
+ </attribute>
+ <attribute>
+ <id>FAPI_NAME</id>
+ <default>pmic:k0:n0:s0:p08</default>
+ </attribute>
+ <attribute>
+ <id>FAPI_I2C_CONTROL_INFO</id>
+ <default>
+ <field><id>i2cMasterPath</id><value>physical:sys-0/node-0/proc-0</value></field>
+ <field><id>engine</id><value>3</value></field>
+ <field><id>port</id><value>0</value></field>
+ <field><id>devAddr</id><value>0x90</value></field>
+ <field><id>i2cMuxBusSelector</id><value>0x0C</value></field>
+ <field><id>i2cMuxPath</id><value>physical:sys-0/node-0/i2c_mux-0</value></field>
+ </default>
+ </attribute>
+ <attribute>
+ <id>ORDINAL_ID</id>
+ <default>8</default>
+ </attribute>
+ <attribute>
+ <id>PHYS_PATH</id>
+ <default>physical:sys-0/node-0/pmic-8</default>
+ </attribute>
+ <attribute>
+ <id>REL_POS</id>
+ <default>0</default>
+ </attribute>
+</targetInstance>
+
+<targetInstance>
+ <id>sys0node0pmic9</id>
+ <type>pmic</type>
+ <attribute>
+ <id>HUID</id>
+ <default>0x00360009</default>
+ </attribute>
+ <attribute>
+ <id>AFFINITY_PATH</id>
+ <default>affinity:sys-0/node-0/proc-0/mc-0/mi-1/mcc-0/omi-0/ocmb_chip-0/pmic-1</default>
+ </attribute>
+ <attribute>
+ <id>FAPI_NAME</id>
+ <default>pmic:k0:n0:s0:p09</default>
+ </attribute>
+ <attribute>
+ <id>FAPI_I2C_CONTROL_INFO</id>
+ <default>
+ <field><id>i2cMasterPath</id><value>physical:sys-0/node-0/proc-0</value></field>
+ <field><id>engine</id><value>3</value></field>
+ <field><id>port</id><value>0</value></field>
+ <field><id>devAddr</id><value>0xC0</value></field>
+ <field><id>i2cMuxBusSelector</id><value>0x0C</value></field>
+ <field><id>i2cMuxPath</id><value>physical:sys-0/node-0/i2c_mux-0</value></field>
+ </default>
+ </attribute>
+ <attribute>
+ <id>ORDINAL_ID</id>
+ <default>9</default>
+ </attribute>
+ <attribute>
+ <id>PHYS_PATH</id>
+ <default>physical:sys-0/node-0/pmic-9</default>
+ </attribute>
+ <attribute>
+ <id>REL_POS</id>
+ <default>1</default>
+ </attribute>
+</targetInstance>
+
+<targetInstance>
+ <id>sys0node0pmic10</id>
+ <type>pmic</type>
+ <attribute>
+ <id>HUID</id>
+ <default>0x0036000A</default>
+ </attribute>
+ <attribute>
+ <id>AFFINITY_PATH</id>
+ <default>affinity:sys-0/node-0/proc-0/mc-0/mi-1/mcc-0/omi-1/ocmb_chip-0/pmic-0</default>
+ </attribute>
+ <attribute>
+ <id>FAPI_NAME</id>
+ <default>pmic:k0:n0:s0:p10</default>
+ </attribute>
+ <attribute>
+ <id>FAPI_I2C_CONTROL_INFO</id>
+ <default>
+ <field><id>i2cMasterPath</id><value>physical:sys-0/node-0/proc-0</value></field>
+ <field><id>engine</id><value>3</value></field>
+ <field><id>port</id><value>0</value></field>
+ <field><id>devAddr</id><value>0x90</value></field>
+ <field><id>i2cMuxBusSelector</id><value>0x0D</value></field>
+ <field><id>i2cMuxPath</id><value>physical:sys-0/node-0/i2c_mux-0</value></field>
+ </default>
+ </attribute>
+ <attribute>
+ <id>ORDINAL_ID</id>
+ <default>10</default>
+ </attribute>
+ <attribute>
+ <id>PHYS_PATH</id>
+ <default>physical:sys-0/node-0/pmic-0</default>
+ </attribute>
+ <attribute>
+ <id>REL_POS</id>
+ <default>0</default>
+ </attribute>
+</targetInstance>
+
+<targetInstance>
+ <id>sys0node0pmic11</id>
+ <type>pmic</type>
+ <attribute>
+ <id>HUID</id>
+ <default>0x0036000B</default>
+ </attribute>
+ <attribute>
+ <id>AFFINITY_PATH</id>
+ <default>affinity:sys-0/node-0/proc-0/mc-0/mi-1/mcc-0/omi-1/ocmb_chip-0/pmic-1</default>
+ </attribute>
+ <attribute>
+ <id>FAPI_NAME</id>
+ <default>pmic:k0:n0:s0:p11</default>
+ </attribute>
+ <attribute>
+ <id>FAPI_I2C_CONTROL_INFO</id>
+ <default>
+ <field><id>i2cMasterPath</id><value>physical:sys-0/node-0/proc-0</value></field>
+ <field><id>engine</id><value>3</value></field>
+ <field><id>port</id><value>0</value></field>
+ <field><id>devAddr</id><value>0xC0</value></field>
+ <field><id>i2cMuxBusSelector</id><value>0x0D</value></field>
+ <field><id>i2cMuxPath</id><value>physical:sys-0/node-0/i2c_mux-0</value></field>
+ </default>
+ </attribute>
+ <attribute>
+ <id>ORDINAL_ID</id>
+ <default>11</default>
+ </attribute>
+ <attribute>
+ <id>PHYS_PATH</id>
+ <default>physical:sys-0/node-0/pmic-1</default>
+ </attribute>
+ <attribute>
+ <id>REL_POS</id>
+ <default>1</default>
+ </attribute>
+</targetInstance>
+
+<targetInstance>
+ <id>sys0node0pmic12</id>
+ <type>pmic</type>
+ <attribute>
+ <id>HUID</id>
+ <default>0x0036000C</default>
+ </attribute>
+ <attribute>
+ <id>AFFINITY_PATH</id>
+ <default>affinity:sys-0/node-0/proc-0/mc-0/mi-1/mcc-1/omi-0/ocmb_chip-0/pmic-0</default>
+ </attribute>
+ <attribute>
+ <id>FAPI_NAME</id>
+ <default>pmic:k0:n0:s0:p12</default>
+ </attribute>
+ <attribute>
+ <id>FAPI_I2C_CONTROL_INFO</id>
+ <default>
+ <field><id>i2cMasterPath</id><value>physical:sys-0/node-0/proc-0</value></field>
+ <field><id>engine</id><value>3</value></field>
+ <field><id>port</id><value>0</value></field>
+ <field><id>devAddr</id><value>0x90</value></field>
+ <field><id>i2cMuxBusSelector</id><value>0x0E</value></field>
+ <field><id>i2cMuxPath</id><value>physical:sys-0/node-0/i2c_mux-0</value></field>
+ </default>
+ </attribute>
+ <attribute>
+ <id>ORDINAL_ID</id>
+ <default>12</default>
+ </attribute>
+ <attribute>
+ <id>PHYS_PATH</id>
+ <default>physical:sys-0/node-0/pmic-0</default>
+ </attribute>
+ <attribute>
+ <id>REL_POS</id>
+ <default>0</default>
+ </attribute>
+</targetInstance>
+
+<targetInstance>
+ <id>sys0node0pmic13</id>
+ <type>pmic</type>
+ <attribute>
+ <id>HUID</id>
+ <default>0x0036000D</default>
+ </attribute>
+ <attribute>
+ <id>AFFINITY_PATH</id>
+ <default>affinity:sys-0/node-0/proc-0/mc-0/mi-1/mcc-1/omi-0/ocmb_chip-0/pmic-1</default>
+ </attribute>
+ <attribute>
+ <id>FAPI_NAME</id>
+ <default>pmic:k0:n0:s0:p13</default>
+ </attribute>
+ <attribute>
+ <id>FAPI_I2C_CONTROL_INFO</id>
+ <default>
+ <field><id>i2cMasterPath</id><value>physical:sys-0/node-0/proc-0</value></field>
+ <field><id>engine</id><value>3</value></field>
+ <field><id>port</id><value>0</value></field>
+ <field><id>devAddr</id><value>0xC0</value></field>
+ <field><id>i2cMuxBusSelector</id><value>0x0E</value></field>
+ <field><id>i2cMuxPath</id><value>physical:sys-0/node-0/i2c_mux-0</value></field>
+ </default>
+ </attribute>
+ <attribute>
+ <id>ORDINAL_ID</id>
+ <default>13</default>
+ </attribute>
+ <attribute>
+ <id>PHYS_PATH</id>
+ <default>physical:sys-0/node-0/pmic-1</default>
+ </attribute>
+ <attribute>
+ <id>REL_POS</id>
+ <default>1</default>
+ </attribute>
+</targetInstance>
+
+<targetInstance>
+ <id>sys0node0pmic14</id>
+ <type>pmic</type>
+ <attribute>
+ <id>HUID</id>
+ <default>0x0036000E</default>
+ </attribute>
+ <attribute>
+ <id>AFFINITY_PATH</id>
+ <default>affinity:sys-0/node-0/proc-0/mc-0/mi-1/mcc-1/omi-1/ocmb_chip-0/pmic-0</default>
+ </attribute>
+ <attribute>
+ <id>FAPI_NAME</id>
+ <default>pmic:k0:n0:s0:p14</default>
+ </attribute>
+ <attribute>
+ <id>FAPI_I2C_CONTROL_INFO</id>
+ <default>
+ <field><id>i2cMasterPath</id><value>physical:sys-0/node-0/proc-0</value></field>
+ <field><id>engine</id><value>3</value></field>
+ <field><id>port</id><value>0</value></field>
+ <field><id>devAddr</id><value>0x90</value></field>
+ <field><id>i2cMuxBusSelector</id><value>0x0F</value></field>
+ <field><id>i2cMuxPath</id><value>physical:sys-0/node-0/i2c_mux-0</value></field>
+ </default>
+ </attribute>
+ <attribute>
+ <id>ORDINAL_ID</id>
+ <default>14</default>
+ </attribute>
+ <attribute>
+ <id>PHYS_PATH</id>
+ <default>physical:sys-0/node-0/pmic-0</default>
+ </attribute>
+ <attribute>
+ <id>REL_POS</id>
+ <default>0</default>
+ </attribute>
+</targetInstance>
+
+<targetInstance>
+ <id>sys0node0pmic15</id>
+ <type>pmic</type>
+ <attribute>
+ <id>HUID</id>
+ <default>0x0036000F</default>
+ </attribute>
+ <attribute>
+ <id>AFFINITY_PATH</id>
+ <default>affinity:sys-0/node-0/proc-0/mc-0/mi-1/mcc-1/omi-1/ocmb_chip-0/pmic-1</default>
+ </attribute>
+ <attribute>
+ <id>FAPI_NAME</id>
+ <default>pmic:k0:n0:s0:p15</default>
+ </attribute>
+ <attribute>
+ <id>FAPI_I2C_CONTROL_INFO</id>
+ <default>
+ <field><id>i2cMasterPath</id><value>physical:sys-0/node-0/proc-0</value></field>
+ <field><id>engine</id><value>3</value></field>
+ <field><id>port</id><value>0</value></field>
+ <field><id>devAddr</id><value>0xC0</value></field>
+ <field><id>i2cMuxBusSelector</id><value>0x0F</value></field>
+ <field><id>i2cMuxPath</id><value>physical:sys-0/node-0/i2c_mux-0</value></field>
+ </default>
+ </attribute>
+ <attribute>
+ <id>ORDINAL_ID</id>
+ <default>15</default>
+ </attribute>
+ <attribute>
+ <id>PHYS_PATH</id>
+ <default>physical:sys-0/node-0/pmic-1</default>
+ </attribute>
+ <attribute>
+ <id>REL_POS</id>
+ <default>1</default>
+ </attribute>
+</targetInstance>
+
+<targetInstance>
+ <id>sys0node0pmic16</id>
+ <type>pmic</type>
+ <attribute>
+ <id>HUID</id>
+ <default>0x00360010</default>
+ </attribute>
+ <attribute>
+ <id>AFFINITY_PATH</id>
+ <default>affinity:sys-0/node-0/proc-0/mc-1/mi-0/mcc-0/omi-0/ocmb_chip-0/pmic-0</default>
+ </attribute>
+ <attribute>
+ <id>FAPI_NAME</id>
+ <default>pmic:k0:n0:s0:p16</default>
+ </attribute>
+ <attribute>
+ <id>FAPI_I2C_CONTROL_INFO</id>
+ <default>
+ <field><id>i2cMasterPath</id><value>physical:sys-0/node-0/proc-0</value></field>
+ <field><id>engine</id><value>3</value></field>
+ <field><id>port</id><value>1</value></field>
+ <field><id>devAddr</id><value>0x90</value></field>
+ <field><id>i2cMuxBusSelector</id><value>0xFF</value></field>
+ <field><id>i2cMuxPath</id><value>physical:sys-0</value></field>
+ </default>
+ </attribute>
+ <attribute>
+ <id>ORDINAL_ID</id>
+ <default>16</default>
+ </attribute>
+ <attribute>
+ <id>PHYS_PATH</id>
+ <default>physical:sys-0/node-0/pmic-0</default>
+ </attribute>
+ <attribute>
+ <id>REL_POS</id>
+ <default>0</default>
+ </attribute>
+</targetInstance>
+
+<targetInstance>
+ <id>sys0node0pmic17</id>
+ <type>pmic</type>
+ <attribute>
+ <id>HUID</id>
+ <default>0x00360011</default>
+ </attribute>
+ <attribute>
+ <id>AFFINITY_PATH</id>
+ <default>affinity:sys-0/node-0/proc-0/mc-1/mi-0/mcc-0/omi-0/ocmb_chip-0/pmic-1</default>
+ </attribute>
+ <attribute>
+ <id>FAPI_NAME</id>
+ <default>pmic:k0:n0:s0:p17</default>
+ </attribute>
+ <attribute>
+ <id>FAPI_I2C_CONTROL_INFO</id>
+ <default>
+ <field><id>i2cMasterPath</id><value>physical:sys-0/node-0/proc-0</value></field>
+ <field><id>engine</id><value>3</value></field>
+ <field><id>port</id><value>1</value></field>
+ <field><id>devAddr</id><value>0xC0</value></field>
+ <field><id>i2cMuxBusSelector</id><value>0xFF</value></field>
+ <field><id>i2cMuxPath</id><value>physical:sys-0</value></field>
+ </default>
+ </attribute>
+ <attribute>
+ <id>ORDINAL_ID</id>
+ <default>17</default>
+ </attribute>
+ <attribute>
+ <id>PHYS_PATH</id>
+ <default>physical:sys-0/node-0/pmic-1</default>
+ </attribute>
+ <attribute>
+ <id>REL_POS</id>
+ <default>1</default>
+ </attribute>
+</targetInstance>
+
+<!-- ===================================================================== -->
<!-- MEMPORT Units -->
<!-- ===================================================================== -->
<targetInstance>
diff --git a/src/usr/targeting/common/xmltohb/target_types.xml b/src/usr/targeting/common/xmltohb/target_types.xml
index 1c5f51f0b..421288d40 100644
--- a/src/usr/targeting/common/xmltohb/target_types.xml
+++ b/src/usr/targeting/common/xmltohb/target_types.xml
@@ -961,6 +961,14 @@
</attribute>
</targetType>
+ <!-- This special PMIC target adapts the MRW to Hostboot's specific PMIC
+ target. All attributes should be declared against the parent
+ target. -->
+ <targetType>
+ <id>chip-vreg-generic</id>
+ <parent>pmic</parent>
+ </targetType>
+
<targetType>
<id>enc-node-power9</id>
<parent>base</parent>
@@ -1353,6 +1361,46 @@
</targetType>
<targetType>
+ <id>pmic</id>
+ <parent>asic</parent>
+ <attribute>
+ <default>1</default>
+ <id>DECONFIG_GARDABLE</id>
+ </attribute>
+ <attribute>
+ <id>FAPI_I2C_CONTROL_INFO</id>
+ </attribute>
+ <attribute>
+ <id>HWAS_STATE_CHANGED_SUBSCRIPTION_MASK</id>
+ <default>0x00000031</default>
+ </attribute>
+ <attribute>
+ <default>
+ <field>
+ <id>childRollupAllowed</id>
+ <value>0</value>
+ </field>
+ <field>
+ <id>deconfigureParent</id>
+ <value>1</value>
+ </field>
+ <field>
+ <id>valid</id>
+ <value>1</value>
+ </field>
+ </default>
+ <id>PARENT_DECONFIG_RULES</id>
+ </attribute>
+ <attribute>
+ <id>REL_POS</id>
+ </attribute>
+ <attribute>
+ <id>TYPE</id>
+ <default>PMIC</default>
+ </attribute>
+ </targetType>
+
+ <targetType>
<id>power-supply</id>
<parent>unit</parent>
<attribute>
OpenPOWER on IntegriCloud