diff options
author | Stephen Cprek <smcprek@us.ibm.com> | 2014-11-14 14:39:53 -0600 |
---|---|---|
committer | A. Patrick Williams III <iawillia@us.ibm.com> | 2015-02-02 13:37:42 -0600 |
commit | 67c5a1ebe73f81bca1bb6608bbb8f204f0f37fa8 (patch) | |
tree | 2770690ea72f29f51ff7db676178474a25b9ced0 /src/usr/pnor/runtime | |
parent | f0d809efddca10be40e2e5b7a60e8c5106522c31 (diff) | |
download | talos-hostboot-67c5a1ebe73f81bca1bb6608bbb8f204f0f37fa8.tar.gz talos-hostboot-67c5a1ebe73f81bca1bb6608bbb8f204f0f37fa8.zip |
Support for Redundant Copy of HB code in PNOR
- 2 TOC's per side
- side, sideless, preserved, and readOnly tags
- Determine which SEEPROM side HB booted from
- Modify gaurd code to not run when gaurd section DNE
Change-Id: I62dd27c9aa79c3111d27e647f1b66a7c938ad6e8
RTC:109398
Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/14629
Tested-by: Jenkins Server
Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
Diffstat (limited to 'src/usr/pnor/runtime')
-rw-r--r-- | src/usr/pnor/runtime/rt_pnor.C | 11 | ||||
-rw-r--r-- | src/usr/pnor/runtime/rt_pnor.H | 2 |
2 files changed, 8 insertions, 5 deletions
diff --git a/src/usr/pnor/runtime/rt_pnor.C b/src/usr/pnor/runtime/rt_pnor.C index c43160f44..c61aa1d2d 100644 --- a/src/usr/pnor/runtime/rt_pnor.C +++ b/src/usr/pnor/runtime/rt_pnor.C @@ -297,7 +297,7 @@ errlHndl_t RtPnor::flush( PNOR::SectionId i_section) } /*******Protected Methods**************/ RtPnor::RtPnor() -:iv_TOC_used(0) +:iv_TOC_used(PNOR::TOC_0) { errlHndl_t l_err = readTOC(); if (l_err) @@ -588,7 +588,10 @@ errlHndl_t RtPnor::readTOC () break; } - l_err = readFromDevice (l_procId, PNOR::TOC, PNOR::TOC_0_OFFSET, + // @TODO RTC:120733 + // RT code needs a way to get the active side tocs vs just defaulting + // to SIDE_A + l_err = readFromDevice (l_procId, PNOR::TOC, PNOR::SIDE_A_TOC_0_OFFSET, PAGESIZE,false,toc0Buffer); if (l_err) { @@ -596,7 +599,7 @@ errlHndl_t RtPnor::readTOC () " for TOC0"); break; } - l_err = readFromDevice (l_procId, PNOR::TOC, PNOR::TOC_1_OFFSET, + l_err = readFromDevice (l_procId, PNOR::TOC, PNOR::SIDE_A_TOC_1_OFFSET, PAGESIZE, false,toc1Buffer); if (l_err) { @@ -605,7 +608,7 @@ errlHndl_t RtPnor::readTOC () break; } - l_err = PNOR::parseTOC(toc0Buffer, toc1Buffer, iv_TOC_used, iv_TOC,0); + l_err = PNOR::parseTOC(toc0Buffer, toc1Buffer, iv_TOC_used, iv_TOC, 0); if (l_err) { TRACFCOMP(g_trac_pnor, "RtPnor::readTOC: parseTOC failed"); diff --git a/src/usr/pnor/runtime/rt_pnor.H b/src/usr/pnor/runtime/rt_pnor.H index 43041fc3f..f3a03a5ec 100644 --- a/src/usr/pnor/runtime/rt_pnor.H +++ b/src/usr/pnor/runtime/rt_pnor.H @@ -81,7 +81,7 @@ class RtPnor /** * Which TOC (0 or 1) is used after verifying both. */ - uint32_t iv_TOC_used; + PNOR::TOCS iv_TOC_used; /** * Cached copy of section data |