summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorElizabeth Liner <eliner@us.ibm.com>2016-07-27 15:13:03 -0500
committerDaniel M. Crowell <dcrowell@us.ibm.com>2016-09-26 14:41:38 -0400
commit9b2a0194995ebfdd070cf5facb0743fb08fdc38e (patch)
treebc08dd6d1a00b5350325a531b7e96bbac2d644d6 /src
parent1f8764f7c1673eb85a40ab36be14888f84e57545 (diff)
downloadtalos-hostboot-9b2a0194995ebfdd070cf5facb0743fb08fdc38e.tar.gz
talos-hostboot-9b2a0194995ebfdd070cf5facb0743fb08fdc38e.zip
Porting non-hdat from powervm-p8 into master-p8
Change-Id: I49d20a8c64bd5702aeceeff77bc5119f52996d21 RTC:156618 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/29810 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src')
-rw-r--r--src/HBconfig4
-rw-r--r--src/build/mkrules/dist.targets.mk5
-rw-r--r--src/include/math.h15
-rw-r--r--src/include/usr/vpd/pvpdenums.H3
-rw-r--r--src/lib/math.C17
-rw-r--r--src/usr/hwas/common/hwas.C28
-rwxr-xr-xsrc/usr/isteps/istep18/TodControls.C412
-rwxr-xr-xsrc/usr/isteps/istep18/TodControls.H178
-rwxr-xr-xsrc/usr/isteps/istep18/TodSvc.C3
-rwxr-xr-xsrc/usr/isteps/istep18/TodTypes.H4
-rw-r--r--src/usr/isteps/istep20/call_host_load_payload.C34
-rw-r--r--src/usr/targeting/common/entitypath.C22
-rw-r--r--src/usr/targeting/common/xmltohb/attribute_types.xml56
-rw-r--r--src/usr/targeting/common/xmltohb/attribute_types_openpower.xml27
-rw-r--r--src/usr/targeting/common/xmltohb/attribute_types_oppowervm.xml798
-rwxr-xr-xsrc/usr/targeting/common/xmltohb/target_types.xml130
-rw-r--r--src/usr/targeting/common/xmltohb/target_types_openpower.xml27
-rw-r--r--src/usr/targeting/common/xmltohb/target_types_oppowervm.xml193
-rw-r--r--src/usr/targeting/xmltohb/makefile10
-rw-r--r--src/usr/vpd/pvpd.H3
20 files changed, 1352 insertions, 617 deletions
diff --git a/src/HBconfig b/src/HBconfig
index d20bc003f..e138c9ad0 100644
--- a/src/HBconfig
+++ b/src/HBconfig
@@ -33,5 +33,5 @@ config INCLUDE_XML_OPENPOWER
default n
help
Indicates that a build should include the contents
- of attribute_types_openpower.xml and
- target_types_openpower.xml
+ of attribute_types_oppowervm.xml and
+ target_types_oppowervm.xml
diff --git a/src/build/mkrules/dist.targets.mk b/src/build/mkrules/dist.targets.mk
index 0897e4468..1ba8f2d2f 100644
--- a/src/build/mkrules/dist.targets.mk
+++ b/src/build/mkrules/dist.targets.mk
@@ -89,9 +89,8 @@ COPY_FILES = \
$(foreach file, $(call ROOTPATH_WILDCARD,releaseNotes.html), $(file):fsp)\
include ${ROOTPATH}/config.mk
-COPY_FILES += $(if $(CONFIG_OPENPOWER_ONLY),obj/genfiles/target_types_placeholder.xml:openpower) \
- $(if $(CONFIG_OPENPOWER_ONLY),src/usr/targeting/common/xmltohb/target_types_openpower.xml:openpower) \
- $(if $(CONFIG_OPENPOWER_ONLY),src/usr/targeting/common/xmltohb/attribute_types_openpower.xml:openpower) \
+COPY_FILES += $(if $(CONFIG_INCLUDE_XML_OPENPOWER),src/usr/targeting/common/xmltohb/target_types_oppowervm.xml:openpower) \
+ $(if $(CONFIG_INCLUDE_XML_OPENPOWER),src/usr/targeting/common/xmltohb/attribute_types_oppowervm.xml:openpower) \
#
# Files which are copied and renamed for targets.
diff --git a/src/include/math.h b/src/include/math.h
index ebe342116..5d7033719 100644
--- a/src/include/math.h
+++ b/src/include/math.h
@@ -5,7 +5,9 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
-/* COPYRIGHT International Business Machines Corp. 2011,2014 */
+/* Contributors Listed Below - COPYRIGHT 2011,2016 */
+/* [+] International Business Machines Corp. */
+/* */
/* */
/* Licensed under the Apache License, Version 2.0 (the "License"); */
/* you may not use this file except in compliance with the License. */
@@ -40,6 +42,17 @@ static inline int64_t log2(uint64_t s)
double sqrt(double) __attribute__((const));
+/**
+ * @brief power function
+ *
+ * @param[in] base - value of base
+ * @param[in] exp - value of exponential
+ *
+ * @return value of the value of base raised to the power of exp.
+ *
+ */
+uint64_t pow(const uint32_t base, const uint32_t exp);
+
#ifdef __cplusplus
};
#endif
diff --git a/src/include/usr/vpd/pvpdenums.H b/src/include/usr/vpd/pvpdenums.H
index acf3bbd22..6bf004107 100644
--- a/src/include/usr/vpd/pvpdenums.H
+++ b/src/include/usr/vpd/pvpdenums.H
@@ -5,7 +5,7 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
-/* Contributors Listed Below - COPYRIGHT 2013,2015 */
+/* Contributors Listed Below - COPYRIGHT 2013,2016 */
/* [+] International Business Machines Corp. */
/* */
/* */
@@ -81,6 +81,7 @@ namespace PVPD
VP = 0x15,
VS = 0x16,
VZ = 0x17,
+ LX = 0x18,
// Last Keyword
PVPD_LAST_KEYWORD,
diff --git a/src/lib/math.C b/src/lib/math.C
index c6319aad4..e590745db 100644
--- a/src/lib/math.C
+++ b/src/lib/math.C
@@ -5,7 +5,9 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
-/* COPYRIGHT International Business Machines Corp. 2011,2014 */
+/* Contributors Listed Below - COPYRIGHT 2011,2016 */
+/* [+] International Business Machines Corp. */
+/* */
/* */
/* Licensed under the Apache License, Version 2.0 (the "License"); */
/* you may not use this file except in compliance with the License. */
@@ -29,3 +31,16 @@ double sqrt(double x)
return _x;
}
+/*****************************************************************************
+ * pow
+ *****************************************************************************/
+uint64_t pow(const uint32_t base, const uint32_t exp)
+{
+ uint64_t result = 1;
+ for (uint32_t i=1; i <= exp; i++)
+ {
+ result = result * base;
+ }
+ return result;
+}
+
diff --git a/src/usr/hwas/common/hwas.C b/src/usr/hwas/common/hwas.C
index 78864f6e5..1d11cbfc9 100644
--- a/src/usr/hwas/common/hwas.C
+++ b/src/usr/hwas/common/hwas.C
@@ -166,13 +166,27 @@ errlHndl_t discoverTargets()
target != targetService().end();
++target)
{
- HwasState hwasState = target->getAttr<ATTR_HWAS_STATE>();
- hwasState.deconfiguredByEid = 0;
- hwasState.poweredOn = false;
- hwasState.present = false;
- hwasState.functional = false;
- hwasState.dumpfunctional = false;
- target->setAttr<ATTR_HWAS_STATE>(hwasState);
+ // TODO:RTC:151617 Need to find a better way
+ // to initialize the target
+ if(target->getAttr<ATTR_TYPE>() == TYPE_SP)
+ {
+ HwasState hwasState = target->getAttr<ATTR_HWAS_STATE>();
+ hwasState.deconfiguredByEid = 0;
+ hwasState.poweredOn = true;
+ hwasState.present = true;
+ hwasState.functional = true;
+ hwasState.dumpfunctional = false;
+ target->setAttr<ATTR_HWAS_STATE>(hwasState);
+ }else
+ {
+ HwasState hwasState = target->getAttr<ATTR_HWAS_STATE>();
+ hwasState.deconfiguredByEid = 0;
+ hwasState.poweredOn = false;
+ hwasState.present = false;
+ hwasState.functional = false;
+ hwasState.dumpfunctional = false;
+ target->setAttr<ATTR_HWAS_STATE>(hwasState);
+ }
}
// Assumptions and actions:
diff --git a/src/usr/isteps/istep18/TodControls.C b/src/usr/isteps/istep18/TodControls.C
index 20c87c13d..8c3c678aa 100755
--- a/src/usr/isteps/istep18/TodControls.C
+++ b/src/usr/isteps/istep18/TodControls.C
@@ -537,164 +537,6 @@ errlHndl_t TodControls::buildTodDrawers(
}
//******************************************************************************
-//TodControls::getTodConfigState
-//******************************************************************************
-errlHndl_t TodControls::getTodConfigState(
- TOD_CONFIG_STATE& o_configState,
- proc_tod_setup_tod_sel& o_activeConfig,
- bool& o_isTodRunning)const
-{
- TOD_ENTER("getTodConfigState");
- errlHndl_t l_errHdl = NULL;
- o_configState = TOD_UNCHANGED;
- o_activeConfig = TOD_PRIMARY;
- o_isTodRunning = false;
-
- do
- {
- //Get the currently active TOD configuration
- l_errHdl = queryActiveConfig (o_activeConfig,o_isTodRunning);
- if ( l_errHdl )
- {
- TOD_ERR("Call to queryActiveConfig failed ");
- break;
- }
- //Need to read the TodSystemFile to decide if HW configuration has
- //changed since the last time TOD was configured
- std::vector<TodChipData> l_todChipDataVector;
- l_errHdl = TodControls::readTodProcDataFromFile(l_todChipDataVector);
- if ( l_errHdl ) //Indicates hard failure not limited to failure of tod
- //logic only, we cannot continue with flow
- {
- TOD_ERR("Failed loading TodChipData from TodSystemFile");
- break;
- }
-
- //Determine if the TOD HW has changed since the last time topology was
- //created
- //1) File data is valid but HW has changed => Report TOD_MODIFIED
- //2) File data is valid and HW has not changed => Report TOD_UNCHANGED
- //3) Authenticity of file data is in question => Report
- //TOD_UNKNOWN
-
- //Check if TodSystemFile has topology data for atleast one node
- if ( hasNoValidData ( l_todChipDataVector ))
- {
- TOD_INF("No valid data found in the file TodSystemFile");
- o_configState = TOD_UNKNOWN;
- break;
- }
-
- //For each functional processor present in the system, if we
- //have, old configuration data in the TodSystemConfig file then
- //validate it.
-
- //Get the processors present in the system
- TARGETING::PredicateCTM
- l_procFilter(TARGETING::CLASS_CHIP,TARGETING::TYPE_PROC,
- TARGETING::MODEL_NA);
-
- TARGETING::PredicateHwas l_presencePredicate;
- l_presencePredicate.present(true);
-
- TARGETING::PredicatePostfixExpr l_presenceAndProcChipFilter;
- l_presenceAndProcChipFilter.push(&l_procFilter).
- push(&l_presencePredicate).And();
-
- TARGETING::TargetRangeFilter l_filter(
- TARGETING::targetService().begin(),
- TARGETING::targetService().end(),
- &l_presenceAndProcChipFilter);
-
- bool l_state = false; //Variable for keeping functional state of
- //the processor
- uint32_t l_ordinalId = TOD_INVALID_UNITID;
- //Initializing to some value not expected to be ordinal id
-
- ecmdDataBufferBase l_chipCtrlRegBuf(64);
-
- //Initialize l_chipCtrlRegBuf it will be used later
-
- FAPI_INVOKE_HWP(l_errHdl, init_chip_ctrl_reg, l_chipCtrlRegBuf);
- if ( l_errHdl )
- {
- TOD_ERR("init_chip_ctrl_reg returned error ");
- break;
- }
-
- for ( ; l_filter ; ++l_filter )
- {
- l_state = false;
- if ((*l_filter)->getAttr<ATTR_HWAS_STATE>().functional)
- {
- l_state = true;
- }
-
- // use position attribute on one drawer only machine
- l_ordinalId=(*l_filter)->getAttr<ATTR_POSITION>();
-
- if ( l_state ) //Functional processor
- {
- //Check if TodSystemData file also indicates the processor as
- //functional
-
- //Indexing into l_todChipDataVector is safe as size of vector is
- //always determined by the maximum possible processors for this
- //system type
- if(((l_todChipDataVector[l_ordinalId].header.flags) &
- TOD_FUNC) != 0 )
- {
-
- //File data says that the chip is functional do some more
- //validation on the data
-
- //Check if the chip control register (0x40010) data is valid
- //This data does not depend on topology, so it should tally
- if ( (l_todChipDataVector[l_ordinalId].regs.ccr) !=
- l_chipCtrlRegBuf.getWord(0) )
- {
- TOD_INF("Chip control register read from TodSystemData"
- "is not valid for the processor 0x%08X",
- (*l_filter)->getAttr<TARGETING::ATTR_HUID>());
- //We do not have a valid data no need to continue
- //further
- o_configState = TOD_UNKNOWN;
- break;
- }
- }
- else
- {
- //New hardware has been added
- TOD_INF("New processor detected 0x%08X",
- (*l_filter)->getAttr<ATTR_HUID>());
- o_configState = TOD_MODIFIED;
- }
-
- }
- else
- {
- //Check if this chip was functional earlier
- if ( ((l_todChipDataVector[l_ordinalId].header.flags) &
- TOD_FUNC) != 0 )
- {
- //HW has been removed
- o_configState = TOD_MODIFIED;
- TOD_INF("Processor 0x%08X is no more available ",
- (*l_filter)->getAttr<ATTR_HUID>());
- }
- }
- }
-
- }while(0);
-
- TOD_EXIT(" config state = %d, active config = %d, TOD HW State = "
- "%d errHdl = %p",
- o_configState, o_activeConfig , o_isTodRunning, l_errHdl);
-
- return l_errHdl;
-}
-
-//******************************************************************************
//TodControls::isTodRunning
//******************************************************************************
errlHndl_t TodControls::isTodRunning(bool& o_isTodRunning)const
@@ -1038,6 +880,11 @@ errlHndl_t TodControls::writeTodProcData(
TodChipData blank;
uint32_t l_maxProcCount = getMaxProcsOnSystem();
+ Target* l_target = NULL;
+
+ //the size of the attribute needs to accomodate the size of the struct
+ TOD_ASSERT(sizeof(TodChipData) == sizeof(ATTR_TOD_CPU_DATA_type),
+ "sizeof TodChipData and attribute are different");
TOD_INF("Max possible processor chips for this system when configured "
"completely is %d",l_maxProcCount);
@@ -1119,15 +966,13 @@ errlHndl_t TodControls::writeTodProcData(
}
- }
- }
+ ATTR_TOD_CPU_DATA_type l_tod_array;
+ memcpy(l_tod_array,
+ &iv_todChipDataVector[l_ordId],sizeof(TodChipData));
- //Done with setting the data write it to the file
- l_errHdl = writeTodProcDataToFile();
- if ( l_errHdl )
- {
- TOD_ERR( "Failed writing TOD chip data to the file ");
- break;
+ l_target = const_cast<Target *>((*l_procItr)->getTarget());
+ l_target->setAttr<ATTR_TOD_CPU_DATA>(l_tod_array);
+ }
}
}while(0);
@@ -1137,235 +982,76 @@ errlHndl_t TodControls::writeTodProcData(
}//end of writeTodProcData
-
//******************************************************************************
-//TodControls::writeTodProcDataToFile()
+//HwsvTodControls::hasNoValidData()
//******************************************************************************
-errlHndl_t TodControls::writeTodProcDataToFile()
+bool TodControls::hasNoValidData(const std::vector<TodChipData>&
+ i_todChipDataVector)const
{
- TOD_ENTER("writeTodProcDataToFile");
- errlHndl_t l_errHdl = NULL;
-#ifndef __HOSTBOOT_MODULE
- do
+ TOD_ENTER("hasNoValidData");
+ bool result = true;
+ for(std::vector<TodChipData>::const_iterator l_iter =
+ i_todChipDataVector.begin();
+ l_iter != i_todChipDataVector.end(); ++l_iter)
{
- std::string l_fileOpenMode(FILE_WRITE_MODE);
- char l_fileName[128];
- l_errHdl = getTodProcDataFilePath(l_fileName);
- if(l_errHdl)
- {
- TOD_ERR("Failed getting the file path for sharing TOD data with "
- " HDAT ");
- break;
- }
-
- //Create the parent directory in which file has to be written
- std::string l_dirPath = l_fileName.substr
- (0,l_fileName.find_last_of(DIR_PATH_SERERATOR));
- int rc = mkdir(l_dirPath.c_str(),DIR_CREATION_MODE);
-
- if ( rc != 0 )
- {
- //EEXIST just means it already exists, which is fine
- if (errno != EEXIST)
- {
- TOD_ERR("Error creating the directory %s "
- "system returned error code %d",
- l_dirPath.c_str(),errno);
- break;
- }
- }
-
- UtilFile file;
- l_errHdl = file.open(l_fileName.c_str(), l_fileOpenMode.c_str());
- if ( l_errHdl )
- {
- TOD_ERR("Failed opening the file %s, with mode %s" ,
- l_fileName.c_str(),l_fileOpenMode.c_str());
- break;
- }
-
- TodChipDataContainer::iterator l_chipDataItr =
- iv_todChipDataVector.begin();
- file.write(reinterpret_cast<void *>((&(*l_chipDataItr))),
- (iv_todChipDataVector.size()* sizeof(TodChipData)));
-
- l_errHdl = file.getLastError();
- if ( l_errHdl )
- {
- TOD_ERR("Failed writing the tod chip data to file ");
- break;
- }
-
- l_errHdl = file.close();
- if ( l_errHdl )
+ if(((*l_iter).header.flags & TOD_FUNC) != 0)
{
- TOD_ERR("Failed closing the file %s", l_fileName.c_str());
+ result = false;
break;
}
-
- }while(0);
-#endif
- TOD_EXIT("writeTodProcDataToFile. errHdl = %p", l_errHdl);
- return l_errHdl;
-
+ }
+ TOD_EXIT("hasNoValidData");
+ return result;
}
+
//*****************************************************************************
-//TodControls::readTodProcDataFromFile
+//TodControls::getTodProcDataFromAttribute()
//******************************************************************************
-errlHndl_t TodControls::readTodProcDataFromFile(
+errlHndl_t TodControls::getTodProcDataFromAttribute(
std::vector<TodChipData>& o_todChipDataVector )const
{
- TOD_ENTER("readTodProcDataFromFile");
+ TOD_ENTER("getTodProcDataFromAttribute()");
errlHndl_t l_errHdl = NULL;
-#ifndef __HOSTBOOT_MODULE
+
do
{
- std::string l_todProcDataFile;
- UtilFile l_file;
-
- l_errHdl = getTodProcDataFilePath(l_todProcDataFile);
- if(l_errHdl)
- {
- TOD_ERR("Failed getting the path of TodSystemFile ");
- break;
- }
+ TodChipData l_todData;
+ memset(&l_todData,0,sizeof(TodChipData));
+ ATTR_TOD_CPU_DATA_type l_arrayVal;
- if ( !UtilFile::exists(l_todProcDataFile.c_str()))
- {
- TOD_INF("File %s , does not exist",l_todProcDataFile.c_str());
- break;
- }
-
- //Open the file for reading
- l_errHdl = l_file.open(l_todProcDataFile.c_str(),FILE_READ_MODE);
- if ( l_errHdl )
- {
- TOD_ERR("Failed opening the file %s, with mode %s" ,
- l_todProcDataFile.c_str(),FILE_READ_MODE);
- break;
- }
+ //the size of the attribute needs to accommodate the size of the struct
+ TOD_ASSERT(sizeof(TodChipData) == sizeof(ATTR_TOD_CPU_DATA_type),
+ "sizeof TodChipData and attribute different");
//The amount of data stored on TodSystemFile always depend on the
//maximum processor possible for the given system type
uint32_t l_maxProcCount = getMaxProcsOnSystem();
- uint32_t l_bytesToRead = l_file.size();
-
- if ( (l_bytesToRead == 0) || (l_bytesToRead > (l_maxProcCount *
- sizeof(TodChipData)))) //Check for further safeguards
- {
- TOD_ERR("Error, File %s is corrupted"
- ,l_todProcDataFile.c_str());
-
- //Commit this locally, because system can still proceed if TOD HW is
- //not running
- l_errHdl->commit(HWSV_COMP_ID, ERRL_ACTION_REPORT,
- ERRL_SEV_INFORMATIONAL);
- delete l_errHdl;
- l_errHdl = 0;
- break;
- }
-
TodChipData blank;
- o_todChipDataVector.assign(l_maxProcCount,blank); //Allocate memory with
- //default values
- //Read the data from file
- l_file.read(reinterpret_cast<void *>(&(*(o_todChipDataVector.begin()))),
- l_bytesToRead);
+ //Allocate memory
+ o_todChipDataVector.assign(l_maxProcCount,blank);
+ TARGETING::TargetHandleList l_procListA;
+ getAllChips(l_procListA, TYPE_PROC);
- l_errHdl = l_file.getLastError();
- if ( l_errHdl )
+ bool l_read=0;
+ for(TargetHandleList::const_iterator proc = l_procListA.begin();
+ proc != l_procListA.end(); ++proc)
{
- TOD_ERR("Failed reading tod chip data from file ");
- break;
-
+ l_read =
+ (*proc)->tryGetAttr<TARGETING::ATTR_TOD_CPU_DATA>(l_arrayVal);
+ TOD_ASSERT(l_read==true, "ATTR_TOD_CPU_DATA not found");
+ memcpy(&l_todData, l_arrayVal, sizeof(TodChipData));
+ o_todChipDataVector
+ [(*proc)->getAttr<TARGETING::ATTR_POSITION>()]= l_todData;
}
- l_errHdl = l_file.close();
- if ( l_errHdl )
- {
- TOD_ERR("Failed closing the file %s", l_todProcDataFile.c_str());
- break;
- }
- //Not going to close the file in error path , UtilFile will close it.
-
- }while(0);
-#endif
- TOD_EXIT("readTodProcDataFromFile. errHdl = %p", l_errHdl);
- return l_errHdl;
-}
-
-//******************************************************************************
-//TodControls::getTodProcDataFilePath()
-//******************************************************************************
-errlHndl_t TodControls::getTodProcDataFilePath(char * o_fileName)
- const
-{
- TOD_ENTER("getTodProcDataFilePath");
- errlHndl_t l_errHdl = NULL;
-#ifndef __HOSTBOOT_MODULE
- char *l_buf = NULL;
- do
- {
- uint32_t l_fileSize = 0;
- const char* l_stringToAppend = NULL;
- const char* l_filePathKey[2] =
- { P1_ROOT_PATH,
- CINI_SYSTODFILE_PATH
- };
-
-
- l_errHdl = UtilReg::path(l_filePathKey,(sizeof(l_filePathKey) /
- sizeof(l_filePathKey[0])),
- l_stringToAppend,l_buf,l_fileSize);
-
- if ( l_errHdl )
- {
- TOD_ERR("Failed getting file path from the registry using keys"
- "P1_ROOT_PATH and CINI_SYSTODFILE_PATH " );
- break;
- }
-
- o_fileName = std::string(l_buf);
- TOD_INF("Found file path %s",o_fileName.c_str());
-
-
}while(0);
+ TOD_EXIT("getTodProcDataFromAttribute(). errHdl = %p", l_errHdl);
- if ( l_buf )
- {
- delete l_buf;
- }
-#endif
- TOD_EXIT("getTodProcDataFilePath. errHdl = %p", l_errHdl);
return l_errHdl;
}
-
-//******************************************************************************
-//HwsvTodControls::hasNoValidData()
-//******************************************************************************
-bool TodControls::hasNoValidData(const std::vector<TodChipData>&
- i_todChipDataVector)const
-{
- TOD_ENTER("hasNoValidData");
- bool result = true;
- for(std::vector<TodChipData>::const_iterator l_iter =
- i_todChipDataVector.begin();
- l_iter != i_todChipDataVector.end(); ++l_iter)
- {
- if(((*l_iter).header.flags & TOD_FUNC) != 0)
- {
- result = false;
- break;
- }
- }
- TOD_EXIT("hasNoValidData");
- return result;
-}
-
-
}//end of namespace
diff --git a/src/usr/isteps/istep18/TodControls.H b/src/usr/isteps/istep18/TodControls.H
index d072f5ff5..339bfb9a6 100755
--- a/src/usr/isteps/istep18/TodControls.H
+++ b/src/usr/isteps/istep18/TodControls.H
@@ -41,7 +41,6 @@
#include <util/singleton.H>
#include "proc_tod_utils.H"
#include "TodDrawer.H"
-#include <map>
namespace TOD
{
@@ -273,66 +272,6 @@ public:
return iv_todConfig[i_config].iv_isConfigured;
}
- /**
- *
- * @brief getTodConfigState will enable other methods to make a decision
- * regarding valid action to be performed to modify the
- * topology.
- *
- * @par Detailed Description:
- * On getting a topology creation/modification request, TOD service
- * methods need to determine next course of action based on the ChipTOD
- * HW state and the state of the data that is available in the
- * TodSystemData file.(TodSystemData file contains the previously
- * created TOD topology's information). This method will provide all
- * the information that is required to determine next course of action.
- *
- * Following algorithm is used
- * 1) Check TOD status register to determine TOD HW state and the active
- * configuration
- * 2) Read the TodSystemData to find, if HW has changed i.e. new
- * functional processors became available or one of the processor that
- * was functional when topology was created last time became
- * non-functional.
- *
- * Method can report TOD config state as one of the following
- * a)TOD_UNCHANGED ==> No change in the HW
- * b)TOD_MODIFIED ==> HW has changed
- * c)TOD_UNKNOWN ==> It is not possible to determine the state
- *
- * @param[out] o_configState
- * This parameter will indicate to caller if the HW as seen by
- * getTodConfigState is same as indicated by the TodSystemData or not.
- * One of the enums listed in TOD_CONFIG_STATE will be returned.
- *
- * @param[out] o_isTodRunning
- * It will be true if the ChipTOD HW is running.
- *
- * @param[out] o_activeConfig
- * This parameter will carry back the information regarding the topology
- * that has been currently selected by PHYP, if ChipTOD HW is running.
- * In case TOD HW is not running then it will report TOD_PRIMARY, as
- * that is the configuration to be picked by PHYP once the TOD logic
- * starts running.
- *
- * @return Error log handle that will determine if method was successful in
- * determining various parameters or not
- * @retval NULL , Indicates success
- * @retval !NULL , Failed getting the output parameters,in this case
- * value of o_configState,o_isTodRunning and o_activeConfig should
- * not be considered for any further action.
- *
- * This API may return one of the following "special" reason codes:
- * NA
- *
- * @note It is up to the caller to change the severity of the
- * returned error based on what it decides to do with it. By default
- * any returned error created by this function will be a non-reported
- * tracing event error log.
- */
- errlHndl_t getTodConfigState ( TOD_CONFIG_STATE& o_configState,
- proc_tod_setup_tod_sel& o_activeConfig,
- bool& o_isTodRunning)const;
/**
* @brief isTodRunning returns the current state of ChipTOD HW i.e.
* whether it is running or not
@@ -369,14 +308,14 @@ public:
/**
- * @brief This method will provide TOD topology register data to HDAT
+ * @brief This method will save TOD topology register data for HDAT
*
* @par Detailed Description:
* HWSV needs to share TOD topology data with HDAT.
* HWSV also needs to persist with TOD topology data across non-memory
* preserving IPL's.
* Both the above requirements will be fulfilled by writing data
- * to a file.
+ * to an attribute per proc.
* This method will take the TOD register data and put it in the format
* required by HDAT, and then call helper method to write the same to a
* file
@@ -389,78 +328,24 @@ public:
* building one of the topologies i.e. primary could be built but not
* the secondary then primary should be passed as i_config.
*
- * @return Error log handle indicating the status of the request.
- * @retval NULL if successful
- * @retval !NULL if failed to write TOD configuration data
- *
- * Error log handle points to a valid error log object whose primary
- * SRC reason code (pError->getSRC()->reasonCode()) indicates the type
- * of error.
- *
- * @note It is up to the caller to change the severity of the returned
- * error based on what it decides to do with it. By default any
- * returned error created by this function will be a non-reported
- * tracing event error log.
+ * @return NULL if successful
+ * !NULL otherwise
*/
errlHndl_t writeTodProcData(const proc_tod_setup_tod_sel i_config);
-
- /**
- *
- * @brief This is a helper method for writeTodProcDataToFile, it will
- * determine file path where array of hwsvTodChipData structure has to
- * be written by HWSV , HDAT will read this file.
- *
- * @par Detailed Description:
- * The file to which data has to be written will be determined by the
- * following registry keys
- * 1. fstp/P1_Root (To determine the root directory of P1)
- * 2. CINI_SYSTODFILE_PATH (To determine the directory and file name
- * within P1_Root where the data is to be written)
- *
- * @param[in] o_fileName
- * Output parameter to carry back the file name qualified by full path
- * where the data has has to be written.
- *
- * @return Error log handle indicating the status of the request.
- * @retval NULL if file path could be determined successfully
- * @retval !NULL if file path could not be found
- *
- * Error log handle points to a valid error log object whose primary
- * SRC reason code (pError->getSRC()->reasonCode()) indicates the type
- * of error.
- *
- * @note It is up to the caller to change the severity of the returned error
- * based on what it decides to do with it. By default any returned
- * error created by this function will be a non-reported tracing event
- * error log.
- */
- errlHndl_t getTodProcDataFilePath(char * o_fileName) const;
- /**
- * @brief This is a helper method for writeTodProcData, it will write the
- * array of hwsvTodChipData structures created by writeTodProcData to a
- * file with P1 persistancy
- *
- * @par Detailed Description:
- * The method will work on iv_todChipData and take help of
- * getTodProcDataFilePath to detrmine the file path where
- * iv_todChipData has to be written.
- *
- * @return Error log handle indicating the status of the request
- * @retval NULL if the data could not be written successfully
- * @retval !NULL if the data was written successfully
- *
- * Error log handle points to a valid error log object whose primary
- * SRC reason code (pError->getSRC()->reasonCode()) indicates the type
- * of error.
- *
- * @note It is up to the caller to change the severity of the returned
- * error based on what it decides to do with it. By default any
- * returned error created by this function will be a non-reported
- * tracing event error log.
- */
- errlHndl_t writeTodProcDataToFile();
+ /**
+ * @brief This method will be used to return Tod Data for all procs
+ * by reading the TOD data from chip attribute
+ *
+ * @param[in]: o_todChipDataVector
+ * is populated with TOD data
+ *
+ * @return if it cannot read from attribute TOD_ASSERT() will be invoked
+ */
+ errlHndl_t getTodProcDataFromAttribute(
+ std::vector<TodChipData>& o_todChipDataVector )const;
+
/**
*
@@ -563,37 +448,6 @@ private:
TARGETING::Target*& o_secondaryMdmt)const;
/**
- * @brief This method will read the TOD topology register data from
- * TodSystemData file
- *
- * @par Detailed Description:
- * TodSystemData file is a P1 persistent file that will retain the TOD
- * topology data from previous configuration. Any request to recofigure
- * backup topology should consider the previous topology data. This
- * method will read the TodSystemData file and put the data in
- * hwsvTodChipData structures.
- *
- * @param[out ] o_todChipDataVector , Array of hwsvTodChipData structures
- * that will be populated with the data from TodSystemData file.
- *
- * @return Error log handle indicating the status of the request.
- * @retval NULL if TodSystemData was successfully read.
- * @retval !NULL if TodSystemData could not be read. This will happen if
- * the file does not exist, one of the file operation failed or file
- * does not have expected data.
- *
- * This API may return one of the following "special" reason codes:
- * NA
- *
- * @note It is up to the caller to change the severity of the
- * returned error based on what it decides to do with it. By default
- * any returned error created by this function will be a non-reported
- * tracing event error log.
- */
- errlHndl_t readTodProcDataFromFile(std::vector<TodChipData>&
- o_todChipDataVector )const;
-
- /**
* @brief This method will be used to determine if the data read from
* TodSystemData file indicates at least one functional processor
*
diff --git a/src/usr/isteps/istep18/TodSvc.C b/src/usr/isteps/istep18/TodSvc.C
index 6b03e0355..f52cc99dd 100755
--- a/src/usr/isteps/istep18/TodSvc.C
+++ b/src/usr/isteps/istep18/TodSvc.C
@@ -199,8 +199,7 @@ errlHndl_t TodSvc::todSetup()
l_errHdl = l_Tod.writeTodProcData(TOD_PRIMARY);
if(l_errHdl)
{
- TOD_ERR("TOD setup failure:Failed to write topology register data"
- " to the file.");
+ TOD_ERR("TOD setup: Failed to write topology register data");
}
}
diff --git a/src/usr/isteps/istep18/TodTypes.H b/src/usr/isteps/istep18/TodTypes.H
index e94a1d2d7..b4750ce22 100755
--- a/src/usr/isteps/istep18/TodTypes.H
+++ b/src/usr/isteps/istep18/TodTypes.H
@@ -64,7 +64,7 @@ namespace TOD
uint32_t chipID; //Chip ID
uint32_t flags; //Flags
TodChipHeader(void) : chipID(0),flags(TOD_NONFUNC) {}
- };
+ }__attribute__ ((packed));
/**
* Sub structure of TodChipData, That will contain the first 32 bits of
@@ -90,7 +90,7 @@ namespace TOD
mpcr(0),pcrp0(0),pcrp1(0),scrp0(0),scrp1(0),
spcr(0),ipcr(0),psmscr(0),ccr(0)
{}
- };
+ }__attribute__ ((packed));
/**
* TOD Data for each chip that HDAT will communicate
diff --git a/src/usr/isteps/istep20/call_host_load_payload.C b/src/usr/isteps/istep20/call_host_load_payload.C
index 83254264b..74954bc8b 100644
--- a/src/usr/isteps/istep20/call_host_load_payload.C
+++ b/src/usr/isteps/istep20/call_host_load_payload.C
@@ -111,9 +111,11 @@ void* call_host_load_payload (void *io_pArgs)
// Get Payload base/entry from attributes
uint64_t payloadBase = sys->getAttr<TARGETING::ATTR_PAYLOAD_BASE>();
TRACDCOMP( ISTEPS_TRACE::g_trac_isteps_trace,INFO_MRK
- "call_load_payload: Payload Base: 0x%08x, Base:0x%08x",
+ "call_load_payload: Payload Base: 0x%08x MB, Base:0x%08x",
payloadBase, (payloadBase * MEGABYTE) );
+ payloadBase = payloadBase * MEGABYTE;
+
// Load payload data in PHYP mode or in Sapphire mode
if(is_sapphire_load() || is_phyp_load())
{
@@ -180,7 +182,7 @@ static errlHndl_t load_pnor_section(PNOR::SectionId i_section,
originalPayloadSize,
i_physAddr );
- uint64_t loadAddr = NULL;
+ void * loadAddr = NULL;
// Use simics optimization if we are running under simics which has very
// slow PNOR access.
if ( Util::isSimicsRunning() )
@@ -199,9 +201,8 @@ static errlHndl_t load_pnor_section(PNOR::SectionId i_section,
// Map in the physical memory we are loading into.
// If we are not xz compressed, the uncompressedSize
// is equal to the original size.
- loadAddr = reinterpret_cast<uint64_t>(
- mm_block_map( reinterpret_cast<void*>( i_physAddr ),
- uncompressedPayloadSize ) );
+ loadAddr = mm_block_map( reinterpret_cast<void*>( i_physAddr ),
+ uncompressedPayloadSize );
// Print out inital progress bar.
#ifdef CONFIG_CONSOLE
@@ -220,7 +221,8 @@ static errlHndl_t load_pnor_section(PNOR::SectionId i_section,
const uint32_t BLOCK_SIZE = 4096;
for ( uint32_t i = 0; i < originalPayloadSize; i += BLOCK_SIZE )
{
- memcpy( reinterpret_cast<void*>( loadAddr + i ),
+ memcpy( reinterpret_cast<void*>(
+ reinterpret_cast<uint64_t>(loadAddr) + i ),
reinterpret_cast<void*>( pnorSectionInfo.vaddr + i ),
std::min( originalPayloadSize - i, BLOCK_SIZE ) );
#ifdef CONFIG_CONSOLE
@@ -304,6 +306,26 @@ static errlHndl_t load_pnor_section(PNOR::SectionId i_section,
}
+ int rc = 0;
+ rc = mm_block_unmap(reinterpret_cast<void *>(loadAddr));
+ if(rc)
+ {
+ TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace,ERR_MRK
+ "load_pnor_section: mm_block_unmap returned 1");
+
+ /*@
+ * @errortype
+ * @reasoncode fapi::RC_MM_UNMAP_ERR
+ * @severity ERRORLOG::ERRL_SEV_UNRECOVERABLE
+ * @moduleid fapi::MOD_START_XZ_PAYLOAD
+ * @devdesc mm_block_unmap returned incorrectly with 0
+ * @custdesc Error unmapping memory section
+ */
+ err = new ERRORLOG::ErrlEntry(ERRORLOG::ERRL_SEV_UNRECOVERABLE,
+ fapi::MOD_START_XZ_PAYLOAD,
+ fapi::RC_MM_UNMAP_ERR,
+ 0,0,0);
+ }
return err;
}
diff --git a/src/usr/targeting/common/entitypath.C b/src/usr/targeting/common/entitypath.C
index 213d604f6..23d4d5475 100644
--- a/src/usr/targeting/common/entitypath.C
+++ b/src/usr/targeting/common/entitypath.C
@@ -431,6 +431,28 @@ const char* EntityPath::pathElementTypeAsString(
return "MFREFCLKENDPT";
case TYPE_TPM:
return "TPM";
+ case TYPE_SP:
+ return "SP";
+ case TYPE_UART:
+ return "UART";
+ case TYPE_PS:
+ return "PS";
+ case TYPE_FAN:
+ return "FAN";
+ case TYPE_VRM:
+ return "VRM";
+ case TYPE_USB:
+ return "USB";
+ case TYPE_ETH:
+ return "ETH";
+ case TYPE_PANEL:
+ return "PANEL";
+// case TYPE_FSI_LINK:
+// return "FSI-link";
+// case TYPE_CFAM:
+// return "CFAM";
+// case TYPE_ENGINE:
+// return "Engine";
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 a9c9965c4..61eaa4e4c 100644
--- a/src/usr/targeting/common/xmltohb/attribute_types.xml
+++ b/src/usr/targeting/common/xmltohb/attribute_types.xml
@@ -277,14 +277,46 @@
<name>TPM</name>
<value>49</value>
</enumerator>
+ <enumerator>
+ <name>SP</name>
+ <value>50</value>
+ </enumerator>
+ <enumerator>
+ <name>UART</name>
+ <value>51</value>
+ </enumerator>
+ <enumerator>
+ <name>PS</name>
+ <value>52</value>
+ </enumerator>
+ <enumerator>
+ <name>FAN</name>
+ <value>53</value>
+ </enumerator>
+ <enumerator>
+ <name>VRM</name>
+ <value>54</value>
+ </enumerator>
+ <enumerator>
+ <name>USB</name>
+ <value>55</value>
+ </enumerator>
+ <enumerator>
+ <name>ETH</name>
+ <value>56</value>
+ </enumerator>
+ <enumerator>
+ <name>PANEL</name>
+ <value>57</value>
+ </enumerator>
<!-- add any new types here, and increment TEST_FAIL and LAST_IN_RANGE -->
<enumerator>
<name>TEST_FAIL</name>
- <value>50</value>
+ <value>58</value>
</enumerator>
<enumerator>
<name>LAST_IN_RANGE</name>
- <value>51</value>
+ <value>59</value>
</enumerator>
<default>NA</default>
</enumerationType>
@@ -2736,8 +2768,8 @@
<default>0</default>
</field>
<field>
- <name>reserved</name>
- <description>Reserved for future use</description>
+ <name>MinorIPLType</name>
+ <description>Minor IPL Type</description>
<type>uint8_t</type>
<bits>7</bits>
<default>0</default>
@@ -31449,5 +31481,21 @@ Measured in GB</description>
</hwpfToHbAttrMap>
</attribute>
+<attribute>
+ <id>TOD_CPU_DATA</id>
+ <description>TOD CHIP DATA for each CHIP
+ The size of the TOD CHIP DATA must be equal to the sizeof(TodChipData)
+ </description>
+ <simpleType>
+ <uint8_t>
+ </uint8_t>
+ <!-- the size of the array must be equal to the sizeof(TodChipData)
+ defined in TodTypes.H -->
+ <array>44</array>
+ </simpleType>
+ <persistency>volatile-zeroed</persistency>
+ <readable/>
+ <writeable/>
+</attribute>
</attributes>
diff --git a/src/usr/targeting/common/xmltohb/attribute_types_openpower.xml b/src/usr/targeting/common/xmltohb/attribute_types_openpower.xml
deleted file mode 100644
index c973cd877..000000000
--- a/src/usr/targeting/common/xmltohb/attribute_types_openpower.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<!-- IBM_PROLOG_BEGIN_TAG -->
-<!-- This is an automatically generated prolog. -->
-<!-- -->
-<!-- $Source: src/usr/targeting/common/xmltohb/attribute_types_openpower.xml $ -->
-<!-- -->
-<!-- OpenPOWER HostBoot Project -->
-<!-- -->
-<!-- Contributors Listed Below - COPYRIGHT 2016 -->
-<!-- [+] International Business Machines Corp. -->
-<!-- -->
-<!-- -->
-<!-- Licensed under the Apache License, Version 2.0 (the "License"); -->
-<!-- you may not use this file except in compliance with the License. -->
-<!-- You may obtain a copy of the License at -->
-<!-- -->
-<!-- http://www.apache.org/licenses/LICENSE-2.0 -->
-<!-- -->
-<!-- Unless required by applicable law or agreed to in writing, software -->
-<!-- distributed under the License is distributed on an "AS IS" BASIS, -->
-<!-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or -->
-<!-- implied. See the License for the specific language governing -->
-<!-- permissions and limitations under the License. -->
-<!-- -->
-<!-- IBM_PROLOG_END_TAG -->
-<attributes>
-
-</attributes>
diff --git a/src/usr/targeting/common/xmltohb/attribute_types_oppowervm.xml b/src/usr/targeting/common/xmltohb/attribute_types_oppowervm.xml
new file mode 100644
index 000000000..cce48d219
--- /dev/null
+++ b/src/usr/targeting/common/xmltohb/attribute_types_oppowervm.xml
@@ -0,0 +1,798 @@
+<!-- IBM_PROLOG_BEGIN_TAG -->
+<!-- This is an automatically generated prolog. -->
+<!-- -->
+<!-- $Source: src/usr/targeting/common/xmltohb/attribute_types_oppowervm.xml $ -->
+<!-- -->
+<!-- OpenPOWER HostBoot Project -->
+<!-- -->
+<!-- Contributors Listed Below - COPYRIGHT 2016 -->
+<!-- [+] International Business Machines Corp. -->
+<!-- -->
+<!-- -->
+<!-- Licensed under the Apache License, Version 2.0 (the "License"); -->
+<!-- you may not use this file except in compliance with the License. -->
+<!-- You may obtain a copy of the License at -->
+<!-- -->
+<!-- http://www.apache.org/licenses/LICENSE-2.0 -->
+<!-- -->
+<!-- Unless required by applicable law or agreed to in writing, software -->
+<!-- distributed under the License is distributed on an "AS IS" BASIS, -->
+<!-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or -->
+<!-- implied. See the License for the specific language governing -->
+<!-- permissions and limitations under the License. -->
+<!-- -->
+<!-- IBM_PROLOG_END_TAG -->
+<attributes>
+
+<!-- =====================================================================
+ Contains the definition of attributes that are only available on
+ openpower systems. This file is only compiled when
+ CONFIG_XML_INCLUDE_OPENPOWER is set to true and is always false on
+ FSP based systems.
+ =====================================================================
+-->
+
+<attribute>
+ <id>ICACHE_LINE_SIZE</id>
+ <description>Icache Line Size in bytes</description>
+ <simpleType>
+ <uint32_t>
+ <default>128</default>
+ </uint32_t>
+ </simpleType>
+ <persistency>non-volatile</persistency>
+ <readable/>
+</attribute>
+
+<attribute>
+ <id>ICACHE_BLOCK_SIZE</id>
+ <description>ICache Block Size in bytes</description>
+ <simpleType>
+ <uint32_t>
+ <default>128</default>
+ </uint32_t>
+ </simpleType>
+ <persistency>non-volatile</persistency>
+ <readable/>
+</attribute>
+
+<attribute>
+ <id>ICACHE_SIZE</id>
+ <description>ICache Size in KB</description>
+ <simpleType>
+ <uint32_t>
+ <default>32</default>
+ </uint32_t>
+ </simpleType>
+ <persistency>non-volatile</persistency>
+ <readable/>
+</attribute>
+
+<attribute>
+ <id>ICACHE_ASSOC_SETS</id>
+ <description>ICache Assoc Sets</description>
+ <simpleType>
+ <uint32_t>
+ <default>4</default>
+ </uint32_t>
+ </simpleType>
+ <persistency>non-volatile</persistency>
+ <readable/>
+</attribute>
+
+<attribute>
+ <id>DCACHE_LINE_SIZE</id>
+ <description>DCache Line Size in bytes</description>
+ <simpleType>
+ <uint32_t>
+ <default>128</default>
+ </uint32_t>
+ </simpleType>
+ <persistency>non-volatile</persistency>
+ <readable/>
+</attribute>
+
+<attribute>
+ <id>DCACHE_ASSOC_SETS</id>
+ <description>DCache Associative Sets</description>
+ <simpleType>
+ <uint32_t>
+ <default>8</default>
+ </uint32_t>
+ </simpleType>
+ <persistency>non-volatile</persistency>
+ <readable/>
+</attribute>
+
+<attribute>
+ <id>L2_CACHE_LINE_SIZE</id>
+ <description>L2 Cache Line Size in bytes</description>
+ <simpleType>
+ <uint32_t>
+ <default>128</default>
+ </uint32_t>
+ </simpleType>
+ <persistency>non-volatile</persistency>
+ <readable/>
+</attribute>
+
+<attribute>
+ <id>L2_CACHE_SIZE</id>
+ <description>L2 Cache Size in KB</description>
+ <simpleType>
+ <uint32_t>
+ <default>512</default>
+ </uint32_t>
+ </simpleType>
+ <persistency>non-volatile</persistency>
+ <readable/>
+</attribute>
+
+<attribute>
+ <id>L2_CACHE_ASSOC_SETS</id>
+ <description>L2 Cache Assoc Sets</description>
+ <simpleType>
+ <uint32_t>
+ <default>8</default>
+ </uint32_t>
+ </simpleType>
+ <persistency>non-volatile</persistency>
+ <readable/>
+</attribute>
+
+<attribute>
+ <id>L3_CACHE_LINE_SIZE</id>
+ <description>L3 Cache Line Size in bytes</description>
+ <simpleType>
+ <uint32_t>
+ <default>128</default>
+ </uint32_t>
+ </simpleType>
+ <persistency>non-volatile</persistency>
+ <readable/>
+</attribute>
+
+<attribute>
+ <id>L3_CACHE_SIZE</id>
+ <description>L3 Cache Size in KB</description>
+ <simpleType>
+ <uint32_t>
+ <default>8192</default>
+ </uint32_t>
+ </simpleType>
+ <persistency>non-volatile</persistency>
+ <readable/>
+ </attribute>
+
+ <attribute>
+ <id>TIME_BASE</id>
+ <description>Time Base frequency in MHZ</description>
+ <simpleType>
+ <uint32_t>
+ <default>0x800000</default>
+ </uint32_t>
+ </simpleType>
+ <persistency>non-volatile</persistency>
+ <readable/>
+</attribute>
+
+<attribute>
+ <id>TLB_DATA_ENTRIES</id>
+ <description>TLB Data Entries</description>
+ <simpleType>
+ <uint32_t>
+ <default>2048</default>
+ </uint32_t>
+ </simpleType>
+ <persistency>non-volatile</persistency>
+ <readable/>
+</attribute>
+
+<attribute>
+ <id>TLB_DATA_ASSOC_SETS</id>
+ <description>TLB Data Associative Sets</description>
+ <simpleType>
+ <uint32_t>
+ <default>4</default>
+ </uint32_t>
+ </simpleType>
+ <persistency>non-volatile</persistency>
+ <readable/>
+</attribute>
+
+<attribute>
+ <id>TLB_INSTR_ENTRIES</id>
+ <description>TLB Instruction Entries</description>
+ <simpleType>
+ <uint32_t>
+ <default>0</default>
+ </uint32_t>
+ </simpleType>
+ <persistency>non-volatile</persistency>
+ <readable/>
+</attribute>
+
+<attribute>
+ <id>TLB_INSTR_ASSOC_SETS</id>
+ <description>TLB Instruction Associative Sets</description>
+ <simpleType>
+ <uint32_t>
+ <default>0</default>
+ </uint32_t>
+ </simpleType>
+ <persistency>non-volatile</persistency>
+ <readable/>
+</attribute>
+
+<attribute>
+ <id>TLB_RESERVE_SIZE</id>
+ <description>Reserve Size in bytes</description>
+ <simpleType>
+ <uint32_t>
+ <default>128</default>
+ </uint32_t>
+ </simpleType>
+ <persistency>non-volatile</persistency>
+ <readable/>
+</attribute>
+
+<attribute>
+ <id>DATA_CACHE_SIZE</id>
+ <description>Data Cache Size in KB</description>
+ <simpleType>
+ <uint32_t>
+ <default>64</default>
+ </uint32_t>
+ </simpleType>
+ <persistency>non-volatile</persistency>
+ <readable/>
+</attribute>
+
+<attribute>
+ <id>DATA_CACHE_LINE_SIZE</id>
+ <description>Data Cache Line Size in bytes</description>
+ <simpleType>
+ <uint32_t>
+ <default>128</default>
+ </uint32_t>
+ </simpleType>
+ <persistency>non-volatile</persistency>
+ <readable/>
+</attribute>
+
+<attribute>
+ <id>THREAD_COUNT</id>
+ <description>Thread Count</description>
+ <simpleType>
+ <uint32_t>
+ <default>0x8</default>
+ </uint32_t>
+ </simpleType>
+ <persistency>non-volatile</persistency>
+ <readable/>
+</attribute>
+
+<attribute>
+ <id>PROC_HW_TOPOLOGY</id>
+ <description>Hardware topology for HDAT
+ creator:MRW
+ consumer:HDAT
+ firmware notes:
+ Hardware Topology 2 Bytes
+ Byte 1:
+ bit 0-3: Node Id
+ bit 4-7: Socket id inside the node
+ bit 8-11: Proc id inside socket
+ bit 12-15:Hub Id inside proc
+ </description>
+ <simpleType>
+ <uint16_t>
+ </uint16_t>
+ </simpleType>
+ <persistency>non-volatile</persistency>
+ <readable/>
+</attribute>
+
+<attribute>
+ <id>ORDINAL_ID</id>
+ <description>Ordinal ID of a target</description>
+ <simpleType>
+ <uint32_t>
+ <default>0xFFFFFFFF</default>
+ </uint32_t>
+ </simpleType>
+ <persistency>non-volatile</persistency>
+ <readable/>
+ <writeable/>
+</attribute>
+
+<attribute>
+ <id>CPU_ATTR</id>
+ <description>CPU Attribute</description>
+ <simpleType>
+ <uint32_t>
+ <default>0x0000001D</default>
+ </uint32_t>
+ </simpleType>
+ <persistency>non-volatile</persistency>
+ <readable/>
+</attribute>
+
+<enumerationType>
+ <id>CHIP_VER</id>
+ <description>Enumeration indicating the chip version</description>
+ <enumerator>
+ <name>DD10</name>
+ <value>0x10</value>
+ </enumerator>
+ <enumerator>
+ <name>DD11</name>
+ <value>0x11</value>
+ </enumerator>
+ <enumerator>
+ <name>DD20</name>
+ <value>0x20</value>
+ </enumerator>
+ <enumerator>
+ <name>DD21</name>
+ <value>0x21</value>
+ </enumerator>
+ <default>DD10</default>
+</enumerationType>
+
+<enumerationType>
+ <id>HW_VER</id>
+ <description>Enumeration indicating the chip HW version</description>
+ <enumerator>
+ <name>FSP_HW_VER</name>
+ <value>0x2</value>
+ </enumerator>
+ <enumerator>
+ <name>BMC_HW_VER</name>
+ <value>0x3</value>
+ </enumerator>
+ <default>BMC_HW_VER</default>
+</enumerationType>
+
+<enumerationType>
+ <id>SW_VER</id>
+ <description>Enumeration indicating the SW version</description>
+ <enumerator>
+ <name>FSP_SW_VER</name>
+ <value>0x1</value>
+ </enumerator>
+ <enumerator>
+ <name>BMC_SW_VER</name>
+ <value>0x2</value>
+ </enumerator>
+ <default>BMC_SW_VER</default>
+</enumerationType>
+
+<enumerationType>
+ <id>ROLE</id>
+ <description>Enumeration indicating the master's FSI type</description>
+ <enumerator>
+ <name>PRIMARY</name>
+ <value>1</value>
+ </enumerator>
+ <enumerator>
+ <name>BACKUP</name>
+ <value>0</value>
+ </enumerator>
+ <default>PRIMARY</default>
+</enumerationType>
+
+<attribute>
+ <id>CHIP_VER</id>
+ <description>Attribute indicating the target's chip version</description>
+ <simpleType>
+ <enumeration>
+ <id>CHIP_VER</id>
+ </enumeration>
+ </simpleType>
+ <persistency>non-volatile</persistency>
+ <readable/>
+ <hasStringConversion/>
+</attribute>
+
+<attribute>
+ <id>HW_VER</id>
+ <description>Attribute indicating the target's hw version</description>
+ <simpleType>
+ <enumeration>
+ <id>HW_VER</id>
+ </enumeration>
+ </simpleType>
+ <persistency>non-volatile</persistency>
+ <readable/>
+ <hasStringConversion/>
+</attribute>
+
+<attribute>
+ <id>SW_VER</id>
+ <description>Attribute indicating the target's software version</description>
+ <simpleType>
+ <enumeration>
+ <id>SW_VER</id>
+ </enumeration>
+ </simpleType>
+ <persistency>non-volatile</persistency>
+ <readable/>
+ <hasStringConversion/>
+</attribute>
+
+<attribute>
+ <id>ROLE</id>
+ <description>Attribute indicating the target's role</description>
+ <simpleType>
+ <enumeration>
+ <id>ROLE</id>
+ </enumeration>
+ </simpleType>
+ <persistency>non-volatile</persistency>
+ <readable/>
+ <hasStringConversion/>
+</attribute>
+
+<attribute>
+ <id>PHYP_SYSTEM_TYPE</id>
+ <description>PHYP system type value for habanero
+ and barreleye (0x3015 and 0x3016 respectively).
+ The value is updated in the system xml.
+ </description>
+ <simpleType>
+ <uint32_t>
+ </uint32_t>
+ </simpleType>
+ <persistency>non-volatile</persistency>
+ <readable/>
+ <writeable/>
+</attribute>
+
+<attribute>
+ <id>ASCII_VPD_LX_KEYWORD</id>
+ <description>LX keyword VPD data for HDAT module
+ </description>
+ <simpleType>
+ <uint64_t>
+ </uint64_t>
+ </simpleType>
+ <persistency>non-volatile</persistency>
+ <readable/>
+ <writeable/>
+</attribute>
+
+<attribute>
+ <id>ENLARGED_IO_SLOT_COUNT</id>
+ <description>
+ User configuration for Enlarged IO SLot Count
+ </description>
+ <simpleType>
+ <uint8_t>
+ </uint8_t>
+ </simpleType>
+ <persistency>volatile-zeroed</persistency>
+ <readable/>
+ <writeable/>
+</attribute>
+
+<attribute>
+ <id>CREATE_DEF_PARTITION</id>
+ <description>
+ User configuration for creating default partition
+ </description>
+ <simpleType>
+ <uint8_t>
+ </uint8_t>
+ </simpleType>
+ <persistency>volatile-zeroed</persistency>
+ <readable/>
+ <writeable/>
+</attribute>
+
+<attribute>
+ <id>IPL_ATTRIBUTES</id>
+ <description>
+ Assorted list of differnt IPL attributes passed via HDAT
+ </description>
+ <complexType>
+ <description>struct - 8 booleans </description>
+ <field>
+ <name>createDefaultPartition</name>
+ <description>
+ 0b0: Dont create default partition;
+ 0b1: Create default partition;
+ </description>
+ <type>uint8_t</type>
+ <bits>1</bits>
+ <default>0</default>
+ </field>
+ <field>
+ <name>clickToAcceptState</name>
+ <description>
+ 0b0: Customer has not accepted license agreement;
+ 0b1: Customer has accepted license agreement;
+ </description>
+ <type>uint8_t</type>
+ <bits>1</bits>
+ <default>0</default>
+ </field>
+ <field>
+ <name>disableVirtIO</name>
+ <description>
+ 0b0: Enable Virtual IO Connections between partitions;
+ 0b1: Disable Virtual IO Connections between partitions;
+ </description>
+ <type>uint8_t</type>
+ <bits>1</bits>
+ <default>0</default>
+ </field>
+ <field>
+ <name>resetPCINumbers</name>
+ <description>
+ 0b0: Do not reset PCI Numbers;
+ 0b1: Reset PCI Numbers;
+ </description>
+ <type>uint8_t</type>
+ <bits>1</bits>
+ <default>0</default>
+ </field>
+ <field>
+ <name>clearHypNVRAM</name>
+ <description>
+ 0b0: Do not clear HYP NVRAM;
+ 0b1: Clear HYP NVRAM;
+ </description>
+ <type>uint8_t</type>
+ <bits>1</bits>
+ <default>0</default>
+ </field>
+ <field>
+ <name>deleteHYPSELs</name>
+ <description>
+ 0b0: Do not delete SELs originating from HYP;
+ 0b1: Delete SELs originating from HYP;
+ </description>
+ <type>uint8_t</type>
+ <bits>1</bits>
+ <default>0</default>
+ </field>
+ <field>
+ <name>deleteHBSELs</name>
+ <description>
+ 0b0: Do not delete SELs originating from Hostboot;
+ 0b1: Delete SELs originating from Hostboot;
+ </description>
+ <type>uint8_t</type>
+ <bits>1</bits>
+ <default>0</default>
+ </field>
+ <field>
+ <name>deleteBMCSELs</name>
+ <description>
+ 0b0: Do not delete SELs originating from BMC;
+ 0b1: Delete SELs originating from BMC;
+ </description>
+ <type>uint8_t</type>
+ <bits>1</bits>
+ <default>0</default>
+ </field>
+ </complexType>
+ <persistency>volatile-zeroed</persistency>
+ <readable/>
+ <writeable/>
+</attribute>
+
+<attribute>
+ <id>PRESERVE_MDC_PARTITION_VPD</id>
+ <description>
+ MFG setting to preserve MDC partition vpd
+ </description>
+ <simpleType>
+ <uint8_t>
+ </uint8_t>
+ </simpleType>
+ <persistency>volatile-zeroed</persistency>
+ <readable/>
+ <writeable/>
+</attribute>
+
+<attribute>
+ <id>HYPERVISOR_IPL_SIDE</id>
+ <description>
+ Platform IPL Side
+ </description>
+ <simpleType>
+ <uint8_t>
+ </uint8_t>
+ </simpleType>
+ <persistency>volatile-zeroed</persistency>
+ <readable/>
+ <writeable/>
+</attribute>
+
+<attribute>
+ <id>OS_IPL_MODE</id>
+ <description>
+ Operating System IPL Mode
+ </description>
+ <simpleType>
+ <uint8_t>
+ </uint8_t>
+ </simpleType>
+ <persistency>volatile-zeroed</persistency>
+ <readable/>
+ <writeable/>
+</attribute>
+
+<attribute>
+ <id>LMB_SIZE</id>
+ <description>
+ Logical Memory Block Size
+ </description>
+ <simpleType>
+ <uint8_t>
+ </uint8_t>
+ </simpleType>
+ <persistency>volatile-zeroed</persistency>
+ <readable/>
+ <writeable/>
+</attribute>
+
+<attribute>
+ <id>MAX_HSL_OPTICONNECT_CONNECTIONS</id>
+ <description>
+ User configuration for max HSL Opticonnect connections
+ </description>
+ <simpleType>
+ <uint8_t>
+ </uint8_t>
+ </simpleType>
+ <persistency>volatile-zeroed</persistency>
+ <readable/>
+ <writeable/>
+</attribute>
+
+<attribute>
+ <id>HUGE_PAGE_COUNT</id>
+ <description>
+ Huge Memory Page Count
+ </description>
+ <simpleType>
+ <uint16_t>
+ </uint16_t>
+ </simpleType>
+ <persistency>volatile-zeroed</persistency>
+ <readable/>
+ <writeable/>
+</attribute>
+
+<attribute>
+ <id>HUGE_PAGE_SIZE</id>
+ <description>
+ Huge Memory Page Size
+ </description>
+ <simpleType>
+ <uint8_t>
+ </uint8_t>
+ </simpleType>
+ <persistency>volatile-zeroed</persistency>
+ <readable/>
+ <writeable/>
+</attribute>
+
+<attribute>
+ <id>VLAN_SWITCHES</id>
+ <description>
+ Number of VLAN Switches
+ </description>
+ <simpleType>
+ <uint8_t>
+ </uint8_t>
+ </simpleType>
+ <persistency>volatile-zeroed</persistency>
+ <readable/>
+ <writeable/>
+</attribute>
+
+<attribute>
+ <id>VTPM_ENABLED</id>
+ <description>
+ Virtual TPM Enabled
+ </description>
+ <simpleType>
+ <uint8_t>
+ </uint8_t>
+ </simpleType>
+ <persistency>volatile-zeroed</persistency>
+ <readable/>
+ <writeable/>
+</attribute>
+
+<attribute>
+ <id>HYPERVISOR_IPL_DESTINATION</id>
+ <description>
+ Hypervisor IPL Destination
+ </description>
+ <simpleType>
+ <uint8_t>
+ </uint8_t>
+ </simpleType>
+ <persistency>volatile-zeroed</persistency>
+ <readable/>
+ <writeable/>
+</attribute>
+
+<attribute>
+ <id>RAW_MTM</id>
+ <description>
+ Raw value of system MTM
+ </description>
+ <simpleType>
+ <string>
+ <sizeInclNull>64</sizeInclNull>
+ </string>
+ </simpleType>
+ <persistency>volatile-zeroed</persistency>
+ <readable/>
+ <writeable/>
+</attribute>
+
+<attribute>
+ <id>HYP_DISPATCH_WHEEL</id>
+ <description>
+ Hypervisor Dispatch Wheel
+ </description>
+ <simpleType>
+ <uint8_t>
+ </uint8_t>
+ </simpleType>
+ <persistency>volatile-zeroed</persistency>
+ <readable/>
+ <writeable/>
+</attribute>
+
+<attribute>
+ <id>SYSTEM_BRAND_NAME</id>
+ <description>
+ Brand Name of OEM systems
+ </description>
+ <simpleType>
+ <string>
+ <sizeInclNull>64</sizeInclNull>
+ </string>
+ </simpleType>
+ <persistency>volatile-zeroed</persistency>
+ <readable/>
+ <writeable/>
+</attribute>
+
+<attribute>
+ <id>SLCA_INDEX</id>
+ <description>
+ SLCA index for this FRU
+ </description>
+ <simpleType>
+ <uint32_t>
+ </uint32_t>
+ </simpleType>
+ <persistency>volatile-zeroed</persistency>
+ <readable/>
+ <writeable/>
+</attribute>
+
+<attribute>
+ <id>SLCA_RID</id>
+ <description>
+ SLCA RID for this FRU
+ </description>
+ <simpleType>
+ <uint32_t>
+ </uint32_t>
+ </simpleType>
+ <persistency>volatile-zeroed</persistency>
+ <readable/>
+ <writeable/>
+</attribute>
+
+</attributes>
diff --git a/src/usr/targeting/common/xmltohb/target_types.xml b/src/usr/targeting/common/xmltohb/target_types.xml
index e2ab2aa69..368183095 100755
--- a/src/usr/targeting/common/xmltohb/target_types.xml
+++ b/src/usr/targeting/common/xmltohb/target_types.xml
@@ -895,6 +895,8 @@
<attribute><id>MSS_VOLT_DDR4_VDDR_SLOPE_EFF_CONFIG</id></attribute>
<attribute><id>MSS_VOLT_DDR4_VDDR_INTERCEPT_EFF_CONFIG</id></attribute>
<attribute><id>MRW_DDR4_VDDR_MAX_LIMIT_EFF_CONFIG</id></attribute>
+ <attribute><id>HDAT_HBRT_NUM_SECTIONS</id></attribute>
+ <attribute><id>HDAT_HBRT_SECTION_SIZE</id></attribute>
</targetType>
<!-- chip-tpm-cectpm -->
@@ -1224,10 +1226,7 @@
<attribute><id>NEST_VCS_ID</id></attribute>
<attribute><id>NEST_VIO_ID</id></attribute>
<attribute><id>NEST_VDDR_ID</id></attribute>
-
<attribute><id>MSS_FREQ</id></attribute>
-
-
<attribute><id>WAIT_N2</id></attribute>
<attribute><id>WAIT_N1</id></attribute>
<attribute><id>WAIT_N0</id></attribute>
@@ -1249,6 +1248,7 @@
<attribute><id>WAIT_N3</id></attribute>
<attribute><id>PROC_PERV_BNDY_PLL_DATA</id></attribute>
<attribute><id>DEVICE_ID</id></attribute>
+ <attribute><id>TOD_CPU_DATA</id></attribute>
</targetType>
<!-- chip-processor-nimbus -->
@@ -2397,6 +2397,130 @@
<attribute><id>CDM_DOMAIN</id><default>FABRIC</default></attribute>
</targetType>
+<targetType>
+ <id>uart</id>
+ <parent>unit</parent>
+ <attribute>
+ <id>CLASS</id>
+ <default>UNIT</default>
+ </attribute>
+ <attribute>
+ <id>TYPE</id>
+ <default>UART</default>
+ </attribute>
+</targetType>
+
+<targetType>
+ <id>sp</id>
+ <parent>chip</parent>
+ <attribute>
+ <id>CLASS</id>
+ <default>CHIP</default>
+ </attribute>
+ <attribute>
+ <id>TYPE</id>
+ <default>SP</default>
+ </attribute>
+</targetType>
+
+<targetType>
+ <id>bmc</id>
+ <parent>sp</parent>
+ <attribute>
+ <id>TYPE</id>
+ <default>SP</default>
+ </attribute>
+ <attribute>
+ <id>MODEL</id>
+ <default>BMC</default>
+ </attribute>
+ <attribute>
+ <id>HWAS_STATE</id>
+ <default>
+ <field><id>deconfiguredByEid</id><value>0</value></field>
+ <field><id>poweredOn</id><value>1</value></field>
+ <field><id>present</id><value>1</value></field>
+ <field><id>functional</id><value>1</value></field>
+ <field><id>dumpfunctional</id><value>0</value></field>
+ <field><id>specdeconfig</id><value>0</value></field>
+ </default>
+ </attribute>
+</targetType>
+
+<targetType>
+ <id>power-supply</id>
+ <parent>unit</parent>
+ <attribute>
+ <id>CLASS</id>
+ <default>UNIT</default>
+ </attribute>
+ <attribute>
+ <id>TYPE</id>
+ <default>PS</default>
+ </attribute>
+</targetType>
+
+<targetType>
+ <id>fan</id>
+ <parent>unit</parent>
+ <attribute>
+ <id>CLASS</id>
+ <default>UNIT</default>
+ </attribute>
+ <attribute>
+ <id>TYPE</id>
+ <default>FAN</default>
+ </attribute>
+</targetType>
+
+<targetType>
+ <id>vrm</id>
+ <parent>unit</parent>
+ <attribute>
+ <id>CLASS</id>
+ <default>UNIT</default>
+ </attribute>
+ <attribute>
+ <id>TYPE</id>
+ <default>VRM</default>
+ </attribute>
+</targetType>
+
+<targetType>
+ <id>usb</id>
+ <parent>unit</parent>
+ <attribute>
+ <id>CLASS</id>
+ <default>UNIT</default>
+ </attribute>
+ <attribute>
+ <id>TYPE</id>
+ <default>USB</default>
+ </attribute>
+</targetType>
+
+<targetType>
+ <id>eth</id>
+ <parent>unit</parent>
+ <attribute>
+ <id>CLASS</id>
+ <default>UNIT</default>
+ </attribute>
+ <attribute>
+ <id>TYPE</id>
+ <default>ETH</default>
+ </attribute>
+</targetType>
+
+<targetType>
+ <id>panel</id>
+ <parent>unit</parent>
+ <attribute>
+ <id>TYPE</id>
+ <default>PANEL</default>
+ </attribute>
+</targetType>
+
<!-- End p9 sub-units -->
</attributes>
diff --git a/src/usr/targeting/common/xmltohb/target_types_openpower.xml b/src/usr/targeting/common/xmltohb/target_types_openpower.xml
deleted file mode 100644
index f04b2bc6b..000000000
--- a/src/usr/targeting/common/xmltohb/target_types_openpower.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<!-- IBM_PROLOG_BEGIN_TAG -->
-<!-- This is an automatically generated prolog. -->
-<!-- -->
-<!-- $Source: src/usr/targeting/common/xmltohb/target_types_openpower.xml $ -->
-<!-- -->
-<!-- OpenPOWER HostBoot Project -->
-<!-- -->
-<!-- Contributors Listed Below - COPYRIGHT 2016 -->
-<!-- [+] International Business Machines Corp. -->
-<!-- -->
-<!-- -->
-<!-- Licensed under the Apache License, Version 2.0 (the "License"); -->
-<!-- you may not use this file except in compliance with the License. -->
-<!-- You may obtain a copy of the License at -->
-<!-- -->
-<!-- http://www.apache.org/licenses/LICENSE-2.0 -->
-<!-- -->
-<!-- Unless required by applicable law or agreed to in writing, software -->
-<!-- distributed under the License is distributed on an "AS IS" BASIS, -->
-<!-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or -->
-<!-- implied. See the License for the specific language governing -->
-<!-- permissions and limitations under the License. -->
-<!-- -->
-<!-- IBM_PROLOG_END_TAG -->
-<attributes>
-
-</attributes>
diff --git a/src/usr/targeting/common/xmltohb/target_types_oppowervm.xml b/src/usr/targeting/common/xmltohb/target_types_oppowervm.xml
new file mode 100644
index 000000000..9274ac9ce
--- /dev/null
+++ b/src/usr/targeting/common/xmltohb/target_types_oppowervm.xml
@@ -0,0 +1,193 @@
+<!-- IBM_PROLOG_BEGIN_TAG -->
+<!-- This is an automatically generated prolog. -->
+<!-- -->
+<!-- $Source: src/usr/targeting/common/xmltohb/target_types_oppowervm.xml $ -->
+<!-- -->
+<!-- OpenPOWER HostBoot Project -->
+<!-- -->
+<!-- Contributors Listed Below - COPYRIGHT 2016 -->
+<!-- [+] International Business Machines Corp. -->
+<!-- -->
+<!-- -->
+<!-- Licensed under the Apache License, Version 2.0 (the "License"); -->
+<!-- you may not use this file except in compliance with the License. -->
+<!-- You may obtain a copy of the License at -->
+<!-- -->
+<!-- http://www.apache.org/licenses/LICENSE-2.0 -->
+<!-- -->
+<!-- Unless required by applicable law or agreed to in writing, software -->
+<!-- distributed under the License is distributed on an "AS IS" BASIS, -->
+<!-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or -->
+<!-- implied. See the License for the specific language governing -->
+<!-- permissions and limitations under the License. -->
+<!-- -->
+<!-- IBM_PROLOG_END_TAG -->
+<attributes>
+
+<!-- =====================================================================
+ Contains the target definition of attributes that are only available
+ on openpower systems. This file is only compiled when
+ CONFIG_XML_INCLUDE_OPENPOWER is set to true and is always false on
+ FSP based systems.
+ =====================================================================
+ -->
+
+<targetTypeExtension>
+ <id>base</id>
+ <attribute><id>ORDINAL_ID</id></attribute>
+</targetTypeExtension>
+
+<targetTypeExtension>
+ <id>sys-sys-power8</id>
+ <attribute><id>THREAD_COUNT</id></attribute>
+ <attribute><id>SERIAL_NUMBER</id></attribute>
+ <attribute><id>PHYP_SYSTEM_TYPE</id></attribute>
+ <attribute><id>ASCII_VPD_LX_KEYWORD</id></attribute>
+ <attribute><id>IPL_ATTRIBUTES</id></attribute>
+ <attribute><id>PRESERVE_MDC_PARTITION_VPD</id></attribute>
+ <attribute><id>HYPERVISOR_IPL_SIDE</id><default>0</default></attribute>
+ <attribute><id>OS_IPL_MODE</id></attribute>
+ <attribute><id>LMB_SIZE</id></attribute>
+ <attribute><id>MAX_HSL_OPTICONNECT_CONNECTIONS</id></attribute>
+ <attribute><id>HUGE_PAGE_COUNT</id></attribute>
+ <attribute><id>HUGE_PAGE_SIZE</id></attribute>
+ <attribute><id>VLAN_SWITCHES</id></attribute>
+ <attribute><id>VTPM_ENABLED</id></attribute>
+ <attribute><id>HYP_DISPATCH_WHEEL</id></attribute>
+ <attribute><id>SYSTEM_BRAND_NAME</id></attribute>
+ <attribute><id>HYPERVISOR_IPL_DESTINATION</id></attribute>
+ <attribute><id>RAW_MTM</id></attribute>
+ <attribute><id>SLCA_INDEX</id></attribute>
+ <attribute><id>SLCA_RID</id></attribute>
+</targetTypeExtension>
+
+<targetTypeExtension>
+ <id>chip-processor</id>
+ <attribute><id>ICACHE_LINE_SIZE</id></attribute>
+ <attribute><id>ICACHE_BLOCK_SIZE</id></attribute>
+ <attribute><id>ICACHE_SIZE</id></attribute>
+ <attribute><id>ICACHE_ASSOC_SETS</id></attribute>
+ <attribute><id>DCACHE_LINE_SIZE</id></attribute>
+ <attribute><id>DCACHE_ASSOC_SETS</id></attribute>
+ <attribute><id>DATA_CACHE_SIZE</id></attribute>
+ <attribute><id>DATA_CACHE_LINE_SIZE</id></attribute>
+ <attribute><id>L2_CACHE_LINE_SIZE</id></attribute>
+ <attribute><id>L2_CACHE_SIZE</id></attribute>
+ <attribute><id>L2_CACHE_ASSOC_SETS</id></attribute>
+ <attribute><id>L3_CACHE_LINE_SIZE</id></attribute>
+ <attribute><id>L3_CACHE_SIZE</id></attribute>
+ <attribute><id>TIME_BASE</id></attribute>
+ <attribute><id>TLB_DATA_ENTRIES</id></attribute>
+ <attribute><id>TLB_INSTR_ENTRIES</id></attribute>
+ <attribute><id>TLB_DATA_ASSOC_SETS</id></attribute>
+ <attribute><id>TLB_INSTR_ASSOC_SETS</id></attribute>
+ <attribute><id>TLB_RESERVE_SIZE</id></attribute>
+ <attribute><id>CPU_ATTR</id></attribute>
+ <attribute>
+ <id>PROC_HW_TOPOLOGY</id>
+ <default>0x00000000</default>
+ </attribute>
+ <attribute>
+ <id>SLCA_INDEX</id>
+ <default>0x00000000</default>
+ </attribute>
+ <attribute>
+ <id>SLCA_RID</id>
+ <default>0x00001000</default>
+ </attribute>
+</targetTypeExtension>
+
+<targetTypeExtension>
+ <id>sp</id>
+ <attribute><id>CHIP_VER</id></attribute>
+ <attribute><id>CHIP_ID</id></attribute>
+ <attribute><id>HW_VER</id></attribute>
+ <attribute><id>SW_VER</id></attribute>
+ <attribute><id>ROLE</id></attribute>
+</targetTypeExtension>
+
+<targetTypeExtension>
+ <id>bmc</id>
+ <attribute><id>CHIP_VER</id></attribute>
+ <attribute><id>CHIP_ID</id><default>0</default></attribute>
+ <attribute><id>SLCA_INDEX</id></attribute>
+ <attribute><id>SLCA_RID</id></attribute>
+ <attribute><id>HW_VER</id></attribute>
+ <attribute><id>SW_VER</id></attribute>
+ <attribute><id>ROLE</id></attribute>
+</targetTypeExtension>
+
+<targetTypeExtension>
+ <id>lcard-dimm</id>
+ <attribute><id>SLCA_INDEX</id></attribute>
+ <attribute><id>SLCA_RID</id></attribute>
+</targetTypeExtension>
+
+<targetTypeExtension>
+ <id>unit-pci-power8</id>
+ <attribute><id>SLCA_INDEX</id></attribute>
+ <attribute><id>SLCA_RID</id></attribute>
+</targetTypeExtension>
+
+<targetTypeExtension>
+ <id>enc-node-power8</id>
+ <attribute><id>ENLARGED_IO_SLOT_COUNT</id></attribute>
+ <attribute><id>SLCA_INDEX</id></attribute>
+ <attribute><id>SLCA_RID</id></attribute>
+</targetTypeExtension>
+
+<targetTypeExtension>
+ <id>chip-membuf-centaur</id>
+ <attribute><id>SLCA_INDEX</id></attribute>
+ <attribute><id>SLCA_RID</id></attribute>
+</targetTypeExtension>
+
+<targetTypeExtension>
+ <id>uart</id>
+ <attribute><id>SLCA_INDEX</id></attribute>
+ <attribute><id>SLCA_RID</id></attribute>
+</targetTypeExtension>
+
+<targetTypeExtension>
+ <id>sp</id>
+ <attribute><id>SLCA_INDEX</id></attribute>
+ <attribute><id>SLCA_RID</id></attribute>
+</targetTypeExtension>
+
+<targetTypeExtension>
+ <id>power-supply</id>
+ <attribute><id>SLCA_INDEX</id></attribute>
+ <attribute><id>SLCA_RID</id></attribute>
+</targetTypeExtension>
+
+<targetTypeExtension>
+ <id>fan</id>
+ <attribute><id>SLCA_INDEX</id></attribute>
+ <attribute><id>SLCA_RID</id></attribute>
+</targetTypeExtension>
+
+<targetTypeExtension>
+ <id>vrm</id>
+ <attribute><id>SLCA_INDEX</id></attribute>
+ <attribute><id>SLCA_RID</id></attribute>
+</targetTypeExtension>
+
+<targetTypeExtension>
+ <id>usb</id>
+ <attribute><id>SLCA_INDEX</id></attribute>
+ <attribute><id>SLCA_RID</id></attribute>
+</targetTypeExtension>
+
+<targetTypeExtension>
+ <id>eth</id>
+ <attribute><id>SLCA_INDEX</id></attribute>
+ <attribute><id>SLCA_RID</id></attribute>
+</targetTypeExtension>
+
+<targetTypeExtension>
+ <id>panel</id>
+ <attribute><id>SLCA_INDEX</id></attribute>
+ <attribute><id>SLCA_RID</id></attribute>
+</targetTypeExtension>
+
+</attributes>
diff --git a/src/usr/targeting/xmltohb/makefile b/src/usr/targeting/xmltohb/makefile
index 389562e4b..bea46f4c9 100644
--- a/src/usr/targeting/xmltohb/makefile
+++ b/src/usr/targeting/xmltohb/makefile
@@ -78,8 +78,8 @@ XMLTOHB_HB_ATTRIBUTE_SOURCES = attribute_types_hb.xml
XMLTOHB_HB_TARGET_SOURCES = target_types_hb.xml
# attribute files that are only included in openpower build.
-XMLTOHB_OPENPOWER_ATTRIBUTE_SOURCES = attribute_types_openpower.xml
-XMLTOHB_OPENPOWER_TARGET_SOURCES = target_types_openpower.xml
+XMLTOHB_OPENPOWER_ATTRIBUTE_SOURCES = attribute_types_oppowervm.xml
+XMLTOHB_OPENPOWER_TARGET_SOURCES = target_types_oppowervm.xml
XMLTOHB_MERGED_COMMON_TARGET_SOURCES = target_types_merged.xml
@@ -89,15 +89,15 @@ XMLTOHB_MERGED_COMMON_TARGET_SOURCES = target_types_merged.xml
XMLTOHB_CUSTOMIZE_TARGET_SOURCES = target_types_customize.xml
XMLTOHB_TARGET_SOURCES += target_types_hb.xml
-XMLTOHB_TARGET_SOURCES += $(if $(CONFIG_INCLUDE_OPENPOWER_XML), target_types_openpower.xml)
+XMLTOHB_TARGET_SOURCES += $(if $(CONFIG_INCLUDE_XML_OPENPOWER), target_types_oppowervm.xml)
#Define XMLTOHB_GENERIC_SOURCES
XMLTOHB_GENERIC_SOURCES += ${XMLTOHB_COMMON_ATTRIBUTE_SOURCES}
XMLTOHB_GENERIC_SOURCES += ${XMLTOHB_HB_ATTRIBUTE_SOURCES}
-XMLTOHB_GENERIC_SOURCES += $(if $(CONFIG_OPENPOWER_ONLY),${XMLTOHB_OPENPOWER_ATTRIBUTE_SOURCES})
+XMLTOHB_GENERIC_SOURCES += $(if $(CONFIG_INCLUDE_XML_OPENPOWER),${XMLTOHB_OPENPOWER_ATTRIBUTE_SOURCES})
XMLTOHB_GENERIC_SOURCES += ${GENDIR}/${XMLTOHB_MERGED_COMMON_TARGET_SOURCES}
XMLTOHB_GENERIC_SOURCES += ${XMLTOHB_HB_TARGET_SOURCES}
-XMLTOHB_GENERIC_SOURCES += $(if $(CONFIG_OPENPOWER_ONLY),${XMLTOHB_OPENPOWER_TARGET_SOURCES})
+XMLTOHB_GENERIC_SOURCES += $(if $(CONFIG_INCLUDE_XML_OPENPOWER),${XMLTOHB_OPENPOWER_TARGET_SOURCES})
TEMP_DEFAULT_SOURCES = tempdefaults.xml
diff --git a/src/usr/vpd/pvpd.H b/src/usr/vpd/pvpd.H
index 092dd45f7..32679507a 100644
--- a/src/usr/vpd/pvpd.H
+++ b/src/usr/vpd/pvpd.H
@@ -5,7 +5,7 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
-/* Contributors Listed Below - COPYRIGHT 2013,2015 */
+/* Contributors Listed Below - COPYRIGHT 2013,2016 */
/* [+] International Business Machines Corp. */
/* */
/* */
@@ -103,6 +103,7 @@ namespace PVPD
{ VP, "VP" },
{ VS, "VS" },
{ VZ, "VZ" },
+ { LX, "LX" },
// -------------------------------------------------------------------
// DO NOT USE!! This is for test purposes ONLY!
OpenPOWER on IntegriCloud