summaryrefslogtreecommitdiffstats
path: root/src/import/chips/p9/procedures/utils
diff options
context:
space:
mode:
authorPrem Shanker Jha <premjha2@in.ibm.com>2017-01-31 23:16:59 -0600
committerWilliam G. Hoffa <wghoffa@us.ibm.com>2017-02-16 13:22:02 -0500
commit12aa2afb4f959f1d4ddd28b9e69fa53613b87b15 (patch)
treed7ee8aed57d0f4de2dbbf84aec4bcac1086574e1 /src/import/chips/p9/procedures/utils
parent1e3e374a548a487e3d958d522d13f80bf1c0c3f5 (diff)
downloadtalos-hostboot-12aa2afb4f959f1d4ddd28b9e69fa53613b87b15.tar.gz
talos-hostboot-12aa2afb4f959f1d4ddd28b9e69fa53613b87b15.zip
PM: Added changes in SCOM restore region.
- Added BLR as first instruction in Self-Restore region - Modified handling of STOP API SCOM operation RESET. Change-Id: I84096355b520f4c9cae98860ccf9ebf1c56229e4 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/35724 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Tested-by: Hostboot CI <hostboot-ci+hostboot@us.ibm.com> Reviewed-by: AMIT KUMAR <akumar3@us.ibm.com> Dev-Ready: Gregory S. Still <stillgs@us.ibm.com> Reviewed-by: RANGANATHPRASAD G. BRAHMASAMUDRA <prasadbgr@in.ibm.com> Reviewed-by: Gregory S. Still <stillgs@us.ibm.com> Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/35727 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>
Diffstat (limited to 'src/import/chips/p9/procedures/utils')
-rwxr-xr-xsrc/import/chips/p9/procedures/utils/stopreg/p9_stop_api.C15
-rwxr-xr-xsrc/import/chips/p9/procedures/utils/stopreg/p9_stop_data_struct.H3
2 files changed, 12 insertions, 6 deletions
diff --git a/src/import/chips/p9/procedures/utils/stopreg/p9_stop_api.C b/src/import/chips/p9/procedures/utils/stopreg/p9_stop_api.C
index f76a4d62b..ebf7da61b 100755
--- a/src/import/chips/p9/procedures/utils/stopreg/p9_stop_api.C
+++ b/src/import/chips/p9/procedures/utils/stopreg/p9_stop_api.C
@@ -526,7 +526,8 @@ StopReturnCode_t p9_stop_save_cpureg( void* const i_pImage,
&(chipHomer->coreThreadRestore[coreId][threadId].coreArea[0]);
}
- if( SWIZZLE_4_BYTE(ATTN_OPCODE) == *(uint32_t*)pThreadLocation )
+ if( ( SWIZZLE_4_BYTE(BLR_INST) == *(uint32_t*)pThreadLocation ) ||
+ ( SWIZZLE_4_BYTE(ATTN_OPCODE) == *(uint32_t*) pThreadLocation ) )
{
// table for given core id doesn't exit. It needs to be
// defined.
@@ -864,6 +865,7 @@ StopReturnCode_t p9_stop_save_scom( void* const i_pImage,
uint32_t swizzleAttn = SWIZZLE_4_BYTE(ATTN_OPCODE);
uint32_t swizzleEntry = SWIZZLE_4_BYTE(SCOM_ENTRY_START);
uint32_t index = 0;
+ uint32_t swizzleBlr = SWIZZLE_4_BYTE(BLR_INST);
for( index = 0; index < entryLimit; ++index )
{
@@ -876,8 +878,8 @@ StopReturnCode_t p9_stop_save_scom( void* const i_pImage,
}
if( (( nopInst == entrySwzAddress ) ||
- ( swizzleAttn == entrySwzAddress )) &&
- ( !pNopLocation ) )
+ ( swizzleAttn == entrySwzAddress ) ||
+ ( swizzleBlr == entrySwzAddress )) && ( !pNopLocation ) )
{
pNopLocation = &pScomEntry[index];
}
@@ -962,7 +964,12 @@ StopReturnCode_t p9_stop_save_scom( void* const i_pImage,
break;
case P9_STOP_SCOM_RESET:
- memset( pScomEntry, nopInst, SCOM_SIZE_PER_CORE );
+
+ if( P9_STOP_SECTION_CORE_SCOM == i_section )
+ {
+ memset( pScomEntry, 0x00, SCOM_SIZE_PER_CORE );
+ }
+
break;
case P9_STOP_SCOM_OR_APPEND:
diff --git a/src/import/chips/p9/procedures/utils/stopreg/p9_stop_data_struct.H b/src/import/chips/p9/procedures/utils/stopreg/p9_stop_data_struct.H
index 80d8c4196..e9cfa29a7 100755
--- a/src/import/chips/p9/procedures/utils/stopreg/p9_stop_data_struct.H
+++ b/src/import/chips/p9/procedures/utils/stopreg/p9_stop_data_struct.H
@@ -64,8 +64,7 @@ typedef struct
*/
typedef struct
{
- uint8_t threadArea[THREAD_SECTN_SIZE];
- uint8_t reserve[THREAD_AREA_SIZE - THREAD_SECTN_SIZE];
+ uint8_t threadArea[THREAD_AREA_SIZE];
uint8_t coreArea[CORE_SPR_SECTN_SIZE];
} SprRestoreArea_t;
OpenPOWER on IntegriCloud