summaryrefslogtreecommitdiffstats
path: root/src/include/usr
diff options
context:
space:
mode:
authorChen Du <duchen@us.ibm.com>2019-03-04 10:56:19 -0600
committerDaniel M. Crowell <dcrowell@us.ibm.com>2019-05-09 16:10:29 -0500
commitbbbd68a140c9b34ccded9273d91e6b5bc97d0f28 (patch)
tree930afab97b728563743d597510fe3e473bd998b3 /src/include/usr
parent6aeba3917d4d42f6b99a059eeacc57c850dca6b9 (diff)
downloadtalos-hostboot-bbbd68a140c9b34ccded9273d91e6b5bc97d0f28.tar.gz
talos-hostboot-bbbd68a140c9b34ccded9273d91e6b5bc97d0f28.zip
Add page tables to read only partitions
Changed partitions (WOFDATA, MEMD) to be signed with a hash page table bit. This generates a hash page table in the protected payload which will be used to validate pages in the unprotected payload Change-Id: I9be4b1f6e65b9a52a8b6ba23affdacc4d89f5295 RTC: 179519 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/72776 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Reviewed-by: Nicholas E. Bofferding <bofferdn@us.ibm.com> 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: Michael Baiocchi <mbaiocch@us.ibm.com> Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src/include/usr')
-rw-r--r--src/include/usr/pnor/pnor_const.H4
-rw-r--r--src/include/usr/pnor/pnor_reasoncodes.H7
-rw-r--r--src/include/usr/pnor/pnorif.H1
3 files changed, 6 insertions, 6 deletions
diff --git a/src/include/usr/pnor/pnor_const.H b/src/include/usr/pnor/pnor_const.H
index 41d1ebdee..44050eb50 100644
--- a/src/include/usr/pnor/pnor_const.H
+++ b/src/include/usr/pnor/pnor_const.H
@@ -111,7 +111,8 @@ struct SectionInfo_t
reprovision(false),
Volatile(false),
secure(false),
- clearOnEccErr(false)
+ clearOnEccErr(false),
+ hasHashTable(false)
{}
SectionId id; /**< Identifier for this section */
const char* name; /**< Name of the section */
@@ -126,6 +127,7 @@ struct SectionInfo_t
bool Volatile; /**< Section loses contents on non HB reboots */
bool secure; /**< Indicates if a section is secure */
bool clearOnEccErr; /**< Indicates on ECC errors, clear and reboot*/
+ bool hasHashTable; /**< Indicates if there exists a hash page table*/
size_t secureProtectedPayloadSize; /**< Cache the secure payload size so
that the secure container only
needs to be parsed once */
diff --git a/src/include/usr/pnor/pnor_reasoncodes.H b/src/include/usr/pnor/pnor_reasoncodes.H
index fb7435a33..10c3e7b22 100644
--- a/src/include/usr/pnor/pnor_reasoncodes.H
+++ b/src/include/usr/pnor/pnor_reasoncodes.H
@@ -5,7 +5,7 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
-/* Contributors Listed Below - COPYRIGHT 2011,2018 */
+/* Contributors Listed Below - COPYRIGHT 2011,2019 */
/* [+] Google Inc. */
/* [+] International Business Machines Corp. */
/* */
@@ -98,8 +98,7 @@ namespace PNOR
MOD_PNORCOMMON_PARSETOC = 0xC0, /**< PNOR::parseTOC */
// spnorrp.C
- // Note: 0xD0 is available, so should be the next one used for spnorrp.
- // Remove this comment after doing so.
+ MOD_SPNORRP_VERIFY_PAGE = 0xD0, /**< SPnorRP::verify_page */
MOD_SPNORRP_DIDSTARTUPFAIL = 0xD1, /**< didSecureStartupFail(rc) */
MOD_SPNORRP_ALLOCATE_BLOCK = 0xD2, /**< SPnorRP::initDaemon */
MOD_SPNORRP_WAITFORMESSAGE = 0xD3, /**< SPnorRP::waitForMessage */
@@ -192,7 +191,7 @@ namespace PNOR
RC_NOT_PAGE_ALIGNED = PNOR_COMP_ID | 0x3B,
RC_SECURE_PRO_SIZE_MISMATCH = PNOR_COMP_ID | 0x3C,
RC_READ_ONLY_PERM_FAIL = PNOR_COMP_ID | 0x3D,
-
+ RC_VERIFY_PAGE_FAILED = PNOR_COMP_ID | 0x3E,
//@fixme-RTC:131607-Temporary value to allow HWSV compile
//termination_rc
RC_PNOR_CORRUPTION = PNOR_COMP_ID | 0x99,
diff --git a/src/include/usr/pnor/pnorif.H b/src/include/usr/pnor/pnorif.H
index 11cc98a10..835c100d7 100644
--- a/src/include/usr/pnor/pnorif.H
+++ b/src/include/usr/pnor/pnorif.H
@@ -269,7 +269,6 @@ bool cmpSecurebootMagicNumber(const uint8_t* i_vaddr);
* False otherwise.
*/
bool isSectionEmpty(const PNOR::SectionId i_section);
-
} // PNOR
#endif
OpenPOWER on IntegriCloud