Skip to content

Commit

Permalink
Update hreset HWP to always use scoms during HBRT
Browse files Browse the repository at this point in the history
Previsouly there were checks in p9_sbe_hreset that made sure that
we only did getcfam ops on slave chips and did scoms to access the
registers on the master chips. This is correct for hostboot during
IPL time but during runtime we always want to use scom to access
these registers. This is safe because the fabric us up and we can
perform xscoms on both chips.

Change-Id: I5c48053d90278e1b3f9aacd5a74dda4ddc3620bb
RTC: 190058
CQ: SW422692
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/56183
Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@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: Sachin Gupta <sgupta2m@in.ibm.com>
Reviewed-by: SRINIVAS V. POLISETTY <srinivan@in.ibm.com>
Reviewed-by: Jennifer A. Stofer <stofer@us.ibm.com>
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/56186
Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com>
Tested-by: Jenkins OP HW <op-hw-jenkins+hostboot@us.ibm.com>
Reviewed-by: Christian R. Geddes <crgeddes@us.ibm.com>
  • Loading branch information
crgeddes committed Apr 6, 2018
1 parent ba8c8bf commit d5ba462
Showing 1 changed file with 18 additions and 3 deletions.
21 changes: 18 additions & 3 deletions src/import/chips/p9/procedures/hwp/perv/p9_sbe_hreset.C
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
/* Contributors Listed Below - COPYRIGHT 2017 */
/* Contributors Listed Below - COPYRIGHT 2017,2018 */
/* [+] International Business Machines Corp. */
/* */
/* */
Expand Down Expand Up @@ -72,14 +72,18 @@ fapi2::ReturnCode p9_sbe_i2c_bit_rate_divisor_setting(
FAPI_TRY(fapi2::putScom(i_target_chip, PU_MODE_REGISTER_B, l_data64));

FAPI_INF("Writing I2C bit rate divisor into mailbox_reg_2");
#ifndef __HOSTBOOT_RUNTIME

if (i_masterProc)
#endif
{
FAPI_TRY(fapi2::getScom(i_target_chip, PERV_SCRATCH_REGISTER_2_SCOM, l_data64));
l_data64.insertFromRight< 0, 16 >(l_mb_bit_rate_divisor);
FAPI_INF("p9_sbe_i2c_bit_rate_divisor_setting - Master proc Scratch2 0x%.16llX", l_data64);
FAPI_TRY(fapi2::putScom(i_target_chip, PERV_SCRATCH_REGISTER_2_SCOM, l_data64));
}

#ifndef __HOSTBOOT_RUNTIME
else
{
FAPI_TRY(fapi2::getCfamRegister(i_target_chip, PERV_SCRATCH_REGISTER_2_FSI, l_data32));
Expand All @@ -88,6 +92,8 @@ fapi2::ReturnCode p9_sbe_i2c_bit_rate_divisor_setting(
FAPI_TRY(fapi2::putCfamRegister(i_target_chip, PERV_SCRATCH_REGISTER_2_FSI, l_data32));
}

#endif

fapi_try_exit:
FAPI_INF("Exiting p9_sbe_i2c_bit_rate_divisor_setting...");
return fapi2::current_err;
Expand Down Expand Up @@ -134,7 +140,10 @@ fapi2::ReturnCode p9_sbe_hreset(
}

// Must do SCOM access for master; CFAM access for slaves
#ifndef __HOSTBOOT_RUNTIME

if (l_masterProc)
#endif
{
// Clear Self Boot message reg
l_data64.flush<0>();
Expand All @@ -153,7 +162,8 @@ fapi2::ReturnCode p9_sbe_hreset(
FAPI_TRY(fapi2::getScom(i_target, PERV_SB_CS_SCOM, l_data64),
"Error from getScom to PERV_SB_CS_SCOM");

FAPI_TRY(l_data64.clearBit(l_startVectorBit));
FAPI_TRY(l_data64.clearBit(PERV_SB_CS_START_RESTART_VECTOR0));
FAPI_TRY(l_data64.clearBit(PERV_SB_CS_START_RESTART_VECTOR1));
FAPI_TRY(fapi2::putScom(i_target, PERV_SB_CS_SCOM, l_data64),
"Error from putScom to PERV_SB_CS_SCOM (1)");

Expand All @@ -165,6 +175,8 @@ fapi2::ReturnCode p9_sbe_hreset(
FAPI_TRY(fapi2::putScom(i_target, PERV_SB_CS_SCOM, l_data64),
"Error from putScom to PERV_SB_CS_SCOM (3)");
}

#ifndef __HOSTBOOT_RUNTIME
else
{
// Clear Self Boot message reg
Expand All @@ -182,7 +194,8 @@ fapi2::ReturnCode p9_sbe_hreset(
// HRESET
FAPI_TRY(fapi2::getCfamRegister(i_target, PERV_SB_CS_FSI, l_data32),
"Error from getCfamRegister to PERV_SB_CS_FSI");
FAPI_TRY(l_data32.clearBit(l_startVectorBit));
FAPI_TRY(l_data32.clearBit(PERV_SB_CS_START_RESTART_VECTOR0));
FAPI_TRY(l_data32.clearBit(PERV_SB_CS_START_RESTART_VECTOR1));
FAPI_TRY(fapi2::putCfamRegister(i_target, PERV_SB_CS_FSI, l_data32),
"Error from putCfamRegister to PERV_SB_CS_FSI (1)");

Expand All @@ -195,6 +208,8 @@ fapi2::ReturnCode p9_sbe_hreset(
"Error from putCfamRegister to PERV_SB_CS_FSI (3)");
}

#endif

fapi_try_exit:
FAPI_INF("p9_sbe_hreset: Exiting ...");
return fapi2::current_err;
Expand Down

0 comments on commit d5ba462

Please sign in to comment.