summaryrefslogtreecommitdiffstats
path: root/src/import/chips/common/utils/imageProcs/common_ringId.H
diff options
context:
space:
mode:
Diffstat (limited to 'src/import/chips/common/utils/imageProcs/common_ringId.H')
-rw-r--r--src/import/chips/common/utils/imageProcs/common_ringId.H37
1 files changed, 21 insertions, 16 deletions
diff --git a/src/import/chips/common/utils/imageProcs/common_ringId.H b/src/import/chips/common/utils/imageProcs/common_ringId.H
index bcf6dc24..a0ba7c12 100644
--- a/src/import/chips/common/utils/imageProcs/common_ringId.H
+++ b/src/import/chips/common/utils/imageProcs/common_ringId.H
@@ -83,7 +83,7 @@ typedef uint8_t myBoolean_t; // false:0, true:1, undefined:UNDEFINED_BOOL
typedef struct
{
uint32_t magic; // =TOR_MAGIC_xyz
- uint8_t version; // =TOR_VERSION
+ uint8_t version; // =TOR version
ChipType_t chipType; // Value from ChipType enum
uint8_t ddLevel; // Actual DD level of ringSection
uint8_t undefined;
@@ -121,7 +121,8 @@ typedef uint16_t TorRingOffset_t; // Offset value to actual ring
//#define TOR_VERSION 3 // Added TOR magic header.
//#define TOR_VERSION 4 // TOR API code restructuring.
//#define TOR_VERSION 5 // Removed TOR-level DD handling.
-#define TOR_VERSION 6 // Added additional runtime risk level (RL2)
+//#define TOR_VERSION 6 // Added additional runtime risk level (RL2)
+#define TOR_VERSION 7 // Added three more runtime risk levels (RL3/4/5)
// TOR Magic values for top-level TOR ringSection and sub-ringSections
enum TorMagicNum
@@ -196,7 +197,7 @@ typedef struct
uint32_t scanScomAddress;
} GenRingIdList;
-// P9 PPE types supported.
+// PPE types supported.
// - This enum also reflects the order with which they appear in the HW image's .rings section.
// - Do NOT make changes to the values or order of this enum.
enum PpeType
@@ -207,28 +208,32 @@ enum PpeType
NUM_PPE_TYPES = 0x03
};
-// P9 ring variants supported.
+// Ring variants supported.
// - This enum also reflects the order with which they appear in various images' .rings section.
// - Do NOT make changes to the values or order of this enum.
enum RingVariant
{
RV_BASE = 0x00,
RV_CC = 0x01,
- RV_RL = 0x02,
- RV_RL2 = 0x03,
- NUM_RING_VARIANTS = 0x04,
+ RV_RL = 0x02, // Kernel and user protection
+ RV_RL2 = 0x03, // Kernel only protection
+ RV_RL3 = 0x04, // Rugby v4
+ RV_RL4 = 0x05, // Java performance
+ RV_RL5 = 0x06, // Spare
+ NUM_RING_VARIANTS = 0x07,
};
extern const char* ppeTypeName[];
extern const char* ringVariantName[];
+// Variant order for Common rings
typedef struct
{
- RingVariant_t variant[4];
+ RingVariant_t variant[NUM_RING_VARIANTS];
} RingVariantOrder;
-// P9 ring types supported.
+// Ring types supported.
// - This enum also reflects the order with which they appear in various images' .rings section.
// - Do NOT make changes to the values or order of this enum.
enum RingType
@@ -247,21 +252,21 @@ enum RingBlockType
typedef struct
{
- // This is the chiplet-ID of the first instance of the Chiplet
+ // Chiplet ID of the first instance of the Chiplet
uint8_t iv_base_chiplet_number;
- // The no.of common rings for the Chiplet
+ // Number of common rings for the Chiplet
uint8_t iv_num_common_rings;
- // The no.of instance rings for the Chiplet (w/different ringId values)
+ // Number of instance rings for the Chiplet (w/different ringId values)
uint8_t iv_num_instance_rings;
- // The no.of instance rings for the Chiplet (w/different ringId values
+ // Number of instance rings for the Chiplet (w/different ringId values
// AND different scanAddress values)
uint8_t iv_num_instance_rings_scan_addrs;
- // The no.of ring variants
- uint8_t iv_num_ring_variants;
+ // Number of variants for common rings (instance rings only have BASE variant)
+ uint8_t iv_num_common_ring_variants;
} ChipletData_t;
// This is used to Set (Mark) the left-most bit
@@ -351,7 +356,7 @@ int ringid_get_properties( ChipType_t i_chipType,
GenRingIdList** o_ringIdListInstance,
RingVariantOrder** o_ringVariantOrder,
RingProperties_t** o_ringProps,
- uint8_t* o_numVariants );
+ uint8_t* o_numVariants);
#endif // _COMMON_RINGID_H_
OpenPOWER on IntegriCloud