summaryrefslogtreecommitdiffstats
path: root/src/import/chips/p9/common
diff options
context:
space:
mode:
authorBen Gass <bgass@us.ibm.com>2017-08-16 09:10:10 -0500
committerChristian R. Geddes <crgeddes@us.ibm.com>2017-09-11 16:34:22 -0400
commit0e89fa3b7f0cb8e62f8f2b096e77d58f39aa2345 (patch)
treefea831a5854c90eb74435a307428a729fe0b16fd /src/import/chips/p9/common
parent900541d1f7a04bb978c7645ca92db39a0e78f2e1 (diff)
downloadtalos-hostboot-0e89fa3b7f0cb8e62f8f2b096e77d58f39aa2345.tar.gz
talos-hostboot-0e89fa3b7f0cb8e62f8f2b096e77d58f39aa2345.zip
Update iom busctl registers to MC target.
Update dmi_dccal to use MC target for busctl registers. Change-Id: I1f1ffb4bf23a3f634e5712f410d37413d2843771 Original-Change-Id: I2da493a558ade5824065f23821dfbb980e564eea Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/44670 Dev-Ready: Benjamin Gass <bgass@us.ibm.com> Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Tested-by: Hostboot CI <hostboot-ci+hostboot@us.ibm.com> Reviewed-by: Thi N. Tran <thi@us.ibm.com> Reviewed-by: Benjamin Gass <bgass@us.ibm.com> Reviewed-by: Christopher W. Steffen <cwsteffen@us.ibm.com> Reviewed-by: John G. Rell III <jgrell@us.ibm.com> Reviewed-by: Jennifer A. Stofer <stofer@us.ibm.com> Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/45794 Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com> Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Reviewed-by: Thomas R. Sand <trsand@us.ibm.com> Tested-by: Jenkins OP HW <op-hw-jenkins+hostboot@us.ibm.com> Reviewed-by: Christian R. Geddes <crgeddes@us.ibm.com>
Diffstat (limited to 'src/import/chips/p9/common')
-rw-r--r--src/import/chips/p9/common/scominfo/p9_scom_addr.H9
-rw-r--r--src/import/chips/p9/common/scominfo/p9_scominfo.C64
2 files changed, 47 insertions, 26 deletions
diff --git a/src/import/chips/p9/common/scominfo/p9_scom_addr.H b/src/import/chips/p9/common/scominfo/p9_scom_addr.H
index 23d4c5f36..faf6fe876 100644
--- a/src/import/chips/p9/common/scominfo/p9_scom_addr.H
+++ b/src/import/chips/p9/common/scominfo/p9_scom_addr.H
@@ -540,12 +540,19 @@ extern "C"
}
/// @brief Extract the RX or TX Group ID of an indirect scom address
- /// @retval uint8_t Satellite register offset field value
+ /// @retval uint8_t RX/TX group id
inline uint8_t get_rxtx_group_id()
{
return (iv_addr >> 37) & 0x3F;
}
+ /// @brief Extract the indirect address field of a scom address
+ /// @retval uint16_t indirect address field
+ inline uint16_t get_ind_addr()
+ {
+ return (iv_addr >> 43) & 0x1FF;
+ }
+
/// @brief Modify SCOM address, update the RX or TX Group ID
/// @param[in] i_grp_id Group id to set
/// @retval none
diff --git a/src/import/chips/p9/common/scominfo/p9_scominfo.C b/src/import/chips/p9/common/scominfo/p9_scominfo.C
index 570030021..a1917e93a 100644
--- a/src/import/chips/p9/common/scominfo/p9_scominfo.C
+++ b/src/import/chips/p9/common/scominfo/p9_scominfo.C
@@ -866,42 +866,56 @@ extern "C"
l_sat_offset == P9C_MC_OFFSET_IND )
{
uint32_t l_rxtx_grp = l_scom.get_rxtx_group_id();
+ uint32_t l_ind_addr = l_scom.get_ind_addr();
- if (l_rxtx_grp >= 0x20)
+ //From iofrc_bus_reg_intf.vhdl
+ //gcr_pkt_equal_addr <= (gcr_reg_reg_addr(0 to 3) = "1111")
+ // and not (gcr_reg_reg_addr = "111111111"); --Ignore protected FIR address
+ if (((l_ind_addr & 0x1E0) == 0x1E0) && (l_ind_addr != 0x1FF))
{
- l_rxtx_grp -= 0x20;
+ o_chipUnitRelated = true;
+ o_chipUnitPairing.push_back(p9_chipUnitPairing_t(PU_MC_CHIPUNIT,
+ l_chiplet_id - MC01_CHIPLET_ID));
+
}
+ else
+ {
- uint8_t l_adder = 0;
+ if (l_rxtx_grp >= 0x20)
+ {
+ l_rxtx_grp -= 0x20;
+ }
- switch (l_rxtx_grp % 4)
- {
- case 3:
- l_adder = 0;
- break;
+ uint8_t l_adder = 0;
- case 2:
- l_adder = 1;
- break;
+ switch (l_rxtx_grp % 4)
+ {
+ case 3:
+ l_adder = 0;
+ break;
- case 0:
- l_adder = 2;
- break;
+ case 2:
+ l_adder = 1;
+ break;
- case 1:
- l_adder = 3;
- break;
+ case 0:
+ l_adder = 2;
+ break;
- default:
- //escape to bunker - math broke
- break;
- }
+ case 1:
+ l_adder = 3;
+ break;
- o_chipUnitRelated = true;
- o_chipUnitPairing.push_back(p9_chipUnitPairing_t(PU_DMI_CHIPUNIT,
- ((l_chiplet_id == MC01_CHIPLET_ID ? (0) : (4))) +
- l_adder));
+ default:
+ //escape to bunker - math broke
+ break;
+ }
+ o_chipUnitRelated = true;
+ o_chipUnitPairing.push_back(p9_chipUnitPairing_t(PU_DMI_CHIPUNIT,
+ ((l_chiplet_id == MC01_CHIPLET_ID ? (0) : (4))) +
+ l_adder));
+ }
}
}
OpenPOWER on IntegriCloud