diff options
author | Thi Tran <thi@us.ibm.com> | 2013-11-01 11:04:01 -0500 |
---|---|---|
committer | A. Patrick Williams III <iawillia@us.ibm.com> | 2013-11-04 09:11:12 -0600 |
commit | faaf17312bbc7bc7ca7cecc7c56d5cccc29e28fe (patch) | |
tree | 843dc31e39545bad77e485392a048da7fd39f254 /src/usr/hwpf/hwp/dram_initialization | |
parent | da7dcbb79715c1af780e7fdae9dfc8cc0c66c30e (diff) | |
download | talos-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')
-rw-r--r-- | src/usr/hwpf/hwp/dram_initialization/proc_setup_bars/proc_fab_smp.C | 46 | ||||
-rw-r--r-- | src/usr/hwpf/hwp/dram_initialization/proc_setup_bars/proc_fab_smp.H | 8 |
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= |