summaryrefslogtreecommitdiffstats
path: root/src/usr/sbe/sbe_update.H
diff options
context:
space:
mode:
authorMike Baiocchi <baiocchi@us.ibm.com>2013-10-31 08:28:19 -0500
committerA. Patrick Williams III <iawillia@us.ibm.com>2013-12-09 14:00:07 -0600
commit3bfa2578d39f21a38a7d206d7b2c004a6e47b4c5 (patch)
treea2819185b33f6823fd8fb57a960a3a1f8cb58da9 /src/usr/sbe/sbe_update.H
parent7d1bbf71c30e8357e338fc4dda6b1f2547598153 (diff)
downloadtalos-hostboot-3bfa2578d39f21a38a7d206d7b2c004a6e47b4c5.tar.gz
talos-hostboot-3bfa2578d39f21a38a7d206d7b2c004a6e47b4c5.zip
Restart IPL after SBE Update
Along with some SBE Update improvements, this commit adds additional code to re-IPL the system after an SBE Update has taken place. NOTE: Full SBE Update code path to be enabled with RTC 89503. Change-Id: I6beaee026d3fc6aaa76bfc7ca387d6765754f0c3 RTC: 47033 Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/6986 Tested-by: Jenkins Server Reviewed-by: ADAM R. MUHLE <armuhle@us.ibm.com> Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com> Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
Diffstat (limited to 'src/usr/sbe/sbe_update.H')
-rw-r--r--src/usr/sbe/sbe_update.H41
1 files changed, 24 insertions, 17 deletions
diff --git a/src/usr/sbe/sbe_update.H b/src/usr/sbe/sbe_update.H
index bb161dfd0..beba75a8f 100644
--- a/src/usr/sbe/sbe_update.H
+++ b/src/usr/sbe/sbe_update.H
@@ -44,7 +44,8 @@ namespace SBE
const size_t SBE_MVPD_SHORT_IMAGE_VERSION_SIZE = 20;
// Version of Struct stored in SEEPROM
- const uint32_t SBE_SEEPROM_STRUCT_VERSION = 0x00000001;
+ const uint32_t SBE_SEEPROM_STRUCT_VERSION = 0x00000001;
+ const uint32_t SBE_SEEPROM_STRUCT_SIMICS_VERSION = 0x5A5A5A5A;
// Used for locations of SBE_Version and SBE Image on a SEEPROM
const uint64_t SBE_IMAGE_SEEPROM_ADDRESS = 0x400; // 1KB
@@ -62,12 +63,17 @@ namespace SBE
// MVPD SB Keyword contants
const size_t MVPD_SB_RECORD_SIZE = 49;
- const uint8_t PERMANENT_FLAG_MASK = 0x80;
- // PERMANENT FLAG = 0 -> indicates 0 is permanent.
+
+ // PERMANENT FLAG - bit 0: 0x0 -> indicates 0 is permanent.
+ const uint8_t PERMANENT_FLAG_MASK = 0x80;
const uint8_t SEEPROM_0_PERMANENT_VALUE = 0x00;
const uint8_t SEEPROM_1_PERMANENT_VALUE = 0x80;
- // @todo RTC 47033 - add support for bit 1 (0x40): temp boot side
+ // RE-IPL SEEPROM DESIGNATION - bit 1: 0x0 -> indicates boot from SEEPROM 0
+ // NOTE: Used *ONLY* for re-IPL Requests
+ const uint8_t REIPL_SEEPROM_MASK = 0x40;
+ const uint8_t REIPL_SEEPROM_0_VALUE = 0x00;
+ const uint8_t REIPL_SEEPROM_1_VALUE = 0x40;
// Situation constants -- bits numbered from left to right
const uint8_t SITUATION_ALL_BITS_MASK = 0xE0;
@@ -83,6 +89,9 @@ namespace SBE
const uint8_t SITUATION_ALT_IS_CLEAN = 0x00;
const uint8_t SITUATION_ALT_IS_DIRTY = 0x20;
+ // For mbox messages to FSP
+ const uint32_t MSG_IPL_DUE_TO_SBE_UPDATE = 0x40000012;
+
/******************************************/
/* Enums */
@@ -301,18 +310,6 @@ namespace SBE
void* io_imgPtr,
size_t& o_actImgSize);
- /**
- @brief Collect data for CRC, Concatenate the data, then compute the CRC
- *
- * @param[in] i_target Target processor
- *
- * @param[out] o_data_crc CRC computed from concatenated collected data
- *
- * @return errlHndl_t Error log handle on failure.
- */
- errlHndl_t getDataCrc(TARGETING::Target* i_target,
- uint32_t& o_data_crc);
-
/**
* @brief Determines which Seeprom was used to boot the SBE
@@ -354,6 +351,7 @@ namespace SBE
* @param[io/out] io_sbeState Struct containing SBE State of the target
* and the information to be used for updating
* the SBE State of the target
+ * @return errlHndl_t Error log handle on failure.
*/
errlHndl_t updateSeepromSide(sbeTargetState_t i_sbeState);
@@ -364,6 +362,14 @@ namespace SBE
/******************************************/
/**
+ * @brief Send Mailbox msg to FSP to query if this IPL came from
+ * SBE Update Re-Ipl Request
+ *
+ * @return bool If true, this IPL was from a Hostboot re-IPL request
+ */
+ bool isIplFromReIplRequest(void);
+
+ /**
* @brief Determines the Update Actions for a specific target situation
*
* @param[io/out] io_sbeState Struct containing SBE State of the target
@@ -422,7 +428,8 @@ namespace SBE
/**
* @brief Reduces bits set in a bit mask until there is a
- * a maximum number of bits set
+ * a maximum number of bits set.
+ * NOTE: bits removed left-to-right
*
* @param[in] i_mask Starting mask to be reduced
*
OpenPOWER on IntegriCloud