Skip to content

Commit d236030

Browse files
Nick Bofferdingdcrowell77
authored andcommitted
Only allow key transition in istep 10.2
In certain cases, if a key transition driver was booted and the nest frequency had to be updated, the key transition flow would erroneously activate in istep 7.3 (call_mss_freq). This change confines key transitioning to istep 10.2 Change-Id: I450703e21bf68644298f77fcdfca62eae5c667e4 CQ: SW451376 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/68690 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> 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: Daniel M. Crowell <dcrowell@us.ibm.com>
1 parent 236d217 commit d236030

File tree

3 files changed

+26
-5
lines changed

3 files changed

+26
-5
lines changed

src/include/usr/sbe/sbeif.H

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,16 @@ namespace SBE
3535
{
3636
typedef uint8_t sbe_image_version_t[SBE_IMAGE_VERSION_SIZE];
3737

38+
/**
39+
* @brief Enumeration indicating whether SBE SEEPROM update should
40+
* allow key transitioning (if applicable)
41+
*/
42+
enum KEY_TRANSITION_PERM : uint8_t
43+
{
44+
INHIBIT_KEY_TRANSITION = 0x00,
45+
ALLOW_KEY_TRANSITION = 0x01,
46+
};
47+
3848
/**
3949
* @brief Gets a pointer to the proper SBE image in PNOR
4050
*
@@ -61,9 +71,14 @@ namespace SBE
6171
* @brief Iterates through all the functional processors and updates
6272
* the SBE Image in a SEEPROM, if necessary.
6373
*
74+
* @param[in] i_keyTransPerm Whether key transitions should be allowed
75+
* or inhibited (if applicable). By default, they are inhibited.
76+
* Only istep 10.2 should allow key transitioning.
77+
*
6478
* @return errlHndl_t Error log handle on failure.
6579
*/
66-
errlHndl_t updateProcessorSbeSeeproms();
80+
errlHndl_t updateProcessorSbeSeeproms(
81+
KEY_TRANSITION_PERM i_keyTransPerm = INHIBIT_KEY_TRANSITION);
6782

6883
/**
6984
* @brief Determines whether we are on the Golden side or not

src/usr/isteps/istep10/call_host_slave_sbe_update.C

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -271,7 +271,8 @@ void* call_host_slave_sbe_update (void *io_pArgs)
271271

272272
// Call to check state of Processor SBE SEEPROMs and
273273
// make any necessary updates
274-
l_errl = SBE::updateProcessorSbeSeeproms();
274+
l_errl = SBE::updateProcessorSbeSeeproms(
275+
SBE::KEY_TRANSITION_PERM::ALLOW_KEY_TRANSITION);
275276

276277
if (l_errl)
277278
{

src/usr/sbe/sbe_update.C

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,8 @@ using namespace TARGETING;
113113

114114
namespace SBE
115115
{
116-
errlHndl_t updateProcessorSbeSeeproms()
116+
errlHndl_t updateProcessorSbeSeeproms(
117+
const KEY_TRANSITION_PERM i_keyTransPerm)
117118
{
118119
errlHndl_t err = NULL;
119120
errlHndl_t err_cleanup = NULL;
@@ -258,8 +259,12 @@ namespace SBE
258259
err = NULL;
259260
}
260261

261-
// Check if a key transition is needed
262-
err = secureKeyTransition();
262+
// Check if a key transition is allowed/needed
263+
if(i_keyTransPerm == ALLOW_KEY_TRANSITION)
264+
{
265+
err = secureKeyTransition();
266+
}
267+
263268
if (err)
264269
{
265270
TRACFCOMP( g_trac_sbe, ERR_MRK"updateProcessorSbeSeeproms() - failed secureKeyTransition");

0 commit comments

Comments
 (0)