summaryrefslogtreecommitdiffstats
path: root/src/include
diff options
context:
space:
mode:
Diffstat (limited to 'src/include')
-rw-r--r--src/include/usr/pnor/pnor_reasoncodes.H6
-rw-r--r--src/include/usr/pnor/pnorif.H19
2 files changed, 18 insertions, 7 deletions
diff --git a/src/include/usr/pnor/pnor_reasoncodes.H b/src/include/usr/pnor/pnor_reasoncodes.H
index 3eee83930..e9e98f9c5 100644
--- a/src/include/usr/pnor/pnor_reasoncodes.H
+++ b/src/include/usr/pnor/pnor_reasoncodes.H
@@ -105,9 +105,10 @@ namespace PNOR
MOD_SPNORRP_WAITFORMESSAGE = 0xD3, /**< SPnorRP::waitForMessage */
MOD_SPNORRP_VERIFYSECTIONS = 0xD4, /**< SPnorRP::verifySections */
MOD_SPNORRP_SET_PERMISSION = 0xD5, /**< SPnorRP::initDaemon */
- MOD_PNORRP_LOADSECURESECTION = 0xD6, /**< PnorRP::loadSecureSection */
+ MOD_PNORRP_LOADUNLOADSECURESECTION = 0xD6, /**< PnorRP::loadSecureSection */
MOD_SPNORRP_BASE_EXT_VER_CHK = 0xD7, /**< SPnorRP::baseExtVersCheck */
MOD_SPNORRP_KEY_TRAN_CHK = 0xD8, /**< SPnorRP::keyTransitionCheck */
+ MOD_SPNORRP_REMOVE_PAGES = 0xD9,
// ast_mboxdd.C
MOD_ASTMBOXDD_DO_MESSAGE = 0xE0, /**< astMbox::doMessage */
@@ -178,6 +179,9 @@ namespace PNOR
RC_MBOX_BAD_SEQUENCE = PNOR_COMP_ID | 0x32,
RC_MBOX_ERROR_STATUS = PNOR_COMP_ID | 0x33,
RC_UNSIGNED_PNOR_SECTION = PNOR_COMP_ID | 0x34,
+ RC_NOT_A_LOADED_SECTION = PNOR_COMP_ID | 0x35,
+ RC_NOT_A_SUPPORTED_SECTION = PNOR_COMP_ID | 0x36,
+ RC_SECURE_UNLOAD_DISALLOWED = PNOR_COMP_ID | 0x37,
//@fixme-RTC:131607-Temporary value to allow HWSV compile
//termination_rc
diff --git a/src/include/usr/pnor/pnorif.H b/src/include/usr/pnor/pnorif.H
index 7e62e6042..1c35ec852 100644
--- a/src/include/usr/pnor/pnorif.H
+++ b/src/include/usr/pnor/pnorif.H
@@ -94,8 +94,9 @@ errlHndl_t getSectionInfo( SectionId i_section,
* placing it in the address space. Returns error if the requested
* section does not have secure space support.
*
- * @param[in] i_section PNOR section to load. Section must not already be
- * loaded.
+ * @param[in] i_section PNOR section to load. If the section is already loaded,
+ * the bulk of the load operation will not be repeated as
+ * a reference count is maintained for each section.
*
* @return errlHndl_t Error log handle
* @retval NULL Successfully loaded PNOR section
@@ -104,14 +105,20 @@ errlHndl_t getSectionInfo( SectionId i_section,
errlHndl_t loadSecureSection(SectionId i_section);
/**
- * @brief Flushes any applicable pending writes and unloads requested PNOR
- * section from secure virtual address space
+ * @brief Unloads requested PNOR section from secure virtual address space.
+ * There are some restrictions about which sections can be unloaded.
+ * 1. You cannot unload HBB, HBI, or targeting sections. These are core
+ * sections that need to be available as much as possible.
+ * 2. You can only unload sections for which the secure payload is
+ * the entire payload. Sections with unsecured pages are not
+ * supported.
*
- * @param[in] i_section PNOR section to unload. No-op if already unloaded.
+ * @param[in] i_section PNOR section to unload.
*
* @return errlHndl_t Error log handle
* @retval NULL Successfully unloaded PNOR section
- * @retval !NULL Failed to unload PNOR section
+ * @retval !NULL Failed to unload PNOR section for the reasons listed above
+ * or if the section is not currently loaded.
*/
errlHndl_t unloadSecureSection(SectionId i_section);
OpenPOWER on IntegriCloud