summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCamVan Nguyen <ctnguyen@us.ibm.com>2012-10-31 11:57:47 -0500
committerA. Patrick Williams III <iawillia@us.ibm.com>2012-11-07 16:04:05 -0600
commit7b6f36d1bec12d368dafb1b380ae90056637594c (patch)
tree070b25d0f3d1d76b4e844728dfb3c453d291d8dc
parentd871f70ebe8e9e91d8dd4b604dfee0303461b9aa (diff)
downloadtalos-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.C79
-rw-r--r--src/usr/targeting/common/xmltohb/simics_MURANO.system.xml8
-rw-r--r--src/usr/targeting/common/xmltohb/simics_VENICE.system.xml28
-rw-r--r--src/usr/targeting/xmltohb/TULETA.mrw.xml8
-rwxr-xr-xsrc/usr/targeting/xmltohb/genHwsvMrwXml.pl19
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
OpenPOWER on IntegriCloud