summaryrefslogtreecommitdiffstats
path: root/src/usr/hwpf/hwp/dram_initialization/proc_setup_bars
diff options
context:
space:
mode:
authorThi Tran <thi@us.ibm.com>2013-11-01 11:04:01 -0500
committerA. Patrick Williams III <iawillia@us.ibm.com>2013-11-04 09:11:12 -0600
commitfaaf17312bbc7bc7ca7cecc7c56d5cccc29e28fe (patch)
tree843dc31e39545bad77e485392a048da7fd39f254 /src/usr/hwpf/hwp/dram_initialization/proc_setup_bars
parentda7dcbb79715c1af780e7fdae9dfc8cc0c66c30e (diff)
downloadtalos-hostboot-faaf17312bbc7bc7ca7cecc7c56d5cccc29e28fe.tar.gz
talos-hostboot-faaf17312bbc7bc7ca7cecc7c56d5cccc29e28fe.zip
INITPROC: Hostboot - SW228155 Build SMP
Change-Id: Id08f6606619977a0c686d8d130e58249626adf70 CQ:SW228155 Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/7001 Tested-by: Jenkins Server Reviewed-by: Thi N. Tran <thi@us.ibm.com> Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
Diffstat (limited to 'src/usr/hwpf/hwp/dram_initialization/proc_setup_bars')
-rw-r--r--src/usr/hwpf/hwp/dram_initialization/proc_setup_bars/proc_fab_smp.C46
-rw-r--r--src/usr/hwpf/hwp/dram_initialization/proc_setup_bars/proc_fab_smp.H8
2 files changed, 45 insertions, 9 deletions
diff --git a/src/usr/hwpf/hwp/dram_initialization/proc_setup_bars/proc_fab_smp.C b/src/usr/hwpf/hwp/dram_initialization/proc_setup_bars/proc_fab_smp.C
index 786fa84b8..1d9f3cada 100644
--- a/src/usr/hwpf/hwp/dram_initialization/proc_setup_bars/proc_fab_smp.C
+++ b/src/usr/hwpf/hwp/dram_initialization/proc_setup_bars/proc_fab_smp.C
@@ -20,7 +20,7 @@
/* Origin: 30 */
/* */
/* IBM_PROLOG_END_TAG */
-// $Id: proc_fab_smp.C,v 1.7 2012/09/24 05:00:12 jmcgill Exp $
+// $Id: proc_fab_smp.C,v 1.8 2013/09/23 22:01:31 jmcgill Exp $
// $Source: /afs/awd/projects/eclipz/KnowledgeBase/.cvsroot/eclipz/chips/p8/working/procedures/ipl/fapi/proc_fab_smp.C,v $
//------------------------------------------------------------------------------
// *|
@@ -51,7 +51,7 @@ extern "C" {
//------------------------------------------------------------------------------
// function: utility function to read & return fabric node ID attribute
-// parameters: i_target => pointer to chip target
+// parameters: i_target => pointer to chip/chiplet target
// o_node_id => structure encapsulating node ID value
// returns: FAPI_RC_SUCCESS if attribute read is successful & value is valid,
// RC_PROC_FAB_SMP_FABRIC_NODE_ID_ATTR_ERR if attribute value is
@@ -64,6 +64,9 @@ fapi::ReturnCode proc_fab_smp_get_node_id_attr(
{
// return code
fapi::ReturnCode rc;
+ // chiplet->chip target conversion
+ bool use_parent = false;
+ fapi::Target parent_target;
// temporary attribute storage used to build procedure data structures
uint8_t node_id_attr;
@@ -72,9 +75,24 @@ fapi::ReturnCode proc_fab_smp_get_node_id_attr(
do
{
+ if (i_target->getType() != fapi::TARGET_TYPE_PROC_CHIP)
+ {
+ use_parent = true;
+ // retrieve parent target if input target is a chiplet
+ rc = fapiGetParentChip(*i_target,
+ parent_target);
+ if (!rc.ok())
+ {
+ FAPI_ERR("proc_fab_smp_get_node_id_attr: Error from fapiGetParentChip");
+ break;
+ }
+ }
+
// retrieve node ID attribute
rc = FAPI_ATTR_GET(ATTR_FABRIC_NODE_ID,
- i_target,
+ ((use_parent)?
+ (&parent_target):
+ (i_target)),
node_id_attr);
if (!rc.ok())
{
@@ -131,7 +149,7 @@ fapi::ReturnCode proc_fab_smp_get_node_id_attr(
//------------------------------------------------------------------------------
// function: utility function to read & return fabric chip ID attribute
-// parameters: i_target => pointer to chip target
+// parameters: i_target => pointer to chip/chiplet target
// o_chip_id => structure encapsulating chip ID value
// returns: FAPI_RC_SUCCESS if attribute read is successful & value is valid,
// RC_PROC_FAB_SMP_FABRIC_CHIP_ID_ATTR_ERR if attribute value is
@@ -144,6 +162,9 @@ fapi::ReturnCode proc_fab_smp_get_chip_id_attr(
{
// return code
fapi::ReturnCode rc;
+ // chiplet->chip target conversion
+ bool use_parent = false;
+ fapi::Target parent_target;
// temporary attribute storage used to build procedure data structures
uint8_t chip_id_attr;
@@ -152,9 +173,24 @@ fapi::ReturnCode proc_fab_smp_get_chip_id_attr(
do
{
+ if (i_target->getType() != fapi::TARGET_TYPE_PROC_CHIP)
+ {
+ use_parent = true;
+ // retrieve parent target if input target is a chiplet
+ rc = fapiGetParentChip(*i_target,
+ parent_target);
+ if (!rc.ok())
+ {
+ FAPI_ERR("proc_fab_smp_get_chip_id_attr: Error from fapiGetParentChip");
+ break;
+ }
+ }
+
// retrieve chip ID attribute
rc = FAPI_ATTR_GET(ATTR_FABRIC_CHIP_ID,
- i_target,
+ ((use_parent)?
+ (&parent_target):
+ (i_target)),
chip_id_attr);
if (!rc.ok())
{
diff --git a/src/usr/hwpf/hwp/dram_initialization/proc_setup_bars/proc_fab_smp.H b/src/usr/hwpf/hwp/dram_initialization/proc_setup_bars/proc_fab_smp.H
index c519563b1..cbdb97e9b 100644
--- a/src/usr/hwpf/hwp/dram_initialization/proc_setup_bars/proc_fab_smp.H
+++ b/src/usr/hwpf/hwp/dram_initialization/proc_setup_bars/proc_fab_smp.H
@@ -20,7 +20,7 @@
/* Origin: 30 */
/* */
/* IBM_PROLOG_END_TAG */
-// $Id: proc_fab_smp.H,v 1.7 2013/07/30 20:51:28 jmcgill Exp $
+// $Id: proc_fab_smp.H,v 1.8 2013/09/23 22:01:31 jmcgill Exp $
// $Source: /afs/awd/projects/eclipz/KnowledgeBase/.cvsroot/eclipz/chips/p8/working/procedures/ipl/fapi/proc_fab_smp.H,v $
//------------------------------------------------------------------------------
// *|
@@ -115,7 +115,7 @@ extern "C"
//------------------------------------------------------------------------------
// function: utility function to read & return fabric node ID attribute
-// parameters: i_target => pointer to P8 chip target
+// parameters: i_target => pointer to chip/chiplet target
// o_node_id => structure encapsulating node ID value
// returns: FAPI_RC_SUCCESS if attribute read is successful & value is valid,
// RC_PROC_FAB_SMP_FABRIC_NODE_ID_ATTR_ERR if attribute value is
@@ -128,7 +128,7 @@ fapi::ReturnCode proc_fab_smp_get_node_id_attr(
//------------------------------------------------------------------------------
// function: utility function to read & return fabric chip ID attribute
-// parameters: i_target => pointer to P8 chip target
+// parameters: i_target => pointer to chip/chiplet target
// o_chip_id => structure encapsulating chip ID value
// returns: FAPI_RC_SUCCESS if attribute read is successful & value is valid,
// RC_PROC_FAB_SMP_FABRIC_CHIP_ID_ATTR_ERR if attribute value is
@@ -141,7 +141,7 @@ fapi::ReturnCode proc_fab_smp_get_chip_id_attr(
//------------------------------------------------------------------------------
// function: utility function to read & return PCIe/DSMP mux attribute values
-// parameters: i_target => pointer to P8 chip target
+// parameters: i_target => pointer to chip target
// o_pcie_not_f_link => vector of boolean values representing state
// of PCIe/DSMP mux settings (one value per
// foreign link, true=PCIe function, false=
OpenPOWER on IntegriCloud