summaryrefslogtreecommitdiffstats
path: root/src/include/usr/pnor/pnorif.H
diff options
context:
space:
mode:
Diffstat (limited to 'src/include/usr/pnor/pnorif.H')
-rw-r--r--src/include/usr/pnor/pnorif.H39
1 files changed, 36 insertions, 3 deletions
diff --git a/src/include/usr/pnor/pnorif.H b/src/include/usr/pnor/pnorif.H
index a9856f814..26890771a 100644
--- a/src/include/usr/pnor/pnorif.H
+++ b/src/include/usr/pnor/pnorif.H
@@ -29,6 +29,7 @@
#include <stdint.h>
#include <builtins.h>
#include <errl/errlentry.H>
+#include <utility>
namespace PNOR
{
@@ -61,6 +62,7 @@ enum SectionId
ATTR_PERM, /**< Permanent Attribute Override */
CAPP, /**< CAPP lid */
TEST, /**< Scratch space for PNOR test cases */
+ TESTRO, /**< Scratch space for PNOR ReadOnly test cases */
NUM_SECTIONS, /**< Number of defined sections */
@@ -82,7 +84,8 @@ struct SectionInfo_t
uint64_t size; /**< Size of partition in bytes */
bool eccProtected; /**< Section is ECC protected */
bool sha512Version; /**< Version Checking */
- bool sha512perEC; /**< Version Checking perEC */
+ bool sha512perEC; /**< Version Checking perEC */
+ bool readOnly; /**< Section is read only */
};
/**
@@ -121,6 +124,7 @@ errlHndl_t fixECC (SectionId i_section);
* true = PNOR DD is using L3 Cache for fake PNOR
* false = PNOR DD not using L3 Cache for fake PNOR
*/
+ bool usingL3Cache();
/**
* @brief Clears the specified PNOR section with all FF's (w/ good ECC)
@@ -131,8 +135,6 @@ errlHndl_t fixECC (SectionId i_section);
*/
errlHndl_t clearSection(PNOR::SectionId i_section);
-bool usingL3Cache();
-
/**
* @brief Validate the Alternative Master Processor's LPC
* Connection to PNOR
@@ -141,6 +143,14 @@ bool usingL3Cache();
*/
errlHndl_t validateAltMaster( void );
+//@ TODO RTC: 120061 add golden info
+//@ TODO RTC: 109703 make golden changes for informing OPAL
+struct TocInfo_t
+{
+ std::pair<uint64_t, uint64_t> activeTocOffsets;
+ std::pair<uint64_t, uint64_t> altTocOffsets;
+};
+
/** @brief PNOR::TEST section offsets for test cases to prevent
* concurrency problems
*/
@@ -150,6 +160,29 @@ enum TestSectionOffset{
pnorTestSec_rt_readwrite_offset = 0x6000,
};
+////////////////////////////////////////////////////////////////////////////////
+// SBE functionality that lives in PNOR
+
+// Used to keep track of perm/temp, and cur/alt
+enum sbeSeepromSide_t
+{
+ SBE_SEEPROM0 = 0x00, // corresponds to EEPROM::SBE_PRIMARY
+ SBE_SEEPROM1 = 0x01, // corresponts to EEPROM::SBE_BACKUP
+ SBE_SEEPROM_INVALID = 0xFF,
+};
+
+/**
+ * @brief Determines which Seeprom was used to boot the SBE
+ *
+ * @param[in] i_target Target processor to customize
+ *
+ * @param[out] o_bootSide The Seeprom the SBE booted from
+ *
+ * @return errlHndl_t Error log handle on failure.
+ */
+errlHndl_t getSbeBootSeeprom(TARGETING::Target* i_target,
+ sbeSeepromSide_t& o_bootSide);
+
}
#endif
OpenPOWER on IntegriCloud