diff options
Diffstat (limited to 'src/include/usr')
| -rw-r--r-- | src/include/usr/sbe/sbe_update.H | 15 | ||||
| -rw-r--r-- | src/include/usr/util/utilxipimage.H | 65 |
2 files changed, 78 insertions, 2 deletions
diff --git a/src/include/usr/sbe/sbe_update.H b/src/include/usr/sbe/sbe_update.H index 1d5a6a784..02cebeedb 100644 --- a/src/include/usr/sbe/sbe_update.H +++ b/src/include/usr/sbe/sbe_update.H @@ -31,6 +31,7 @@ #include <errl/errlentry.H> #include <pnor/pnorif.H> #include <pnor/ecc.H> +#include <util/utilxipimage.H> #include <vmmconst.h> #include <targeting/common/targetservice.H> #include <i2c/eepromif.H> @@ -266,12 +267,21 @@ namespace SBE uint32_t seeprom_1_data_crc; uint8_t seeprom_1_short_version[SBE_MVPD_SHORT_IMAGE_VERSION_SIZE]; + + Util::imageBuild_t seeprom_0_build; + + Util::imageBuild_t seeprom_1_build; + uint8_t mvpdSbPad[MVPD_SB_RECORD_SIZE - sizeof(flags) - sizeof(seeprom_0_data_crc) - sizeof(seeprom_1_data_crc) - - (SBE_MVPD_SHORT_IMAGE_VERSION_SIZE * 2)]; + - (SBE_MVPD_SHORT_IMAGE_VERSION_SIZE * 2) + - (sizeof(Util::imageBuild_t) * 2)]; } PACKED; + // This line forces a compile fail if struct is too large + static_assert(sizeof(mvpdSbKeyword_t) <= MVPD_SB_RECORD_SIZE, + "mvpdSbKeyword_t is too large"); /** * @brief Contains the SBE state for a given target @@ -308,6 +318,7 @@ namespace SBE sbeSeepromVersionInfo_t new_seeprom_ver; bool new_readBack_check; + Util::imageBuild_t new_imageBuild; uint32_t err_plid; uint32_t err_eid; @@ -442,7 +453,7 @@ namespace SBE /** * @brief Determines which Seeprom was used to boot the SBE * - * @param[in] i_target Target processor to customize + * @param[in] i_target Target processor to customize. * * @param[out] o_bootSide The Seeprom the SBE booted from * diff --git a/src/include/usr/util/utilxipimage.H b/src/include/usr/util/utilxipimage.H new file mode 100644 index 000000000..54aa77d03 --- /dev/null +++ b/src/include/usr/util/utilxipimage.H @@ -0,0 +1,65 @@ +/* IBM_PROLOG_BEGIN_TAG */ +/* This is an automatically generated prolog. */ +/* */ +/* $Source: src/include/usr/util/utilxipimage.H $ */ +/* */ +/* OpenPOWER HostBoot Project */ +/* */ +/* Contributors Listed Below - COPYRIGHT 2017 */ +/* [+] International Business Machines Corp. */ +/* */ +/* */ +/* Licensed under the Apache License, Version 2.0 (the "License"); */ +/* you may not use this file except in compliance with the License. */ +/* You may obtain a copy of the License at */ +/* */ +/* http://www.apache.org/licenses/LICENSE-2.0 */ +/* */ +/* Unless required by applicable law or agreed to in writing, software */ +/* distributed under the License is distributed on an "AS IS" BASIS, */ +/* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or */ +/* implied. See the License for the specific language governing */ +/* permissions and limitations under the License. */ +/* */ +/* IBM_PROLOG_END_TAG */ +/** + * @file util/utilxipimage.H + * + * @brief Provides utility functions for XIP images. + */ +#ifndef __UTIL_XIP_IMAGE_H +#define __UTIL_XIP_IMAGE_H + +//****************************************************************************** +// Includes +//****************************************************************************** +#include <trace/interface.H> + +namespace Util +{ + + /** + * @brief Structure for XIP image build information + */ + struct imageBuild_t + { + uint32_t buildDate; // Generated by `date +%Y%m%d`, eg, 20110630 + uint32_t buildTime; // Generated by `date +%H%M`, eg, 0756 + char buildTag[20]; // Generated when releasing image to fw + } PACKED; + + /** + * @brief Pull build information from XIP header and trace it. + * @param[in] i_imagePtr Pointer to image with XIP header. + * + * @param[out] o_imageBuild Build information for input image. + * + * @param[in] i_traceDesc Trace descriptor for trace buffer to use. + * Defaults to nullptr and not tracing. + */ + void pullTraceBuildInfo(void* i_imagePtr, + imageBuild_t& o_imageBuild, + trace_desc_t* i_traceDesc = nullptr); +} + +#endif
\ No newline at end of file |

