diff options
Diffstat (limited to 'src/import/chips/p9/xip')
-rw-r--r-- | src/import/chips/p9/xip/p9_xip_image.c | 21 | ||||
-rw-r--r-- | src/import/chips/p9/xip/p9_xip_image.h | 6 | ||||
-rw-r--r-- | src/import/chips/p9/xip/p9_xip_tool.C | 1 |
3 files changed, 12 insertions, 16 deletions
diff --git a/src/import/chips/p9/xip/p9_xip_image.c b/src/import/chips/p9/xip/p9_xip_image.c index bad0ad5f..ed89d0fe 100644 --- a/src/import/chips/p9/xip/p9_xip_image.c +++ b/src/import/chips/p9/xip/p9_xip_image.c @@ -5,7 +5,7 @@ /* */ /* OpenPOWER sbe Project */ /* */ -/* Contributors Listed Below - COPYRIGHT 2015,2016 */ +/* Contributors Listed Below - COPYRIGHT 2015,2017 */ /* [+] International Business Machines Corp. */ /* */ /* */ @@ -1474,6 +1474,7 @@ xipHeaderFind(void* i_image, const char* i_id, P9XipItem* o_item) HEADER_TOC(image_size, iv_imageSize, P9_XIP_UINT32), HEADER_TOC(build_date, iv_buildDate, P9_XIP_UINT32), HEADER_TOC(build_time, iv_buildTime, P9_XIP_UINT32), + HEADER_TOC(build_tag, iv_buildTag, P9_XIP_STRING), HEADER_TOC(header_version, iv_headerVersion, P9_XIP_UINT8), HEADER_TOC(toc_normalized, iv_normalized, P9_XIP_UINT8), @@ -3068,10 +3069,7 @@ p9_xip_translate_header(P9XipHeader* o_dest, const P9XipHeader* i_src) o_dest->iv_kernelAddr = htobe64(i_src->iv_kernelAddr); o_dest->iv_linkAddress = htobe64(i_src->iv_linkAddress); - for (i = 0; i < 3; i++) - { - o_dest->iv_reserved64[i] = 0; - } + memset(o_dest->iv_reserved64, 0, sizeof(i_src->iv_reserved64)); for (i = 0, destSection = o_dest->iv_section, srcSection = i_src->iv_section; @@ -3084,20 +3082,16 @@ p9_xip_translate_header(P9XipHeader* o_dest, const P9XipHeader* i_src) o_dest->iv_imageSize = htobe32(i_src->iv_imageSize); o_dest->iv_buildDate = htobe32(i_src->iv_buildDate); o_dest->iv_buildTime = htobe32(i_src->iv_buildTime); + memcpy(o_dest->iv_buildTag, i_src->iv_buildTag, + sizeof(i_src->iv_buildTag)); - for (i = 0; i < 5; i++) - { - o_dest->iv_reserved32[i] = 0; - } + o_dest->iv_reserved32 = 0; o_dest->iv_headerVersion = i_src->iv_headerVersion; o_dest->iv_normalized = i_src->iv_normalized; o_dest->iv_tocSorted = i_src->iv_tocSorted; - for (i = 0; i < 3; i++) - { - o_dest->iv_reserved8[i] = 0; - } + memset(o_dest->iv_reserved8, 0, sizeof(i_src->iv_reserved8)); memcpy(o_dest->iv_buildUser, i_src->iv_buildUser, sizeof(i_src->iv_buildUser)); @@ -3105,7 +3099,6 @@ p9_xip_translate_header(P9XipHeader* o_dest, const P9XipHeader* i_src) sizeof(i_src->iv_buildHost)); memcpy(o_dest->iv_reservedChar, i_src->iv_reservedChar, sizeof(i_src->iv_reservedChar)); - #else if (o_dest != i_src) diff --git a/src/import/chips/p9/xip/p9_xip_image.h b/src/import/chips/p9/xip/p9_xip_image.h index e25de0bd..97f21d35 100644 --- a/src/import/chips/p9/xip/p9_xip_image.h +++ b/src/import/chips/p9/xip/p9_xip_image.h @@ -391,8 +391,11 @@ typedef struct /// Build time generated by `date +%H%M`, e.g., 0756 uint32_t iv_buildTime; + /// Build tag, generated when releasing this image to fw + char iv_buildTag[16]; + /// Reserved for future expansion - uint32_t iv_reserved32[5]; + uint32_t iv_reserved32; ////////////////////////////////////////////////////////////////////// // Other Information - 1-byte aligned; 8 entries @@ -422,7 +425,6 @@ typedef struct /// Reserved for future expansion char iv_reservedChar[8]; - } P9XipHeader; diff --git a/src/import/chips/p9/xip/p9_xip_tool.C b/src/import/chips/p9/xip/p9_xip_tool.C index 27150f55..bfa40cd6 100644 --- a/src/import/chips/p9/xip/p9_xip_tool.C +++ b/src/import/chips/p9/xip/p9_xip_tool.C @@ -555,6 +555,7 @@ dumpHeader(void* i_image) header.iv_buildTime % 100); printf("Build User : %s\n", header.iv_buildUser); printf("Build Host : %s\n", header.iv_buildHost); + printf("Build Tag : %s\n", header.iv_buildTag); printf("\n"); printf("Section Table :\n\n"); |