diff options
-rw-r--r-- | src/import/chips/p9/utils/imageProcs/p9_tor.C | 20 | ||||
-rw-r--r-- | src/import/chips/p9/utils/imageProcs/p9_tor.H | 8 | ||||
-rw-r--r-- | src/import/chips/p9/xip/p9_xip_image.C | 4 | ||||
-rw-r--r-- | src/import/chips/p9/xip/p9_xip_image.h | 8 | ||||
-rw-r--r-- | src/import/chips/p9/xip/p9_xip_tool.C | 12 |
5 files changed, 30 insertions, 22 deletions
diff --git a/src/import/chips/p9/utils/imageProcs/p9_tor.C b/src/import/chips/p9/utils/imageProcs/p9_tor.C index ea454c0c..e573fa9b 100644 --- a/src/import/chips/p9/utils/imageProcs/p9_tor.C +++ b/src/import/chips/p9/utils/imageProcs/p9_tor.C @@ -5,7 +5,7 @@ /* */ /* OpenPOWER sbe Project */ /* */ -/* Contributors Listed Below - COPYRIGHT 2016,2017 */ +/* Contributors Listed Below - COPYRIGHT 2016,2018 */ /* [+] International Business Machines Corp. */ /* */ /* */ @@ -284,7 +284,7 @@ int get_ring_from_ring_section( void* i_ringSection, // Ring secti ////////////////////////////////////////////////////////////////////////////////////////// int tor_access_ring( void* i_ringSection, // Ring section ptr RingId_t i_ringId, // Ring ID - uint16_t i_ddLevel, // DD level + uint8_t i_ddLevel, // DD level PpeType_t i_ppeType, // SBE, CME, SGPE RingVariant_t i_ringVariant, // Base,CC,RL (SBE,CME,SGPE only) uint8_t& io_instanceId, // Instance ID @@ -372,6 +372,16 @@ int tor_access_ring( void* i_ringSection, // Ring section ptr } } + else + { + if ( i_ddLevel != torHeader->ddLevel && + i_ddLevel != UNDEFINED_DD_LEVEL ) + { + MY_ERR("Requested DD level (=0x%x) doesn't match TOR header DD level (=0x%x) nor UNDEFINED_DD_LEVEL\n", + i_ddLevel, torHeader->ddLevel); + return TOR_DD_LEVEL_NOT_FOUND; + } + } if ( ( i_ringBlockType == GET_SINGLE_RING ) || // All Magics supported for GET ( i_ringBlockType == PUT_SINGLE_RING && // Can only append to SBE,CME,SGPE @@ -491,7 +501,7 @@ int tor_access_ring( void* i_ringSection, // Ring section ptr // ///////////////////////////////////////////////////////////////////////////////////// int tor_get_single_ring ( void* i_ringSection, // Ring section ptr - uint16_t i_ddLevel, // DD level + uint8_t i_ddLevel, // DD level RingId_t i_ringId, // Ring ID PpeType_t i_ppeType, // SBE, CME, SGPE RingVariant_t i_ringVariant, // Base,CC,RL (SBE/CME/SGPE only) @@ -537,7 +547,7 @@ int tor_get_single_ring ( void* i_ringSection, // Ring section ptr // /////////////////////////////////////////////////////////////////////////////////////// int tor_get_block_of_rings ( void* i_ringSection, // Ring section ptr - uint16_t i_ddLevel, // DD level + uint8_t i_ddLevel, // DD level PpeType_t i_ppeType, // SBE,CME,SGPE RingVariant_t i_ringVariant, // Base,CC,RL void** io_ringBlockPtr, // Output ring buffer @@ -643,7 +653,7 @@ int tor_append_ring( void* i_ringSection, // Ring section ptr rc = tor_access_ring( i_ringSection, i_ringId, - 0x00, + UNDEFINED_DD_LEVEL, i_ppeType, i_ringVariant, i_instanceId, diff --git a/src/import/chips/p9/utils/imageProcs/p9_tor.H b/src/import/chips/p9/utils/imageProcs/p9_tor.H index 2a764c52..12817067 100644 --- a/src/import/chips/p9/utils/imageProcs/p9_tor.H +++ b/src/import/chips/p9/utils/imageProcs/p9_tor.H @@ -5,7 +5,7 @@ /* */ /* OpenPOWER sbe Project */ /* */ -/* Contributors Listed Below - COPYRIGHT 2016,2017 */ +/* Contributors Listed Below - COPYRIGHT 2016,2018 */ /* [+] International Business Machines Corp. */ /* */ /* */ @@ -127,7 +127,7 @@ typedef enum RingBlockType /// \retval non-0 See \ref TOR API RETURN errors int tor_access_ring( void* i_ringSection, // Ring section ptr RingId_t i_ringId, // Unique ring ID - uint16_t i_ddLevel, // DD level info + uint8_t i_ddLevel, // DD level info PpeType_t i_PpeType, // PPE type : SBE, CME, etc RingVariant_t i_RingVariant, // Base, Cache etc uint8_t& io_instanceId, // chiplet instance ID @@ -176,7 +176,7 @@ int tor_access_ring( void* i_ringSection, // Ring section ptr /// /// \retval non-0 See \ref TOR API RETURN errors int tor_get_single_ring ( void* i_ringSection, - uint16_t i_ddLevel, + uint8_t i_ddLevel, RingId_t i_ringId, PpeType_t i_PpeType, RingVariant_t i_RingVariant, @@ -220,7 +220,7 @@ int tor_get_single_ring ( void* i_ringSection, /// /// \retval non-0 See \ref TOR API RETURN errors int tor_get_block_of_rings ( void* i_ringSection, - uint16_t i_ddLevel, + uint8_t i_ddLevel, PpeType_t i_PpeType, RingVariant_t i_RingVariant, void** io_ringBlockPtr, diff --git a/src/import/chips/p9/xip/p9_xip_image.C b/src/import/chips/p9/xip/p9_xip_image.C index 6b3168c8..874c0417 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 2017 */ +/* Contributors Listed Below - COPYRIGHT 2017,2018 */ /* [+] International Business Machines Corp. */ /* */ /* */ @@ -2061,7 +2061,7 @@ p9_xip_get_section(const void* i_image, xipTranslateSection(o_hostSection, imageSection); } - if (i_ddLevel == P9_XIP_UNDEFINED_DDLEVEL) + if (i_ddLevel == UNDEFINED_DD_LEVEL) { //Here we always return the entire XIP section. Nothing more to do. } diff --git a/src/import/chips/p9/xip/p9_xip_image.h b/src/import/chips/p9/xip/p9_xip_image.h index 4dfbbbf5..a78befa1 100644 --- a/src/import/chips/p9/xip/p9_xip_image.h +++ b/src/import/chips/p9/xip/p9_xip_image.h @@ -5,7 +5,7 @@ /* */ /* OpenPOWER sbe Project */ /* */ -/* Contributors Listed Below - COPYRIGHT 2015,2017 */ +/* Contributors Listed Below - COPYRIGHT 2015,2018 */ /* [+] International Business Machines Corp. */ /* */ /* */ @@ -248,9 +248,6 @@ typedef enum { /// gaurantee that the something will be able to complete any 8-byte load/store. #define P9_XIP_FINAL_ALIGNMENT 8 -/// Local undefined DD level value. -#define P9_XIP_UNDEFINED_DDLEVEL (uint8_t)0xff - //////////////////////////////////////////////////////////////////////////// // C Definitions @@ -263,6 +260,7 @@ typedef enum { #include <stdint.h> #endif #include <stddef.h> +#include <common_ringId.H> #ifdef __cplusplus extern "C" { @@ -713,7 +711,7 @@ p9_xip_get_section(const void* i_image, P9XipSection* o_hostSection); #else P9XipSection* o_hostSection, - uint8_t i_ddLevel=P9_XIP_UNDEFINED_DDLEVEL); + uint8_t i_ddLevel=UNDEFINED_DD_LEVEL); #endif diff --git a/src/import/chips/p9/xip/p9_xip_tool.C b/src/import/chips/p9/xip/p9_xip_tool.C index 0a38fb46..48749db3 100644 --- a/src/import/chips/p9/xip/p9_xip_tool.C +++ b/src/import/chips/p9/xip/p9_xip_tool.C @@ -5,7 +5,7 @@ /* */ /* OpenPOWER sbe Project */ /* */ -/* Contributors Listed Below - COPYRIGHT 2016,2017 */ +/* Contributors Listed Below - COPYRIGHT 2016,2018 */ /* [+] International Business Machines Corp. */ /* */ /* */ @@ -1320,7 +1320,7 @@ extract(const char* i_imageFile, const int i_imageFd, void* io_image, const char* i_sectionName; //Direct copy of input arg, thus i_ const char* i_fileName; //Same std::string i_ddLevelStr; //Same - uint8_t ddLevel = P9_XIP_UNDEFINED_DDLEVEL; + uint8_t ddLevel = UNDEFINED_DD_LEVEL; bool bDdSuppExpected = false; int fileFd, sectionId; void* newImage; @@ -1356,7 +1356,7 @@ extract(const char* i_imageFile, const int i_imageFd, void* io_image, " Output file: %s\n", i_sectionName, i_fileName); - ddLevel = P9_XIP_UNDEFINED_DDLEVEL; + ddLevel = UNDEFINED_DD_LEVEL; bDdSuppExpected = false; if (i_argc == 3) @@ -1402,7 +1402,7 @@ extract(const char* i_imageFile, const int i_imageFd, void* io_image, if (ddLevel == 0) { - ddLevel = P9_XIP_UNDEFINED_DDLEVEL; + ddLevel = UNDEFINED_DD_LEVEL; // Even though this may seem like we should just exit here, we'll leave it up // to xip_get_section what to do in this case. Who knows, maybe it'll eventually // return a list of supported DD levels. @@ -1884,9 +1884,9 @@ int dissectRingSectionTor( uint8_t* i_ringSection, uint32_t i; RingId_t numRingIds = 0; uint32_t torMagic = 0xffffffff; // Undefined value - ChipType_t chipType = UNDEFINED_CHIP_TYPE; // Undefined value + ChipType_t chipType = UNDEFINED_CHIP_TYPE; uint32_t numDdLevels = 0; // Undefined value - uint8_t iDdLevel, ddLevel = 0xff; // Undefined value + uint8_t iDdLevel, ddLevel = UNDEFINED_DD_LEVEL; PpeType_t ppeType; RingId_t ringId; RingVariant_t ringVariant; |