Skip to content

Commit c015ff2

Browse files
Amit Kumarwghoffa
authored andcommitted
p9_pm_stop_gpe_init
- added new putscoms for fusedcore mode Change-Id: I040fac93fd964c3a9574c7ec582c9cde1c590a34 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/33804 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Tested-by: Hostboot CI <hostboot-ci+hostboot@us.ibm.com> Reviewed-by: Dean Sanner <dsanner@us.ibm.com> Reviewed-by: YUE DU <daviddu@us.ibm.com> Reviewed-by: ADAM S. HALE <ashale@us.ibm.com> Dev-Ready: ADAM S. HALE <ashale@us.ibm.com> Reviewed-by: Jennifer A. Stofer <stofer@us.ibm.com> Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/33806 Reviewed-by: Hostboot Team <hostboot@us.ibm.com> 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: William G. Hoffa <wghoffa@us.ibm.com>
1 parent 7954b76 commit c015ff2

File tree

2 files changed

+42
-1
lines changed

2 files changed

+42
-1
lines changed

src/import/chips/p9/procedures/hwp/pm/p9_pm_stop_gpe_init.C

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -118,11 +118,50 @@ fapi2::ReturnCode p9_pm_stop_gpe_init(
118118
const char* PM_MODE_NAME_VAR; //Defines storage for PM_MODE_NAME
119119
FAPI_INF("Executing p9_stop_gpe_init in mode %s", PM_MODE_NAME(i_mode));
120120

121+
uint8_t fusedModeState = 0;
122+
121123
// -------------------------------
122124
// Initialization: perform order or dynamic operations to initialize
123125
// the STOP funciton using necessary Platform or Feature attributes.
124126
if (i_mode == p9pm::PM_INIT)
125127
{
128+
const fapi2::Target<fapi2::TARGET_TYPE_SYSTEM> FAPI_SYSTEM;
129+
FAPI_TRY(FAPI_ATTR_GET(fapi2::ATTR_FUSED_CORE_MODE,
130+
FAPI_SYSTEM,
131+
fusedModeState),
132+
"Error from FAPI_ATTR_GET for attribute ATTR_FUSED_CORE_MODE");
133+
134+
//Additional settings for fused mode
135+
if (fusedModeState == 1)
136+
{
137+
uint8_t l_core_number = 0;
138+
fapi2::buffer<uint64_t> l_data64 = 0;
139+
140+
auto l_functional_core_vector =
141+
i_target.getChildren<fapi2::TARGET_TYPE_CORE>
142+
(fapi2::TARGET_STATE_FUNCTIONAL);
143+
144+
for(auto l_chplt_trgt : l_functional_core_vector)
145+
{
146+
FAPI_TRY(FAPI_ATTR_GET(fapi2::ATTR_CHIP_UNIT_POS,
147+
l_chplt_trgt,
148+
l_core_number),
149+
"ERROR: Failed to get the position of the CORE:0x%08X",
150+
l_chplt_trgt);
151+
FAPI_DBG("CORE number = %d", l_core_number);
152+
l_data64.flush<0>().setBit<C_CPPM_CPMMR_FUSED_CORE_MODE>();
153+
FAPI_TRY(fapi2::putScom(l_chplt_trgt, C_CPPM_CPMMR_OR, l_data64),
154+
"ERROR: Failed to switch PM/TP interrupt routing to fused");
155+
}
156+
157+
l_data64.flush<0>();
158+
FAPI_TRY(fapi2::getScom(i_target, PU_INT_TCTXT_CFG, l_data64),
159+
"ERROR: Failed to read PU_INT_TCTXT_CFG");
160+
161+
l_data64.setBit<PU_INT_TCTXT_CFG_CFG_FUSE_CORE_EN>();
162+
FAPI_TRY(fapi2::putScom(i_target, PU_INT_TCTXT_CFG, l_data64),
163+
"ERROR: Failed to set Fused core mode in PU_INT_TCTXT_CFG");
164+
}
126165

127166
// Initialize the PFET controllers
128167
FAPI_EXEC_HWP(fapi2::current_err, p9_pm_pfet_init, i_target, i_mode);

src/import/chips/p9/procedures/hwp/pm/p9_pm_stop_gpe_init.H

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,8 +44,10 @@
4444

4545
#include <p9_pm.H>
4646
#include <fapi2.H>
47+
#include <p9_quad_scom_addresses.H>
48+
#include <p9_quad_scom_addresses_fld.H>
4749
#include <p9_misc_scom_addresses.H>
48-
50+
#include <p9_misc_scom_addresses_fld.H>
4951

5052
// function pointer typedef definition for HWP call support
5153
typedef fapi2::ReturnCode (*p9_pm_stop_gpe_init_FP_t) (

0 commit comments

Comments
 (0)