summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/import/chips/p9/utils/imageProcs/p9_tor.C20
-rw-r--r--src/import/chips/p9/utils/imageProcs/p9_tor.H8
-rw-r--r--src/import/chips/p9/xip/p9_xip_image.C4
-rw-r--r--src/import/chips/p9/xip/p9_xip_image.h8
-rw-r--r--src/import/chips/p9/xip/p9_xip_tool.C12
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;
OpenPOWER on IntegriCloud