diff options
author | Elizabeth Liner <eliner@us.ibm.com> | 2016-07-27 15:13:03 -0500 |
---|---|---|
committer | Daniel M. Crowell <dcrowell@us.ibm.com> | 2016-09-26 14:41:38 -0400 |
commit | 9b2a0194995ebfdd070cf5facb0743fb08fdc38e (patch) | |
tree | bc08dd6d1a00b5350325a531b7e96bbac2d644d6 /src | |
parent | 1f8764f7c1673eb85a40ab36be14888f84e57545 (diff) | |
download | talos-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')
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! |