diff options
author | CamVan Nguyen <ctnguyen@us.ibm.com> | 2012-10-31 11:57:47 -0500 |
---|---|---|
committer | A. Patrick Williams III <iawillia@us.ibm.com> | 2012-11-07 16:04:05 -0600 |
commit | 7b6f36d1bec12d368dafb1b380ae90056637594c (patch) | |
tree | 070b25d0f3d1d76b4e844728dfb3c453d291d8dc | |
parent | d871f70ebe8e9e91d8dd4b604dfee0303461b9aa (diff) | |
download | talos-hostboot-7b6f36d1bec12d368dafb1b380ae90056637594c.tar.gz talos-hostboot-7b6f36d1bec12d368dafb1b380ae90056637594c.zip |
Only enable candidate PSI links
Change-Id: Ie3cc120d05ac17126bde15b213a80701878f4a59
RTC: 50561
Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/2187
Reviewed-by: Van H. Lee <vanlee@us.ibm.com>
Tested-by: Jenkins Server
Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
-rw-r--r-- | src/usr/hwpf/plat/fapiPlatAttributeService.C | 79 | ||||
-rw-r--r-- | src/usr/targeting/common/xmltohb/simics_MURANO.system.xml | 8 | ||||
-rw-r--r-- | src/usr/targeting/common/xmltohb/simics_VENICE.system.xml | 28 | ||||
-rw-r--r-- | src/usr/targeting/xmltohb/TULETA.mrw.xml | 8 | ||||
-rwxr-xr-x | src/usr/targeting/xmltohb/genHwsvMrwXml.pl | 19 |
5 files changed, 84 insertions, 58 deletions
diff --git a/src/usr/hwpf/plat/fapiPlatAttributeService.C b/src/usr/hwpf/plat/fapiPlatAttributeService.C index 0d72fbd44..a1778861d 100644 --- a/src/usr/hwpf/plat/fapiPlatAttributeService.C +++ b/src/usr/hwpf/plat/fapiPlatAttributeService.C @@ -1168,31 +1168,36 @@ fapi::ReturnCode fapiPlatGetProcPsiBridgeBarEnable ( uint8_t &o_psiBridgeBarEnable ) { fapi::ReturnCode l_fapirc( fapi::FAPI_RC_SUCCESS ); - uint64_t l_procNum = 0; - uint8_t l_isEnabled = PROC_BARS_DISABLE; + o_psiBridgeBarEnable = PROC_BARS_DISABLE; do { - /*@ - * @errortype - * @moduleid MOD_ATTR_PROC_PSI_BRIDGE_BAR_ENABLE_GET - * @reasoncode RC_ATTR_BAD_TARGET_PARAM - * @devdesc Null FAPI Target passed to ATTR_GET - */ - l_fapirc = barsPreCheck( - i_pTarget, - fapi::MOD_ATTR_PROC_PSI_BRIDGE_BAR_ENABLE_GET, - l_procNum, - l_isEnabled ); - if ( l_fapirc ) + if (i_pTarget == NULL) { - FAPI_ERR("ERROR : NULL FAPI Target"); + FAPI_ERR("Error: NULL FAPI Target passed"); + /*@ + * @errortype + * @moduleid MOD_ATTR_PROC_PSI_BRIDGE_BAR_ENABLE_GET + * @reasoncode RC_ATTR_BAD_TARGET_PARAM + * @devdesc Null FAPI Target passed to ATTR_GET + */ + errlHndl_t l_pError = new ERRORLOG::ErrlEntry( + ERRORLOG::ERRL_SEV_INFORMATIONAL, + fapi::MOD_ATTR_PROC_PSI_BRIDGE_BAR_ENABLE_GET, + fapi::RC_ATTR_BAD_TARGET_PARAM ); + l_fapirc.setPlatError(reinterpret_cast<void *> (l_pError)); break; } - // return - o_psiBridgeBarEnable = l_isEnabled; + const TARGETING::Target* l_pProcTarget = + reinterpret_cast<const TARGETING::Target*>(i_pTarget->get()); + uint64_t bar = l_pProcTarget->getAttr<TARGETING::ATTR_PSI_BRIDGE_BASE_ADDR>(); + // if bar is not zero + if ( bar ) + { + o_psiBridgeBarEnable = PROC_BARS_ENABLE; + } } while(0); return l_fapirc; @@ -1203,27 +1208,37 @@ fapi::ReturnCode fapiPlatGetProcFspBarEnable ( uint8_t &o_fspBarEnable ) { fapi::ReturnCode l_fapirc( fapi::FAPI_RC_SUCCESS ); - uint64_t l_procNum = 0; - uint8_t l_isEnabled = PROC_BARS_DISABLE; + o_fspBarEnable = PROC_BARS_DISABLE; do { - /*@ - * @errortype - * @moduleid MOD_ATTR_PROC_FSP_BAR_ENABLE_GET - * @reasoncode RC_ATTR_BAD_TARGET_PARAM - * @devdesc Null FAPI Target passed to ATTR_GET - */ - l_fapirc = barsPreCheck( i_pTarget, - fapi::MOD_ATTR_PROC_FSP_BAR_ENABLE_GET, - l_procNum, - l_isEnabled ); - if ( l_fapirc ) + if (i_pTarget == NULL) { - FAPI_ERR("ERROR : NULL FAPI Target"); + FAPI_ERR("Error: NULL FAPI Target passed"); + /*@ + * @errortype + * @moduleid MOD_ATTR_PROC_FSP_BAR_ENABLE_GET + * @reasoncode RC_ATTR_BAD_TARGET_PARAM + * @devdesc Null FAPI Target passed to ATTR_GET + */ + errlHndl_t l_pError = new ERRORLOG::ErrlEntry( + ERRORLOG::ERRL_SEV_INFORMATIONAL, + fapi::MOD_ATTR_PROC_FSP_BAR_ENABLE_GET, + fapi::RC_ATTR_BAD_TARGET_PARAM ); + l_fapirc.setPlatError(reinterpret_cast<void *> (l_pError)); break; } - o_fspBarEnable = l_isEnabled; + const TARGETING::Target* l_pProcTarget = + reinterpret_cast<const TARGETING::Target*>(i_pTarget->get()); + + uint64_t bar = l_pProcTarget->getAttr<TARGETING::ATTR_FSP_BASE_ADDR>(); + + // if bar is not zero + if ( bar ) + { + o_fspBarEnable = PROC_BARS_ENABLE; + + } } while(0); diff --git a/src/usr/targeting/common/xmltohb/simics_MURANO.system.xml b/src/usr/targeting/common/xmltohb/simics_MURANO.system.xml index f154fb129..60b92a9fe 100644 --- a/src/usr/targeting/common/xmltohb/simics_MURANO.system.xml +++ b/src/usr/targeting/common/xmltohb/simics_MURANO.system.xml @@ -821,10 +821,10 @@ </attribute> <attribute><id>VPD_REC_NUM</id><default>1</default></attribute> <attribute><id>FSP_BASE_ADDR</id> - <default>0x0003FFE100000000</default> + <default>0x0000000000000000</default> </attribute> <attribute><id>PSI_BRIDGE_BASE_ADDR</id> - <default>0x0003FFFE80100000</default> + <default>0x0000000000000000</default> </attribute> <attribute><id>INTP_BASE_ADDR</id> <default>0x0003FFFF80100000</default> @@ -2026,10 +2026,10 @@ </attribute> <attribute><id>VPD_REC_NUM</id><default>3</default></attribute> <attribute><id>FSP_BASE_ADDR</id> - <default>0x0003FFE300000000</default> + <default>0x0000000000000000</default> </attribute> <attribute><id>PSI_BRIDGE_BASE_ADDR</id> - <default>0x0003FFFE80300000</default> + <default>0x0000000000000000</default> </attribute> <attribute><id>INTP_BASE_ADDR</id> <default>0x0003FFFF80300000</default> diff --git a/src/usr/targeting/common/xmltohb/simics_VENICE.system.xml b/src/usr/targeting/common/xmltohb/simics_VENICE.system.xml index 32bab9ce8..c0ab6578f 100644 --- a/src/usr/targeting/common/xmltohb/simics_VENICE.system.xml +++ b/src/usr/targeting/common/xmltohb/simics_VENICE.system.xml @@ -1132,10 +1132,10 @@ </attribute> <attribute><id>VPD_REC_NUM</id><default>1</default></attribute> <attribute><id>FSP_BASE_ADDR</id> - <default>0x0003FFF000000000</default> + <default>0x0000000000000000</default> </attribute> <attribute><id>PSI_BRIDGE_BASE_ADDR</id> - <default>0x0003FFFE80100000</default> + <default>0x0000000000000000</default> </attribute> <attribute><id>INTP_BASE_ADDR</id> <default>0x0003FFFF80100000</default> @@ -2068,10 +2068,10 @@ </attribute> <attribute><id>VPD_REC_NUM</id><default>2</default></attribute> <attribute><id>FSP_BASE_ADDR</id> - <default>0x0004000000000000</default> + <default>0x0000000000000000</default> </attribute> <attribute><id>PSI_BRIDGE_BASE_ADDR</id> - <default>0x0003FFFE80200000</default> + <default>0x0000000000000000</default> </attribute> <attribute><id>INTP_BASE_ADDR</id> <default>0x0003FFFF80200000</default> @@ -3004,10 +3004,10 @@ </attribute> <attribute><id>VPD_REC_NUM</id><default>3</default></attribute> <attribute><id>FSP_BASE_ADDR</id> - <default>0x0004001000000000</default> + <default>0x0000000000000000</default> </attribute> <attribute><id>PSI_BRIDGE_BASE_ADDR</id> - <default>0x0003FFFE80300000</default> + <default>0x0000000000000000</default> </attribute> <attribute><id>INTP_BASE_ADDR</id> <default>0x0003FFFF80300000</default> @@ -3938,10 +3938,10 @@ </attribute> <attribute><id>VPD_REC_NUM</id><default>4</default></attribute> <attribute><id>FSP_BASE_ADDR</id> - <default>0x0004002000000000</default> + <default>0x0000000000000000</default> </attribute> <attribute><id>PSI_BRIDGE_BASE_ADDR</id> - <default>0x0003FFFE80400000</default> + <default>0x0000000000000000</default> </attribute> <attribute><id>INTP_BASE_ADDR</id> <default>0x0003FFFF80400000</default> @@ -4874,10 +4874,10 @@ </attribute> <attribute><id>VPD_REC_NUM</id><default>5</default></attribute> <attribute><id>FSP_BASE_ADDR</id> - <default>0x0004003000000000</default> + <default>0x0000000000000000</default> </attribute> <attribute><id>PSI_BRIDGE_BASE_ADDR</id> - <default>0x0003FFFE80500000</default> + <default>0x0000000000000000</default> </attribute> <attribute><id>INTP_BASE_ADDR</id> <default>0x0003FFFF80500000</default> @@ -5808,10 +5808,10 @@ </attribute> <attribute><id>VPD_REC_NUM</id><default>6</default></attribute> <attribute><id>FSP_BASE_ADDR</id> - <default>0x0004004000000000</default> + <default>0x0000000000000000</default> </attribute> <attribute><id>PSI_BRIDGE_BASE_ADDR</id> - <default>0x0003FFFE80600000</default> + <default>0x0000000000000000</default> </attribute> <attribute><id>INTP_BASE_ADDR</id> <default>0x0003FFFF80600000</default> @@ -6743,10 +6743,10 @@ </attribute> <attribute><id>VPD_REC_NUM</id><default>7</default></attribute> <attribute><id>FSP_BASE_ADDR</id> - <default>0x0004005000000000</default> + <default>0x0000000000000000</default> </attribute> <attribute><id>PSI_BRIDGE_BASE_ADDR</id> - <default>0x0003FFFE80700000</default> + <default>0x0000000000000000</default> </attribute> <attribute><id>INTP_BASE_ADDR</id> <default>0x0003FFFF80700000</default> diff --git a/src/usr/targeting/xmltohb/TULETA.mrw.xml b/src/usr/targeting/xmltohb/TULETA.mrw.xml index 0bdc726cc..62f349292 100644 --- a/src/usr/targeting/xmltohb/TULETA.mrw.xml +++ b/src/usr/targeting/xmltohb/TULETA.mrw.xml @@ -759,10 +759,10 @@ </attribute> <!-- Data from PHYP Memory Map --> <attribute><id>FSP_BASE_ADDR</id> - <default>0x0003FFE100000000</default> + <default>0x0000000000000000</default> </attribute> <attribute><id>PSI_BRIDGE_BASE_ADDR</id> - <default>0x0003FFFE80100000</default> + <default>0x0000000000000000</default> </attribute> <attribute><id>INTP_BASE_ADDR</id> <default>0x0003FFFF80100000</default> @@ -1899,10 +1899,10 @@ </attribute> <!-- Data from PHYP Memory Map --> <attribute><id>FSP_BASE_ADDR</id> - <default>0x0003FFE300000000</default> + <default>0x0000000000000000</default> </attribute> <attribute><id>PSI_BRIDGE_BASE_ADDR</id> - <default>0x0003FFFE80300000</default> + <default>0x0000000000000000</default> </attribute> <attribute><id>INTP_BASE_ADDR</id> <default>0x0003FFFF80300000</default> diff --git a/src/usr/targeting/xmltohb/genHwsvMrwXml.pl b/src/usr/targeting/xmltohb/genHwsvMrwXml.pl index 3fbd4be28..5fff50462 100755 --- a/src/usr/targeting/xmltohb/genHwsvMrwXml.pl +++ b/src/usr/targeting/xmltohb/genHwsvMrwXml.pl @@ -1299,16 +1299,27 @@ sub generate_proc print "\n"; print " <!-- Data from PHYP Memory Map -->\n"; + # Calculate the FSP and PSI BRIGDE BASE ADDR + my $fspBase = 0; + my $psiBase = 0; + foreach my $i (@{$psiBus->{'psi-bus'}}) + { + if ( $i->{'processor'}->{target}->{position} eq $proc ) + { + $fspBase = 0x0003FFE000000000 + 0x100000000*$proc; + $psiBase = 0x0003FFFE80000000 + 0x100000*$proc; + last; + } + } + # Starts at 1024TB - 128GB, 4GB per proc printf( " <attribute><id>FSP_BASE_ADDR</id>\n" ); - printf( " <default>0x%016X</default>\n", - 0x0003FFE000000000 + 0x100000000*$proc ); + printf( " <default>0x%016X</default>\n", $fspBase ); printf( " </attribute>\n" ); # Starts at 1024TB - 6GB, 1MB per link/proc printf( " <attribute><id>PSI_BRIDGE_BASE_ADDR</id>\n" ); - printf( " <default>0x%016X</default>\n", - 0x0003FFFE80000000 + 0x100000*$proc ); + printf( " <default>0x%016X</default>\n", $psiBase ); printf( " </attribute>\n" ); # Starts at 1024TB - 2GB, 1MB per proc |