diff options
| author | Prem Shanker Jha <premjha2@in.ibm.com> | 2018-09-17 02:10:38 -0500 |
|---|---|---|
| committer | Daniel M. Crowell <dcrowell@us.ibm.com> | 2018-09-27 08:32:19 -0500 |
| commit | bd440419c808094ad21238f3a0f4637cd300427b (patch) | |
| tree | ee362869150db14fef182d380b59ad8dde981fe4 /src/usr/util | |
| parent | dd91bd34b1896c2e62c692890b5bf630d2276484 (diff) | |
| download | talos-hostboot-bd440419c808094ad21238f3a0f4637cd300427b.tar.gz talos-hostboot-bd440419c808094ad21238f3a0f4637cd300427b.zip | |
STOP API: Changes for SMF and SPR self save
Commit accomplishes following:
- Implementation of new self restore region memory layout
- Restore of SPRs pertaining to SMF
- Self save of SPRs
- Backward compatibility with old self restore layout
Key_Cronus_Test=PM_REGRESS
Change-Id: I11359e392102d32896251225907eb95a43ba6f78
Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/66212
Reviewed-by: RANGANATHPRASAD G. BRAHMASAMUDRA <prasadbgr@in.ibm.com>
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Tested-by: HWSV CI <hwsv-ci+hostboot@us.ibm.com>
Tested-by: Cronus HW CI <cronushw-ci+hostboot@us.ibm.com>
Tested-by: Hostboot CI <hostboot-ci+hostboot@us.ibm.com>
Reviewed-by: Gregory S. Still <stillgs@us.ibm.com>
Reviewed-by: Jennifer A. Stofer <stofer@us.ibm.com>
Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/66216
Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com>
Tested-by: FSP CI Jenkins <fsp-CI-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>
Diffstat (limited to 'src/usr/util')
| -rw-r--r-- | src/usr/util/runtime/rt_cmds.C | 30 |
1 files changed, 15 insertions, 15 deletions
diff --git a/src/usr/util/runtime/rt_cmds.C b/src/usr/util/runtime/rt_cmds.C index 4ce0f9a11..bab3a85d4 100644 --- a/src/usr/util/runtime/rt_cmds.C +++ b/src/usr/util/runtime/rt_cmds.C @@ -830,9 +830,9 @@ int cmd_reload_pm_complex( char*& o_output, uint64_t stopAt ) } UTIL_FT("%d: memcpy(%p, %p, %ld)", l_chip, coreThreadRestoreBEFORE, - l_virt_addr->coreThreadRestore, coreThreadRestoreSize); + l_virt_addr->iv_coreThreadRestore, coreThreadRestoreSize); sprintf( l_tmpstr, "%d: memcpy(%p, %p, %ld)\n", l_chip, - coreThreadRestoreBEFORE, l_virt_addr->coreThreadRestore, + coreThreadRestoreBEFORE, l_virt_addr->iv_coreThreadRestore, coreThreadRestoreSize ); strcat( o_output, l_tmpstr ); if (stopAt == 1) @@ -840,7 +840,7 @@ int cmd_reload_pm_complex( char*& o_output, uint64_t stopAt ) break; } memcpy( coreThreadRestoreBEFORE, - l_virt_addr->coreThreadRestore, + l_virt_addr->iv_coreThreadRestore, coreThreadRestoreSize); // RUN LOAD_PM_COMPLEX @@ -876,7 +876,7 @@ int cmd_reload_pm_complex( char*& o_output, uint64_t stopAt ) // NOW COMPARE THE TWO SNAPSHOTS uint8_t lastMatch = memcmp(coreThreadRestoreBEFORE, - l_virt_addr->coreThreadRestore, + l_virt_addr->iv_coreThreadRestore, coreThreadRestoreSize); // Both sections should be equal as // hostboot should NOT touch this section of memory @@ -892,25 +892,25 @@ int cmd_reload_pm_complex( char*& o_output, uint64_t stopAt ) for (int y = 0; y < MAX_THREADS_PER_CORE; y++) { // Check for non-zero threadArea - if ( 0 != memcmp(&(((stopImageSection::SprRestoreArea_t*)((char*)coreThreadRestoreBEFORE + (sizeof(zeroedSprArea)*x + sizeof(zeroedSprArea)*y)))->threadArea), - &zeroedSprArea.threadArea, - sizeof(zeroedSprArea.threadArea))) + if ( 0 != memcmp(&(((stopImageSection::SprRestoreArea_t*)((char*)coreThreadRestoreBEFORE + (sizeof(zeroedSprArea)*x + sizeof(zeroedSprArea)*y)))->iv_threadArea), + &zeroedSprArea.iv_threadArea, + sizeof(zeroedSprArea.iv_threadArea))) { UTIL_FT("Found non-zero value in row %d, column %d threadArea", x, y); UTIL_FBIN("Thread Area", - &(((stopImageSection::SprRestoreArea_t*)((char*)coreThreadRestoreBEFORE + (sizeof(zeroedSprArea)*x + sizeof(zeroedSprArea)*y)))->threadArea), - sizeof(zeroedSprArea.threadArea)); + &(((stopImageSection::SprRestoreArea_t*)((char*)coreThreadRestoreBEFORE + (sizeof(zeroedSprArea)*x + sizeof(zeroedSprArea)*y)))->iv_threadArea), + sizeof(zeroedSprArea.iv_threadArea)); foundNonZero = true; } // Check for non-zero coreArea - if ( 0 != memcmp(&(((stopImageSection::SprRestoreArea_t*)((char*)coreThreadRestoreBEFORE + (sizeof(zeroedSprArea)*x + sizeof(zeroedSprArea)*y)))->coreArea), - &zeroedSprArea.coreArea, - sizeof(zeroedSprArea.coreArea))) + if ( 0 != memcmp(&(((stopImageSection::SprRestoreArea_t*)((char*)coreThreadRestoreBEFORE + (sizeof(zeroedSprArea)*x + sizeof(zeroedSprArea)*y)))->iv_coreArea), + &zeroedSprArea.iv_coreArea, + sizeof(zeroedSprArea.iv_coreArea))) { UTIL_FT("Found non-zero value in row %d, column %d coreArea", x, y); UTIL_FBIN("Core Area", - &(((stopImageSection::SprRestoreArea_t*)((char*)coreThreadRestoreBEFORE + (sizeof(zeroedSprArea)*x + sizeof(zeroedSprArea)*y)))->coreArea), - sizeof(zeroedSprArea.coreArea)); + &(((stopImageSection::SprRestoreArea_t*)((char*)coreThreadRestoreBEFORE + (sizeof(zeroedSprArea)*x + sizeof(zeroedSprArea)*y)))->iv_coreArea), + sizeof(zeroedSprArea.iv_coreArea)); foundNonZero = true; } } @@ -935,7 +935,7 @@ int cmd_reload_pm_complex( char*& o_output, uint64_t stopAt ) strcat( o_output, l_tmpstr ); UTIL_FBIN("BEFORE coreThreadRestore", &coreThreadRestoreBEFORE, coreThreadRestoreSize); - UTIL_FBIN("AFTER coreThreadRestore", l_virt_addr->coreThreadRestore, coreThreadRestoreSize); + UTIL_FBIN("AFTER coreThreadRestore", l_virt_addr->iv_coreThreadRestore, coreThreadRestoreSize); } } delete coreThreadRestoreBEFORE; |

