diff options
| author | Mike Baiocchi <baiocchi@us.ibm.com> | 2013-09-20 14:47:15 -0500 |
|---|---|---|
| committer | A. Patrick Williams III <iawillia@us.ibm.com> | 2013-10-28 12:21:53 -0500 |
| commit | a094332bbe8807c8f24aeb79f34be063845cea10 (patch) | |
| tree | 7b05b516287bd27d971ee8404a980bfad311ac2b /src/include/usr/sbe | |
| parent | 7b8d4a482ca2d110f3bf67b7a8e1bed758318420 (diff) | |
| download | blackbird-hostboot-a094332bbe8807c8f24aeb79f34be063845cea10.tar.gz blackbird-hostboot-a094332bbe8807c8f24aeb79f34be063845cea10.zip | |
Initial Support for Updating SBE SEEPROM
This initial commit will be used to create the new SBE
directories and files. It also supports the usr functions
to find and copy SBE PNOR images. NOTE: It will not enable
Updating SBE SEEPROMs in the IPL.
Change-Id: I3f545a134493c7595ce50fd885478bbe606de472
RTC: 47032
Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/6311
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/include/usr/sbe')
| -rw-r--r-- | src/include/usr/sbe/sbeif.H | 72 | ||||
| -rw-r--r-- | src/include/usr/sbe/sbereasoncodes.H | 88 |
2 files changed, 160 insertions, 0 deletions
diff --git a/src/include/usr/sbe/sbeif.H b/src/include/usr/sbe/sbeif.H new file mode 100644 index 000000000..4570aaf85 --- /dev/null +++ b/src/include/usr/sbe/sbeif.H @@ -0,0 +1,72 @@ +/* IBM_PROLOG_BEGIN_TAG */ +/* This is an automatically generated prolog. */ +/* */ +/* $Source: src/include/usr/sbe/sbeif.H $ */ +/* */ +/* IBM CONFIDENTIAL */ +/* */ +/* COPYRIGHT International Business Machines Corp. 2013 */ +/* */ +/* p1 */ +/* */ +/* Object Code Only (OCO) source materials */ +/* Licensed Internal Code Source Materials */ +/* IBM HostBoot Licensed Internal Code */ +/* */ +/* The source code for this program is not published or otherwise */ +/* divested of its trade secrets, irrespective of what has been */ +/* deposited with the U.S. Copyright Office. */ +/* */ +/* Origin: 30 */ +/* */ +/* IBM_PROLOG_END_TAG */ +#ifndef _SBEIF_H +#define _SBEIF_H + +#include <errl/errlentry.H> +#include <pnor/pnorif.H> + +namespace SBE +{ + // Each SBE Image stored in PNOR has a 64-byte version associated with it + // (like a SHA hash of the image) + const size_t SBE_IMAGE_VERSION_SIZE = 64; // 64 bytes + + typedef uint8_t sbe_image_version_t[SBE_IMAGE_VERSION_SIZE]; + + + /** + * @brief Gets a pointer to the proper SBE image in PNOR + * + * @param[in] i_target Target used to find right SBE Image in PNOR + * + * @param[out] o_imgPtr Pointer to SBE Image mapped in PNOR + * Note: Pointer moved past any header(s) + * + * @param[out] o_imgSize Size of the SBE Image in PNOR + * Note: Size does not include any header(s) + * + * @param[out] o_version Pointer to SBE Image Version Struct + * If Pointer is NULL, version not returned; + * Else sbe_image_version_t is filled in + * + * @return errlHndl_t Error log handle on failure. + */ + errlHndl_t findSBEInPnor(TARGETING::Target* i_target, + void*& o_imgPt, + size_t& o_imgSize, + sbe_image_version_t* o_version = NULL); + + + /** + * @brief Iterates through all the functional processors and updates + * the SBE Image in a SEEPROM, if necessary. + * + * @return errlHndl_t Error log handle on failure. + */ + errlHndl_t updateProcessorSbeSeeproms(); + + +} //end namespace SBE + +#endif /* _SBEIF_H */ diff --git a/src/include/usr/sbe/sbereasoncodes.H b/src/include/usr/sbe/sbereasoncodes.H new file mode 100644 index 000000000..44416aa95 --- /dev/null +++ b/src/include/usr/sbe/sbereasoncodes.H @@ -0,0 +1,88 @@ +/* IBM_PROLOG_BEGIN_TAG */ +/* This is an automatically generated prolog. */ +/* */ +/* $Source: src/include/usr/vpd/vpdreasoncodes.H $ */ +/* */ +/* IBM CONFIDENTIAL */ +/* */ +/* COPYRIGHT International Business Machines Corp. 2013 */ +/* */ +/* p1 */ +/* */ +/* Object Code Only (OCO) source materials */ +/* Licensed Internal Code Source Materials */ +/* IBM HostBoot Licensed Internal Code */ +/* */ +/* The source code for this program is not published or otherwise */ +/* divested of its trade secrets, irrespective of what has been */ +/* deposited with the U.S. Copyright Office. */ +/* */ +/* Origin: 30 */ +/* */ +/* IBM_PROLOG_END_TAG */ +#ifndef __SBEREASONCODES_H +#define __SBEREASONCODES_H + +// ----------------------------------------------- +// Includes +// ----------------------------------------------- +#include <hbotcompid.H> + +namespace SBE +{ + +/** +* @enum SbeModuleid +* +* @brief Module Ids used in created errorlogs. Indicates which +* functions an error log was created in. +* +*/ +enum sbeModuleId +{ + SBE_INVALID_MODULE = 0x00, + SBE_FIND_IN_PNOR = 0x01, + SBE_UPDATE_SEEPROMS = 0x02, + SBE_GETSET_MVPD_VERSION = 0x03, + SBE_READ_PNOR_VERSION = 0x04, + SBE_READ_SBE_FROM_PNOR = 0x05, + SBE_CREATE_TEST_SPACE = 0x06, + SBE_CLEANUP_TEST_SPACE = 0x07, + SBE_GET_TARGET_INFO_STATE = 0x08, + SBE_GET_SEEPROM_INFO = 0x09, +}; + +/** + * @enum sbeReasonCode + * + * @brief Reasoncodes used to describe what errors are being indicated. + * + */ +enum sbeReasonCode +{ + SBE_INVALID_REASONCODE = SBE_COMP_ID | 0x00, // Invalid RC + SBE_ALLOC_BLOCK_FAIL = SBE_COMP_ID | 0x01, + SBE_SET_PERMISSION_FAIL = SBE_COMP_ID | 0x02, + SBE_REMOVE_PAGES_FAIL = SBE_COMP_ID | 0x03, + SBE_REMOVE_PAGES_FOR_EC = SBE_COMP_ID | 0x04, + SBE_REMOVE_PAGES_CLEANUP = SBE_COMP_ID | 0x05, + SBE_UNSUPPORTED_TOC = SBE_COMP_ID | 0x06, + SBE_INVALID_EYECATCHER = SBE_COMP_ID | 0x07, + SBE_EC_NOT_FOUND = SBE_COMP_ID | 0x08, + SBE_XIP_IMG_SIZE_FAIL = SBE_COMP_ID | 0x09, + SBE_MVPD_LEN_INVALID = SBE_COMP_ID | 0x0A, + SBE_VERSION_NOT_FOUND = SBE_COMP_ID | 0x0B, + + // SBE_UPDATE_REQUEST_REIPL Must have one unique use + // for Shutdown path. FSP relies on it. + // termination_rc + SBE_UPDATE_REQUEST_REIPL = SBE_COMP_ID | 0x0C, + + SBE_INVALID_INPUT = SBE_COMP_ID | 0x0D, + SBE_INVALID_SEEPROM_SIDE = SBE_COMP_ID | 0x0E, + SBE_ECC_FAIL = SBE_COMP_ID | 0x0F, +}; + +}; // end SBE + +#endif |

