diff options
author | Ben Gass <bgass@us.ibm.com> | 2017-08-16 09:10:10 -0500 |
---|---|---|
committer | Christian R. Geddes <crgeddes@us.ibm.com> | 2017-09-11 16:34:22 -0400 |
commit | 0e89fa3b7f0cb8e62f8f2b096e77d58f39aa2345 (patch) | |
tree | fea831a5854c90eb74435a307428a729fe0b16fd /src/import/chips/p9/common | |
parent | 900541d1f7a04bb978c7645ca92db39a0e78f2e1 (diff) | |
download | talos-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.H | 9 | ||||
-rw-r--r-- | src/import/chips/p9/common/scominfo/p9_scominfo.C | 64 |
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)); + } } } |