Merge pull request #315 from opjenkin/op-build-update_030_5-21-2020

op-build update 5-21-2020
diff --git a/openpower/package/hostboot-p10/0001-Mvpd-Ekb-ringId-gap-discontinuity-support.patch b/openpower/package/hostboot-p10/0001-Mvpd-Ekb-ringId-gap-discontinuity-support.patch
deleted file mode 100644
index 97858a3..0000000
--- a/openpower/package/hostboot-p10/0001-Mvpd-Ekb-ringId-gap-discontinuity-support.patch
+++ /dev/null
@@ -1,3494 +0,0 @@
-From aaeb72ec680f77eaa8d583b9bd91b62745d025c7 Mon Sep 17 00:00:00 2001
-From: Olsen <cmolsen@us.ibm.com>
-Date: Thu, 6 Feb 2020 08:48:34 -0500
-Subject: [PATCH] Mvpd-Ekb ringId gap-discontinuity support
-
-Making support for the ringId gap that needs to exist between the end
-of the Mvpd RingID group and the beginning of the Ekb RingID group
-in order to be able to append Mvpd rings to the end of the Mvpd
-RingID group without affecting the already assigned RingID enum for
-any of the other existing rings.
-
-Note that the purpose of any RingID grouping, or order, is to:
-- ease debugging the ring images and output traces of ipl_customize,
-- ease the maintaining of the ringId header files.
-
-Enforcing ringId groups comes with an increase in code complexity
-to enable conversion between ringId and rpIndex (i.e., the index of
-of the RING_PROPERTIES list).
-
-Several bugs were found in implementing the above support as there has
-been a built-in assumption in the PPE/Cronus customized putRingUtils
-and ring_traverse codes that the ringId is a uint8 type but which we
-are now exceeding the limit of with this group enforcement.
-
-Also added updated mvpd.dat, based on scandef ver 910007, to better
-match EKB engd's version (which at the time of this merge seems to be
-consistent with 910007).
-- Also added an README file with details about mvpd.dat
-
-Key_Cronus_Test=XIP_REGRESS_SBE_QME
-
-Change-Id: I59eddeff34c3dedf23b092b0cf89ef422e8bb753
-Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/91255
-Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
-Tested-by: PPE CI <ppe-ci+hostboot@us.ibm.com>
-Tested-by: Cronus HW CI <cronushw-ci+hostboot@us.ibm.com>
-Reviewed-by: Jennifer A Stofer <stofer@us.ibm.com>
----
- .../chips/common/utils/imageProcs/common_ringId.C  | 361 +++++-----
- .../chips/common/utils/imageProcs/common_ringId.H  |  34 +-
- .../procedures/hwp/accessors/p10_get_mvpd_ring.C   |   6 +-
- .../procedures/hwp/accessors/p10_mvpd_ring_funcs.C |  42 +-
- .../procedures/hwp/customize/p10_ipl_customize.C   | 282 ++++----
- .../procedures/hwp/customize/p10_qme_customize.C   | 281 ++++----
- .../procedures/hwp/customize/p10_qme_customize.H   |  67 +-
- .../p10/procedures/hwp/pm/p10_hcode_image_build.C  |   6 +-
- .../xml/error_info/p10_qme_customize_errors.xml    |  52 +-
- src/import/chips/p10/utils/imageProcs/p10_ringId.H |  48 +-
- .../chips/p10/utils/imageProcs/p10_ring_id.H       | 194 +++---
- .../p10/utils/imageProcs/p10_ring_properties.H     | 725 +++++++++++----------
- src/import/chips/p10/utils/imageProcs/p10_tor.C    |  75 ++-
- 13 files changed, 1107 insertions(+), 1066 deletions(-)
-
-diff --git a/src/import/chips/common/utils/imageProcs/common_ringId.C b/src/import/chips/common/utils/imageProcs/common_ringId.C
-index 19729ad..904cb38 100644
---- a/src/import/chips/common/utils/imageProcs/common_ringId.C
-+++ b/src/import/chips/common/utils/imageProcs/common_ringId.C
-@@ -164,19 +164,22 @@ int ringid_get_scanScomAddr( ChipId_t   i_chipId,
-     int rc = INFRASTRUCT_RC_SUCCESS;
-     uint32_t l_scanScomAddr = UNDEFINED_SCOM_ADDR;
- 
-+    // Get the ring properties (rp) index
-+    RingId_t rpIndex = P10_RID::ringid_convert_ringId_to_rpIndex(i_ringId);
-+
-     switch (i_chipId)
-     {
-         case CID_P10:
--            if (i_ringId >= P10_RID::NUM_RING_IDS)
-+            if (rpIndex >= P10_RID::NUM_RING_IDS)
-             {
--                MY_ERR("ringid_get_scanScomAddr(): ringId(=0x%x) >= NUM_RING_IDS(=0x%x) not"
--                       " allowed\n",
--                       i_ringId, P10_RID::NUM_RING_IDS);
-+                MY_ERR("ringid_get_scanScomAddr(): rpIndex(=0x%x) >= NUM_RING_IDS(=0x%x) not"
-+                       " allowed and ringId=0x%x\n",
-+                       rpIndex, P10_RID::NUM_RING_IDS, i_ringId);
-                 rc = TOR_INVALID_RING_ID;
-                 break;
-             }
- 
--            l_scanScomAddr = P10_RID::RING_PROPERTIES[i_ringId].scanScomAddr;
-+            l_scanScomAddr = P10_RID::RING_PROPERTIES[rpIndex].scanScomAddr;
-             break;
- 
-         default:
-@@ -198,18 +201,22 @@ int ringid_get_ringClass( ChipId_t      i_chipId,
-     int rc = INFRASTRUCT_RC_SUCCESS;
-     RingClass_t l_ringClass = UNDEFINED_RING_CLASS;
- 
-+    // Get the ring properties (rp) index
-+    RingId_t rpIndex = P10_RID::ringid_convert_ringId_to_rpIndex(i_ringId);
-+
-     switch (i_chipId)
-     {
-         case CID_P10:
--            if (i_ringId >= P10_RID::NUM_RING_IDS)
-+            if (rpIndex >= P10_RID::NUM_RING_IDS)
-             {
--                MY_ERR("ringid_get_ringClass(): ringId(=0x%x) >= NUM_RING_IDS(=0x%x) not allowed\n",
--                       i_ringId, P10_RID::NUM_RING_IDS);
-+                MY_ERR("ringid_get_ringClass(): rpIndex(=0x%x) >= NUM_RING_IDS(=0x%x) not"
-+                       " allowed and ringId=0x%x\n",
-+                       rpIndex, P10_RID::NUM_RING_IDS, i_ringId);
-                 rc = TOR_INVALID_RING_ID;
-                 break;
-             }
- 
--            l_ringClass = P10_RID::RING_PROPERTIES[i_ringId].ringClass;
-+            l_ringClass = P10_RID::RING_PROPERTIES[rpIndex].ringClass;
-             break;
- 
-         default:
-@@ -227,33 +234,33 @@ int ringid_get_ringClass( ChipId_t      i_chipId,
- int ringid_check_ringId( ChipId_t  i_chipId,
-                          RingId_t  i_ringId )
- {
--    int rc = INFRASTRUCT_RC_SUCCESS;
-+    if ( i_ringId == HOLE_RING_ID )
-+    {
-+        // A hole ring is benign. Let caller decide.
-+        return TOR_HOLE_RING_ID;
-+    }
-+
-+    // Get the ring properties (rp) index
-+    RingId_t rpIndex = P10_RID::ringid_convert_ringId_to_rpIndex(i_ringId);
- 
-     switch (i_chipId)
-     {
-         case CID_P10:
--            if ( strcmp(P10_RID::RING_PROPERTIES[i_ringId].ringName, "invalid") == 0 )
-+            if ( rpIndex >= P10_RID::NUM_RING_IDS )
-             {
--                // There are ringId holes. This is harmless. No trace out.
--                rc = TOR_HOLE_RING_ID;
--            }
--            else if ( i_ringId >= P10_RID::NUM_RING_IDS && i_ringId != UNDEFINED_RING_ID )
--            {
--                // This is unlikely to happen, and shouldn't happen, so here we trace out.
--                MY_ERR("ringid_check_ringId(): ringId(=0x%x) >= NUM_RING_IDS(=0x%x) not allowed\n",
--                       i_ringId, P10_RID::NUM_RING_IDS);
--                rc = TOR_INVALID_RING_ID;
-+                // Not necessarily an error. Let caller decide.
-+                return TOR_INVALID_RING_ID;
-             }
- 
-             break;
- 
-         default:
--            MY_ERR("ringid_check_ringId(): Unsupported chipId (=%d) supplied\n", i_chipId);
--            rc = TOR_INVALID_CHIP_ID;
--            break;
-+            MY_ERR("ERROR: ringid_check_ringId: Unsupported chipId(=0x%x) supplied\n",
-+                   i_chipId);
-+            return TOR_INVALID_CHIP_ID;
-     }
- 
--    return rc;
-+    return TOR_SUCCESS;
- }
- 
- 
-@@ -313,10 +320,21 @@ int ringid_get_chipletIndex( ChipId_t        i_chipId,
- MyBool_t ringid_is_mvpd_ring( ChipId_t  i_chipId,
-                               RingId_t  i_ringId )
- {
-+    // Get the ring properties (rp) index
-+    RingId_t rpIndex = P10_RID::ringid_convert_ringId_to_rpIndex(i_ringId);
-+
-     switch (i_chipId)
-     {
-         case CID_P10:
--            if ( P10_RID::RING_PROPERTIES[i_ringId].ringClass & RCLS_MVPD_MASK )
-+            if (rpIndex >= P10_RID::NUM_RING_IDS)
-+            {
-+                MY_ERR("ringid_is_mvpd_ring(): rpIndex(=0x%x) >= NUM_RING_IDS(=0x%x) not"
-+                       " allowed and ringId=0x%x\n",
-+                       rpIndex, P10_RID::NUM_RING_IDS, i_ringId);
-+                return UNDEFINED_BOOLEAN;
-+            }
-+
-+            if ( P10_RID::RING_PROPERTIES[rpIndex].ringClass & RCLS_MVPD_MASK )
-             {
-                 return true;
-             }
-@@ -325,6 +343,8 @@ MyBool_t ringid_is_mvpd_ring( ChipId_t  i_chipId,
-                 return false;
-             }
- 
-+            break;
-+
-         default:
-             MY_ERR("ringid_is_mvpd_ring(): Unsupported chipId (=%d) supplied\n", i_chipId);
-             return UNDEFINED_BOOLEAN;
-@@ -336,10 +356,21 @@ MyBool_t ringid_is_mvpd_ring( ChipId_t  i_chipId,
- MyBool_t ringid_is_gptr_ring( ChipId_t  i_chipId,
-                               RingId_t  i_ringId )
- {
-+    // Get the ring properties (rp) index
-+    RingId_t rpIndex = P10_RID::ringid_convert_ringId_to_rpIndex(i_ringId);
-+
-     switch (i_chipId)
-     {
-         case CID_P10:
--            if ( P10_RID::RING_PROPERTIES[i_ringId].ringClass & RMRK_GPTR_OVLY )
-+            if (rpIndex >= P10_RID::NUM_RING_IDS)
-+            {
-+                MY_ERR("ringid_is_gptr_ring(): rpIndex(=0x%x) >= NUM_RING_IDS(=0x%x) not"
-+                       " allowed and ringId=0x%x\n",
-+                       rpIndex, P10_RID::NUM_RING_IDS, i_ringId);
-+                return UNDEFINED_BOOLEAN;
-+            }
-+
-+            if ( P10_RID::RING_PROPERTIES[rpIndex].ringClass & RMRK_GPTR_OVLY )
-             {
-                 return true;
-             }
-@@ -348,6 +379,8 @@ MyBool_t ringid_is_gptr_ring( ChipId_t  i_chipId,
-                 return false;
-             }
- 
-+            break;
-+
-         default:
-             MY_ERR("ringid_is_gptr_ring(): Unsupported chipId (=%d) supplied\n", i_chipId);
-             return UNDEFINED_BOOLEAN;
-@@ -357,13 +390,51 @@ MyBool_t ringid_is_gptr_ring( ChipId_t  i_chipId,
- }
- 
- 
-+MyBool_t ringid_is_instance_ring( RingId_t  i_rpIndex)
-+{
-+    if (i_rpIndex >= P10_RID::NUM_RING_IDS)
-+    {
-+        MY_ERR("ringid_is_instance_ring(): rpIndex(=0x%x) >= NUM_RING_IDS(=0x%x) not allowed\n",
-+               i_rpIndex, P10_RID::NUM_RING_IDS);
-+        return UNDEFINED_BOOLEAN;
-+    }
-+
-+    if ( P10_RID::RING_PROPERTIES[i_rpIndex].idxRing == UNDEFINED_RING_INDEX )
-+    {
-+        return UNDEFINED_BOOLEAN;
-+    }
-+
-+    if ( P10_RID::RING_PROPERTIES[i_rpIndex].idxRing & INSTANCE_RING_MARK )
-+    {
-+        return true;
-+    }
-+    else
-+    {
-+        return false;
-+    }
-+
-+    return UNDEFINED_BOOLEAN;
-+}
-+
-+
- MyBool_t ringid_has_derivs( ChipId_t  i_chipId,
-                             RingId_t  i_ringId )
- {
-+    // Get the ring properties (rp) index
-+    RingId_t rpIndex = P10_RID::ringid_convert_ringId_to_rpIndex(i_ringId);
-+
-     switch (i_chipId)
-     {
-         case CID_P10:
--            if ( P10_RID::RING_PROPERTIES[i_ringId].ringClass & RMRK_HAS_DERIVS )
-+            if (rpIndex >= P10_RID::NUM_RING_IDS)
-+            {
-+                MY_ERR("ringid_has_derivs(): rpIndex(=0x%x) >= NUM_RING_IDS(=0x%x) not"
-+                       " allowed and ringId=0x%x\n",
-+                       rpIndex, P10_RID::NUM_RING_IDS, i_ringId);
-+                return UNDEFINED_BOOLEAN;
-+            }
-+
-+            if ( P10_RID::RING_PROPERTIES[rpIndex].ringClass & RMRK_HAS_DERIVS )
-             {
-                 return true;
-             }
-@@ -372,6 +443,8 @@ MyBool_t ringid_has_derivs( ChipId_t  i_chipId,
-                 return false;
-             }
- 
-+            break;
-+
-         default:
-             MY_ERR("ringid_has_derivs(): Unsupported chipId (=%d) supplied\n", i_chipId);
-             return UNDEFINED_BOOLEAN;
-@@ -411,8 +484,9 @@ int ringidGetRootRingId( ChipId_t    i_chipId,
-     int rc = INFRASTRUCT_RC_SUCCESS;
-     RingProperties_t* ringProps = NULL;
-     RingId_t          numRingIds = UNDEFINED_RING_ID;
--    RingId_t          iRingId = UNDEFINED_RING_ID; // ringId loop counter
--    RingId_t          l_ringId = UNDEFINED_RING_ID;
-+    RingId_t          iRpIndex = UNDEFINED_RING_ID; // Ring properties index counter
-+    RingId_t          rpIndexTmp = UNDEFINED_RING_ID; // Temporary RP index for bFound=true
-+    RingId_t          l_ringId = UNDEFINED_RING_ID; // Local ringId, eventual output ringId
-     bool              bFound = false;
- 
-     switch (i_chipId)
-@@ -435,25 +509,26 @@ int ringidGetRootRingId( ChipId_t    i_chipId,
- 
-     if (!rc)
-     {
--        for ( iRingId = 0; iRingId < numRingIds; iRingId++ )
-+        for ( iRpIndex = 0; iRpIndex < numRingIds; iRpIndex++ )
-         {
--            if ( ringProps[iRingId].scanScomAddr == i_scanScomAddr )
-+            if ( ringProps[iRpIndex].scanScomAddr == i_scanScomAddr )
-             {
--                if ( ringProps[iRingId].ringClass & RMRK_ROOT )
-+                if ( ringProps[iRpIndex].ringClass & RMRK_ROOT )
-                 {
-                     if (bFound)
-                     {
-                         MY_ERR("ringidGetRootRingId(): Two rings w/same addr cannot both be"
-                                " ROOT_RING.  Fix RING_PROPERTIES list for chipId=%d at"
-                                " ringId=0x%x and ringId=0x%x\n",
--                               i_chipId, l_ringId, iRingId);
--                        rc = INFRASTRUCT_RC_CODE_BUG;
-+                               i_chipId, rpIndexTmp, iRpIndex);
-                         l_ringId = UNDEFINED_RING_ID;
-+                        rc = INFRASTRUCT_RC_CODE_BUG;
-                         break;
-                     }
-                     else
-                     {
--                        l_ringId = iRingId;
-+                        rpIndexTmp = iRpIndex;
-+                        l_ringId = ringProps[iRpIndex].ringId;
-                         bFound = true;
- 
-                         if (!i_bTest)
-@@ -473,145 +548,6 @@ int ringidGetRootRingId( ChipId_t    i_chipId,
-     {
-         // This is not a bug, but do tell caller that scanScomAddr wasn't found.
-         rc = TOR_SCOM_ADDR_NOT_FOUND;
--
--        if (l_ringId != UNDEFINED_RING_ID)
--        {
--            MY_ERR("ringidGetRootRingId(): Did not find match for scanScomAddr=0x%08x for"
--                   " chipId=%d.  However, l_ringId=0x%x cannot be different from"
--                   " UNDEFINED_RING_ID=0x%x.  Fix code!\n",
--                   i_scanScomAddr, i_chipId, l_ringId, UNDEFINED_RING_ID);
--            rc = INFRASTRUCT_RC_CODE_BUG;
--        }
--    }
--
--    o_ringId = l_ringId;
--
--    return rc;
--}
--
--
--int ringidGetRingId2( ChipId_t       i_chipId,
--                      uint32_t       i_torMagic,
--                      ChipletType_t  i_chipletType, // Ignored if only one chiplet in torMagic
--                      uint8_t        i_idxRing,     // The effective ring index within chiplet's
--                      // common or instance ring section
--                      MyBool_t       i_bInstCase,
--                      RingId_t&      o_ringId,
--                      bool           i_bTest )
--{
--    int rc = INFRASTRUCT_RC_SUCCESS;
--    ChipletType_t     l_chipletType = UNDEFINED_CHIPLET_TYPE;
--    RingProperties_t* ringProps = NULL;
--    RingId_t          numRingIds = UNDEFINED_RING_ID;
--    RingId_t          iRingId = UNDEFINED_RING_ID; // ringId loop counter
--    RingId_t          l_ringId = UNDEFINED_RING_ID;
--    uint8_t           l_idxRing = UNDEFINED_RING_INDEX;
--    bool              bFound = false;
--    bool              bOverlap = false;
--
--    // First, select the main ring list we need. And while we're at it,
--    // convert input chipletType, which can be ignored for ring sections (i.e. torMagic)
--    // with only one chiplet, to a valid chipletType
--    switch (i_chipId)
--    {
--        case CID_P10:
--            ringProps = (RingProperties_t*)&P10_RID::RING_PROPERTIES;
--            numRingIds = P10_RID::NUM_RING_IDS;
--
--            if ( i_torMagic == TOR_MAGIC_SBE  ||
--                 i_torMagic == TOR_MAGIC_OVRD ||
--                 i_torMagic == TOR_MAGIC_OVLY ||
--                 i_torMagic == TOR_MAGIC_DYN )
--            {
--                l_chipletType = i_chipletType;
--            }
--            else if ( i_torMagic == TOR_MAGIC_QME )
--            {
--                l_chipletType = P10_RID::EQ_TYPE;
--            }
--            else
--            {
--                MY_ERR("Invalid torMagic(=0x%08x) for chipId=CID_P10x=%d\n", i_torMagic, i_chipId);
--                return TOR_INVALID_MAGIC_NUMBER;
--            }
--
--            break;
--
--        default:
--            MY_ERR("ringidGetRingId2(): Unsupported chipId (=%d) supplied\n", i_chipId);
--            rc = TOR_INVALID_CHIP_ID;
--            break;
--    }
--
--    // Second, convert effective input ring index (which has no instance marker) to the
--    // common/instance specific index
--    l_idxRing = i_bInstCase ?
--                i_idxRing | INSTANCE_RING_MARK :
--                i_idxRing;
--
--    if (!rc)
--    {
--        for ( iRingId = 0; iRingId < numRingIds; iRingId++ )
--        {
--            if ( ringProps[iRingId].chipletType == l_chipletType &&
--                 ringProps[iRingId].idxRing == l_idxRing )
--            {
--                if (bFound)
--                {
--                    // Allow ring index overlap between a root and a non-root ring
--                    // and let the non-root (i.e., the bucket ring) "win"
--                    if ( !bOverlap &&
--                         ( (ringProps[iRingId].ringClass & RMRK_ROOT) !=
--                           (ringProps[l_ringId].ringClass & RMRK_ROOT) ) )
--                    {
--                        if ( !(ringProps[iRingId].ringClass & RMRK_ROOT) )
--                        {
--                            l_ringId = iRingId;
--                        }
--                        else
--                        {
--                            // Keep l_ringId as is since it must already be the non-root ring
--                        }
--
--                        bOverlap = true; // Indicate we found an overlap match
--
--                        if (!i_bTest)
--                        {
--                            // Stop testing and break our of ringId loop
--                            break;
--                        }
--                    }
--                    else
--                    {
--                        MY_ERR("ringidGetRingId2(): Two root, or two non-root, rings within a"
--                               " chiplet (chipletType=%d) cannot have the same ring index"
--                               " (idxRing=%d, bInst=%d). Fix RING_PROPERTIES list for chipId=%d"
--                               " at ringId=0x%x and ringId=0x%x\n",
--                               l_chipletType, i_idxRing, i_bInstCase, i_chipId, l_ringId, iRingId);
--                        rc = INFRASTRUCT_RC_CODE_BUG;
--                        l_ringId = UNDEFINED_RING_ID;
--                        break;
--                    }
--                }
--                else
--                {
--                    l_ringId = iRingId;
--                    bFound = true; // Indicate we found a first match
--
--                    // Continue searching for ring index overlap due to bucket ring or code bug
--                }
--            }
--        }
--    }
--
--    if (!rc && !bFound)
--    {
--        MY_ERR("ringidGetRingId2(): Could not find a match for (chipId,chipletType,idxRing,bInst) ="
--               " (%d, %d, %d, %d).  Fix RING_PROPERTIES list for chipId=%d (Note, l_ringId=0x%x"
--               " better be equal to UNDEFINED_RING_ID=0x%x)\n",
--               i_chipId, l_chipletType, i_idxRing, i_bInstCase,
--               i_chipId, l_ringId, UNDEFINED_RING_ID);
--        rc = INFRASTRUCT_RC_CODE_BUG;
-     }
- 
-     o_ringId = l_ringId;
-@@ -643,16 +579,20 @@ std::map <std::string, ChipId_t> chipTypeToIdMap
-     { "explorer", (ChipId_t)CID_EXPLORER }
- };
- 
-+
-+//
-+// Get ringId from ringName
-+//
- int ringidGetRingId1( ChipId_t     i_chipId,
-                       std::string  i_ringName,
-                       RingId_t&    o_ringId,
-                       bool         i_bTest )
- {
--    int rc = INFRASTRUCT_RC_SUCCESS;
-+    int rc = TOR_SUCCESS;
-     RingProperties_t* ringProps = NULL;
-     RingId_t          numRingIds = UNDEFINED_RING_ID;
--    RingId_t          iRingId = UNDEFINED_RING_ID; // ringId loop counter
--    RingId_t          l_ringId = UNDEFINED_RING_ID;
-+    RingId_t          iRpIndex = UNDEFINED_RING_ID; // Ring properties index counter
-+    RingId_t          rpIndex = UNDEFINED_RING_ID; // The matching RP index
-     bool              bFound = false;
- 
-     switch (i_chipId)
-@@ -668,24 +608,30 @@ int ringidGetRingId1( ChipId_t     i_chipId,
-             break;
-     }
- 
--    if (!rc)
-+    if (rc)
-+    {
-+        return rc;
-+    }
-+    else
-     {
--        for ( iRingId = 0; iRingId < numRingIds; iRingId++ )
-+        // Search through RING_PROPERTIES for ringName match
-+        for ( iRpIndex = 0; iRpIndex < numRingIds; iRpIndex++ )
-         {
--            if ( !(i_ringName.compare(ringProps[iRingId].ringName)) )
-+            if ( !(i_ringName.compare(ringProps[iRpIndex].ringName)) )
-             {
-                 if (bFound)
-                 {
--                    MY_ERR("ringidGetRingId1(): Two rings cannot have the same ringName=%s.  Fix"
--                           " RING_PROPERTIES list for chipId=%d at ringId=0x%x and ringId=0x%x\n",
--                           i_ringName.c_str(), i_chipId, l_ringId, iRingId);
--                    rc = INFRASTRUCT_RC_CODE_BUG;
--                    l_ringId = UNDEFINED_RING_ID;
-+                    MY_ERR("ringidGetRingId1(): Two rings cannot have the same ringName=%s. Fix"
-+                           " RING_PROPERTIES list for chipId=%d at rpIndex=0x%x and"
-+                           " rpIndex=0x%x\n",
-+                           i_ringName.c_str(), i_chipId, rpIndex, iRpIndex);
-+                    rpIndex = UNDEFINED_RING_ID;
-+                    rc = TOR_CODE_BUG;
-                     break;
-                 }
-                 else
-                 {
--                    l_ringId = iRingId;
-+                    rpIndex = iRpIndex;
-                     bFound = true;
- 
-                     if (!i_bTest)
-@@ -700,39 +646,62 @@ int ringidGetRingId1( ChipId_t     i_chipId,
-         }
-     }
- 
--    if (!rc && !bFound)
-+    if (rc)
-+    {
-+        return rc;
-+    }
-+    else if (bFound)
-+    {
-+        o_ringId = ringProps[rpIndex].ringId;
-+        rc = TOR_SUCCESS;
-+    }
-+    else
-     {
--        MY_DBG("ringidGetRingId1(): Did not find match to ringName=%s for chipId=%d."
--               " (Note, l_ringId=0x%x better be equal to UNDEFINED_RING_ID=0x%x)\n",
--               i_ringName.c_str(), i_chipId, l_ringId, UNDEFINED_RING_ID);
-+        MY_DBG("ringidGetRingId1(): Did not find match to ringName=%s for chipId=%u"
-+               " (Note, rpIndex=0x%x better be equal to UNDEFINED_RING_ID=0x%x)\n",
-+               i_ringName.c_str(), i_chipId, rpIndex, UNDEFINED_RING_ID);
-+        o_ringId = UNDEFINED_RING_ID;
-         rc = TOR_RING_NAME_NOT_FOUND;
-     }
- 
--    o_ringId = l_ringId;
--
-     return rc;
- }
- 
- 
-+//
-+// Get ringName from ringId
-+//
- int ringidGetRingName( ChipId_t     i_chipId,
-                        RingId_t     i_ringId,
-                        std::string& o_ringName )
- {
-     int rc = INFRASTRUCT_RC_SUCCESS;
-+    RingProperties_t* ringProps = (RingProperties_t*)&P10_RID::RING_PROPERTIES;
-     std::string l_ringName;
- 
-+    // Get the ring properties (rp) index
-+    RingId_t rpIndex = P10_RID::ringid_convert_ringId_to_rpIndex(i_ringId);
-+
-     switch (i_chipId)
-     {
-         case CID_P10:
--            if (i_ringId >= P10_RID::NUM_RING_IDS)
-+            if (rpIndex >= P10_RID::NUM_RING_IDS)
-             {
--                MY_ERR("ringidGetRingName(): ringId(=0x%x) >= NUM_RING_IDS(=0x%x) not allowed\n",
--                       i_ringId, P10_RID::NUM_RING_IDS);
-+                MY_ERR("ringidGetRingName(): rpIndex(=0x%x) >= NUM_RING_IDS(=0x%x) not allowed"
-+                       " and ringId=0x%x\n",
-+                       rpIndex, P10_RID::NUM_RING_IDS, i_ringId);
-                 rc = TOR_INVALID_RING_ID;
-                 break;
-             }
- 
--            l_ringName = (std::string)P10_RID::RING_PROPERTIES[i_ringId].ringName;
-+            l_ringName = (std::string)ringProps[rpIndex].ringName;
-+
-+            if (ringProps[rpIndex].ringId == HOLE_RING_ID)
-+            {
-+                rc = TOR_HOLE_RING_ID;
-+                break;
-+            }
-+
-             break;
- 
-         default:
-diff --git a/src/import/chips/common/utils/imageProcs/common_ringId.H b/src/import/chips/common/utils/imageProcs/common_ringId.H
-index 925c321..c2d0e59 100644
---- a/src/import/chips/common/utils/imageProcs/common_ringId.H
-+++ b/src/import/chips/common/utils/imageProcs/common_ringId.H
-@@ -52,6 +52,7 @@ typedef uint16_t  TorOffset_t;      // Type for offset value to various TOR obje
- typedef uint8_t   MyBool_t;         // false:0, true:1, undefined:UNDEFINED_BOOLEAN
- 
- #define  UNDEFINED_RING_ID         (RingId_t)0xffff
-+#define  HOLE_RING_ID              (RingId_t)0xeeee
- #define  UNDEFINED_SCOM_ADDR       (uint32_t)0xffffffff
- #define  UNDEFINED_RING_CLASS      (RingClass_t)0xffff
- #define  UNDEFINED_CHIPLET_TYPE    (ChipletType_t)0xff
-@@ -222,11 +223,12 @@ enum RingMarker
-     RMRK_TIME        = (RingClass_t)0b0000000000010000, // Time ring marker bit
-     RMRK_MVPD_PDG    = (RingClass_t)0b0000000010000000, // MVPD #G gptr/time ring marker bit
-     RMRK_MVPD_PDP    = (RingClass_t)0b0000000100000000, // MVPD #P pll ring marker bit
--    RMRK_MVPD_PDR    = (RingClass_t)0b0000001000000000, // MVPD #G repr ring marker bit
--    RMRK_MVPD_NEST   = (RingClass_t)0b0000010000000000, // NEST (non-EQ) ring marker bit
--    RMRK_MVPD_EQ     = (RingClass_t)0b0000100000000000, // EQ (non-core) ring marker bit
--    RMRK_MVPD_CORE   = (RingClass_t)0b0001000000000000, // Core ring marker bit
--    RMRK_SCAN_BY_QME = (RingClass_t)0b0010000000000000, // QME scannable ring marker bit
-+    RMRK_MVPD_PDR    = (RingClass_t)0b0000001000000000, // MVPD #R repr ring marker bit
-+    RMRK_MVPD_PDS    = (RingClass_t)0b0000010000000000, // MVPD #S dts ring marker bit
-+    RMRK_MVPD_NEST   = (RingClass_t)0b0000100000000000, // NEST (non-EQ) ring marker bit
-+    RMRK_MVPD_EQ     = (RingClass_t)0b0001000000000000, // EQ (non-core) ring marker bit
-+    RMRK_MVPD_CORE   = (RingClass_t)0b0010000000000000, // Core ring marker bit
-+    RMRK_SCAN_BY_QME = (RingClass_t)0b0100000000000000, // QME scannable ring marker bit
- };
- 
- //
-@@ -245,6 +247,9 @@ enum RingMarker
- #define RCLS_MVPD_PDR_NEST      (RMRK_MVPD_PDR | RMRK_MVPD_NEST)
- #define RCLS_MVPD_PDR_EQ        (RMRK_MVPD_PDR | RMRK_MVPD_EQ)
- #define RCLS_MVPD_PDR_CORE      (RMRK_MVPD_PDR | RMRK_MVPD_CORE)
-+#define RCLS_MVPD_PDS_NEST      (RMRK_MVPD_PDS | RMRK_MVPD_NEST)
-+#define RCLS_MVPD_PDS_EQ        (RMRK_MVPD_PDS | RMRK_MVPD_EQ)
-+#define RCLS_MVPD_PDS_CORE      (RMRK_MVPD_PDS | RMRK_MVPD_CORE)
- // MVPD keyword mask
- #define RCLS_MVPD_MASK          (RMRK_MVPD_PDG | RMRK_MVPD_PDP | RMRK_MVPD_PDR)
- 
-@@ -273,6 +278,7 @@ enum RingRequest
- typedef struct
- {
- #ifndef __PPE__
-+    RingId_t      ringId;
-     char          ringName[MAX_RING_NAME_LENGTH];
-     uint32_t      scanScomAddr;
- #endif
-@@ -323,7 +329,7 @@ typedef struct
- #define TOR_INVALID_MAGIC_NUMBER              INFRASTRUCT_NOOF_RCS + 2
- #define TOR_INVALID_CHIP_ID                   INFRASTRUCT_NOOF_RCS + 3
- #define TOR_INVALID_CHIPLET_TYPE              INFRASTRUCT_NOOF_RCS + 4
--#define TOR_INVALID_RING_ID                   INFRASTRUCT_NOOF_RCS + 5
-+#define TOR_INVALID_RING_ID                   INFRASTRUCT_NOOF_RCS + 5  // ringId falls outside Mvpd and Ekb range
- #define TOR_INVALID_CHIPLET_ID                INFRASTRUCT_NOOF_RCS + 6
- #define TOR_INVALID_RING_REQUEST              INFRASTRUCT_NOOF_RCS + 7
- #define TOR_UNSUPPORTED_RING_SECTION          INFRASTRUCT_NOOF_RCS + 8
-@@ -341,7 +347,7 @@ typedef struct
- #define TOR_RING_NAME_NOT_FOUND               INFRASTRUCT_NOOF_RCS + 20
- #define TOR_NO_RINGS_FOR_CHIP                 INFRASTRUCT_NOOF_RCS + 21
- #define TOR_DYN_RING_NOT_FOUND                INFRASTRUCT_NOOF_RCS + 22
--#define TOR_HOLE_RING_ID                      INFRASTRUCT_NOOF_RCS + 23
-+#define TOR_HOLE_RING_ID                      INFRASTRUCT_NOOF_RCS + 23 // ringId is a "hole" ring
- 
- // This function returns the main ring properties list associated w/the chip ID.
- int ringid_get_ringProps( ChipId_t           i_chipId,
-@@ -388,6 +394,9 @@ MyBool_t ringid_is_mvpd_ring( ChipId_t  i_chipId,
- MyBool_t ringid_is_gptr_ring( ChipId_t  i_chipId,
-                               RingId_t  i_ringId );
- 
-+// Check if ring is a Common or Instance ring
-+MyBool_t ringid_is_instance_ring( RingId_t  i_rpIndex);
-+
- // Check if ring has derivative, eg if it has bucket rings. Note that the actual
- // derivative ring itself, eg the *_bucket_n ring, will *not* be marked as derivative.
- // Only the "root ring", eg that does *not* have the *_bucket_n suffix, will be marked.
-@@ -425,17 +434,6 @@ int ringidGetRootRingId( ChipId_t   i_chipId,
-                          RingId_t&  o_ringId,
-                          bool       i_bTest = false );
- 
--// This function returns the ringId associated with the effective ring index within a chiplet.
--// (Note that "effective" means the index is void of the instance marker bit.)
--int ringidGetRingId2( ChipId_t       i_chipId,
--                      uint32_t       i_torMagic,
--                      ChipletType_t  i_chipletType, // Ignored if only one chiplet in torMagic
--                      uint8_t        i_idxRing,     // The eEffective ring index within chiplet's
--                      // common or instance ring section
--                      MyBool_t       i_bInstCase,   // =0 common ring, =1 instance ring
--                      RingId_t&      o_ringId,
--                      bool           i_bTest = false );
--
- // This fumction returns the ringClass associated with the ringId.
- int ringidGetRingClass( ChipId_t      i_chipId,
-                         RingId_t      i_ringId,
-diff --git a/src/import/chips/p10/procedures/hwp/accessors/p10_get_mvpd_ring.C b/src/import/chips/p10/procedures/hwp/accessors/p10_get_mvpd_ring.C
-index d439f9c..353fcf6 100644
---- a/src/import/chips/p10/procedures/hwp/accessors/p10_get_mvpd_ring.C
-+++ b/src/import/chips/p10/procedures/hwp/accessors/p10_get_mvpd_ring.C
-@@ -5,7 +5,7 @@
- /*                                                                        */
- /* OpenPOWER HostBoot Project                                             */
- /*                                                                        */
--/* Contributors Listed Below - COPYRIGHT 2012,2019                        */
-+/* Contributors Listed Below - COPYRIGHT 2012,2020                        */
- /* [+] International Business Machines Corp.                              */
- /*                                                                        */
- /*                                                                        */
-@@ -60,7 +60,7 @@ extern "C"
-     {
-         fapi2::ReturnCode        l_fapirc;
- 
--        FAPI_DBG("getMvpdRing: Called w/ringId=0x%x, chipletSel=0x%8x, size=0x%x",
-+        FAPI_DBG("getMvpdRing: Called w/ringId=0x%x, chipletSel=0x%08x and bufsize=0x%x",
-                  i_ringId,
-                  i_chipletSel,
-                  io_rRingBufsize  );
-@@ -76,7 +76,7 @@ extern "C"
-                                  io_rRingBufsize );
- 
- 
--        FAPI_DBG("getMvpdRing: exit rc=0x%x",
-+        FAPI_DBG("getMvpdRing: Exit w/rc=0x%08x",
-                  static_cast<uint32_t>(l_fapirc) );
- 
-         return  l_fapirc;
-diff --git a/src/import/chips/p10/procedures/hwp/accessors/p10_mvpd_ring_funcs.C b/src/import/chips/p10/procedures/hwp/accessors/p10_mvpd_ring_funcs.C
-index be8b6ea..da74045 100644
---- a/src/import/chips/p10/procedures/hwp/accessors/p10_mvpd_ring_funcs.C
-+++ b/src/import/chips/p10/procedures/hwp/accessors/p10_mvpd_ring_funcs.C
-@@ -483,12 +483,10 @@ extern "C"
-                 // found it, return pointer to ring
-                 *o_pScanData = l_pScanData;
- 
--                FAPI_DBG("mvpdRingFuncFindHdr: found RS4 ring for "
--                         "chipletSel 0x%08x and ringId %d "
--                         "at address 0x%x and with size %d",
-+                FAPI_DBG("mvpdRingFuncFindHdr: Found RS4 ring for chipletSel=0x%08x and"
-+                         " ringId=0x%x and ring size=%u",
-                          i_chipletSel,
-                          i_ringId,
--                         *o_pScanData,
-                          be16toh((*o_pScanData)->iv_size));
-             }
-         }
-@@ -552,20 +550,19 @@ extern "C"
-         uint32_t            l_prevLen;
-         uint32_t            l_recordBufLenLeft = i_recordBufLen;
- 
--        FAPI_DBG("mvpdRingFuncFind: Called w/chipletSel=0x%08x, ringId=0x%x ",
-+        FAPI_IMP("mvpdRingFuncFind: Enter w/chipletSel=0x%08x and ringId=0x%x ",
-                  i_chipletSel,
-                  i_ringId);
- 
--        //  Find first RSA data block in ring (fixed offset defined by
--        //      MVPD spec)
-+        //  Find first RSA data block in ring (fixed offset defined by MVPD spec)
-         //
--        //  First byte in record should be the version number, skip
--        //      over this.
-+        //  First byte in record's keyword is the version number which we skip
-         //
--        FAPI_DBG( "mvpdRingFuncFind: record version = 0x%x", *i_pRecordBuf );
-         i_pRecordBuf++;
-         l_recordBufLenLeft--;
- 
-+        o_rRingLen = 0; // Just making sure this is zero in case of a fail or not found
-+
-         do
-         {
-             // let's track the previous size of the remaining buffer,
-@@ -610,12 +607,6 @@ extern "C"
-         {
-             o_rpRing   = (uint8_t*)l_pScanData;
-             o_rRingLen = be16toh(l_pScanData->iv_size);
--
--            // Dump record info for debug
--            FAPI_DBG("mvpdRingFuncFind:ringId=0x%x chipletSel=0x%08x size=0x%x",
--                     i_ringId,
--                     i_chipletSel,
--                     be16toh(l_pScanData->iv_size));
-         }
-         else
-         {
-@@ -629,13 +620,12 @@ extern "C"
-         // get current error
-         l_fapirc = fapi2::current_err;
- 
--        FAPI_DBG("mvpdRingFuncFind: exit *ring= 0x%p", o_rpRing);
--        FAPI_IMP("mvpdRingFuncFind: exit chipletSel=0x%08x, ringId=0x%x size=0x%x"
--                 " rc=0x%x",
-+        FAPI_IMP("mvpdRingFuncFind: Exit w/rc=0x%08x for chipletSel=0x%08x, ringId=0x%x and"
-+                 " ring size=%u (if size==0, then something failed)",
-+                 static_cast<uint32_t>(l_fapirc),
-                  i_chipletSel,
-                  i_ringId,
--                 o_rRingLen,
--                 static_cast<uint32_t>(l_fapirc) );
-+                 o_rRingLen);
- 
-         return  l_fapirc;
-     }
-@@ -717,7 +707,7 @@ extern "C"
-                      "Test0x80: iv_ringId=0x%x    vs  i_ringId=0x%x \n"
-                      "Test0x80: iv_scanAddr=0x%x  vs  i_chipletSel=0x%08x \n"
-                      "Test0x80: iv_size=0x%x      vs  i_ringBufsize=0x%x  vs  sizeof(CompressedScanData)=0x%x \n"
--                     "Fail test vector: 0x0x%02x",
-+                     "Fail test vector: 0x%02x",
-                      be16toh(i_pRingBuf->iv_magic), RS4_MAGIC,
-                      be16toh(i_pRingBuf->iv_ringId), i_ringId,
-                      be32toh(i_pRingBuf->iv_scanAddr), i_chipletSel,
-@@ -779,7 +769,7 @@ extern "C"
-             }
- 
-             //  we're good, copy data into the passed-in buffer
--            FAPI_DBG( "mvpdRingFuncGet: memcpy 0x%p 0x%p 0x%x",
-+            FAPI_DBG( "mvpdRingFuncGet: memcpy(0x%p,0x%p,%u)",
-                       i_pCallerRingBuf,
-                       i_pRing,
-                       i_ringLen );
-@@ -824,9 +814,9 @@ extern "C"
-             io_rCallerRingBufLen = i_ringLen;
-         }
- 
--        FAPI_DBG( "mvpdRingFuncGet: exit bufsize= 0x%x rc= 0x%x",
--                  io_rCallerRingBufLen,
--                  static_cast<uint32_t>(l_fapirc) );
-+        FAPI_DBG( "mvpdRingFuncGet: Exit w/rc=0x%08x and w/bufsize=0x%x",
-+                  static_cast<uint32_t>(l_fapirc),
-+                  io_rCallerRingBufLen );
- 
-         return l_fapirc;
-     }
-diff --git a/src/import/chips/p10/procedures/hwp/customize/p10_ipl_customize.C b/src/import/chips/p10/procedures/hwp/customize/p10_ipl_customize.C
-index f5f743b..eeb380b 100644
---- a/src/import/chips/p10/procedures/hwp/customize/p10_ipl_customize.C
-+++ b/src/import/chips/p10/procedures/hwp/customize/p10_ipl_customize.C
-@@ -44,7 +44,7 @@
- 
- #include <p10_ipl_customize.H>
- #include <p10_ipl_image.H>
--#include <p10_ring_id.H>
-+#include <p10_ringId.H>
- #include <p10_tor.H>
- #include <p10_scan_compression.H>
- #include <p10_infrastruct_help.H>
-@@ -187,7 +187,7 @@ fapi2::ReturnCode writePG(
-                      set_CHIP_UNIT_POS(l_unit_id).
-                      set_PG_INDEX(l_pg_idx).
-                      set_IMG_PG_ENTRIES(IMG_PG_ENTRIES),
--                     "Code bug: Invalid translation from PERV chip unit position"
-+                     "CODE BUG: Invalid translation from PERV chip unit position"
-                      " to image PG index: l_pg_idx=%d, IMG_PG_ENTRIES=%d",
-                      l_pg_idx, IMG_PG_ENTRIES );
- 
-@@ -321,7 +321,7 @@ fapi_try_exit:
- // void*    io_rs4Ring:      Contains target RS4 ring on input and final overlaid RS4 ring on output
- // void*    io_workBuf:      Work buffer (has final overlaid raw ring on output)
- // void*    i_ovlyRawRing:   Raw data+care overlay ring
--// uint32_t i_ovlyRawSize:   Overlay raw ring size
-+// uint32_t i_ovlyRawLength: Overlay raw ring bit length
- // CompressedScanData* i_rs4RefHdr:  Reference ring to get header data from (assumed volatile)
- // uint8_t  i_rs4TypeField:  iv_type to be used for final RS4 ring
- //
-@@ -339,7 +339,7 @@ fapi2::ReturnCode apply_overlay_ring(
-     void*    io_rs4Ring,
-     void*    io_workBuf,
-     void*    i_ovlyRawRing,
--    uint32_t i_ovlyRawSize,
-+    uint32_t i_ovlyRawLength,
-     CompressedScanData*  i_rs4RefHeader,
-     uint8_t  i_rs4TypeField)
- {
-@@ -351,11 +351,9 @@ fapi2::ReturnCode apply_overlay_ring(
-     // Pt to our Target/Final raw work buffers
-     uint8_t* dataTgt = (uint8_t*)io_workBuf;
-     uint8_t* careTgt = (uint8_t*)io_workBuf + MAX_RING_BUF_SIZE / 2;
--    uint32_t tgtRawSize = 0;
-+    uint32_t tgtRawLength = 0;
-     MyBool_t bOvrd = UNDEFINED_BOOLEAN;
- 
--    FAPI_DBG("Entering apply_overlay_ring");
--
-     // Copy the key RS4 ref header settings into local struct before we, possibly,
-     // contaminate i_rs4RefHeader as this may be pointing to one of our work
-     // buffers.
-@@ -365,12 +363,15 @@ fapi2::ReturnCode apply_overlay_ring(
-     l_rs4RefHeader.iv_ringId = be16toh(i_rs4RefHeader->iv_ringId);
-     l_rs4RefHeader.iv_scanAddr = be32toh(i_rs4RefHeader->iv_scanAddr);
- 
-+    FAPI_DBG("Entering apply_overlay_ring w/ringId=0x%0x and rawLength=%u",
-+             l_rs4RefHeader.iv_ringId, i_ovlyRawLength);
-+
-     // Decompress the ring to apply overlay onto, io_rs4Ring.
-     l_rc = _rs4_decompress(
-                dataTgt,
-                careTgt,
-                MAX_RING_BUF_SIZE / 2, // Max allowable raw ring size (in bytes)
--               &tgtRawSize,         // Actual raw ring size (in bits) on return.
-+               &tgtRawLength,         // Actual raw ring size (in bits) on return.
-                (CompressedScanData*)io_rs4Ring );
- 
-     FAPI_ASSERT( l_rc == INFRASTRUCT_RC_SUCCESS,
-@@ -385,13 +386,13 @@ fapi2::ReturnCode apply_overlay_ring(
-                  l_rc, l_rs4RefHeader.iv_ringId, MAX_RING_BUF_SIZE );
- 
-     // Compare raw Target and Overlay raw ring lengths
--    FAPI_ASSERT( i_ovlyRawSize == tgtRawSize,
-+    FAPI_ASSERT( i_ovlyRawLength == tgtRawLength,
-                  fapi2::XIPC_TARGET_OVLY_RAW_RING_LENGTH_MISMATCH().
-                  set_CHIP_TARGET(i_procTarget).
--                 set_TARGET_RAW_RING_LENGTH(tgtRawSize).
--                 set_OVLY_RAW_RING_LENGTH(i_ovlyRawSize),
-+                 set_TARGET_RAW_RING_LENGTH(tgtRawLength).
-+                 set_OVLY_RAW_RING_LENGTH(i_ovlyRawLength),
-                  "ERROR: Target ring raw length(=%u) and overlay ring raw length(=%u) don't match.",
--                 tgtRawSize, i_ovlyRawSize);
-+                 tgtRawLength, i_ovlyRawLength);
- 
-     // Check ring's iv_type is either override or flush
-     bOvrd = rs4_is_ovrd(&l_rs4RefHeader);
-@@ -413,7 +414,7 @@ fapi2::ReturnCode apply_overlay_ring(
-     //
-     uint32_t i, j;
- 
--    for (i = 0; i < tgtRawSize / 8; i++)
-+    for (i = 0; i < tgtRawLength / 8; i++)
-     {
-         if (careOvly[i] > 0)
-         {
-@@ -445,15 +446,15 @@ fapi2::ReturnCode apply_overlay_ring(
-     }
- 
-     // Processing remainder of data & care bits (mod 8)
--    if (tgtRawSize % 8)
-+    if (tgtRawLength % 8)
-     {
--        i = tgtRawSize / 8;
-+        i = tgtRawLength / 8;
- 
--        careOvly[i] &= ~(0xFF << (8 - (tgtRawSize % 8)));
-+        careOvly[i] &= ~(0xFF << (8 - (tgtRawLength % 8)));
- 
-         if (careOvly[i] > 0)
-         {
--            for (j = 0; j < tgtRawSize % 8; j++)
-+            for (j = 0; j < tgtRawLength % 8; j++)
-             {
-                 if (careOvly[i] & (0x80 >> j))
-                 {
-@@ -486,7 +487,7 @@ fapi2::ReturnCode apply_overlay_ring(
-                MAX_RING_BUF_SIZE,
-                dataTgt,
-                careTgt,
--               tgtRawSize,
-+               tgtRawLength,
-                l_rs4RefHeader.iv_scanAddr,
-                l_rs4RefHeader.iv_ringId,
-                UNDEFINED_RS4_SELECTOR,
-@@ -1103,33 +1104,49 @@ fapi2::ReturnCode _fetch_and_insert_vpd_rings(
-     Rs4Selector_t   i_numberOfFeatures,
-     void*           i_dynamicRingSection )
- {
--    ReturnCode l_fapiRc = fapi2::FAPI2_RC_SUCCESS;
-+    ReturnCode   l_fapiRc = fapi2::FAPI2_RC_SUCCESS;
-     fapi2::current_err  = fapi2::FAPI2_RC_SUCCESS;
--    int        l_rc = INFRASTRUCT_RC_SUCCESS;;
--
--    FAPI_DBG("_fetch_and_insert_vpd_ring: (ringId,chipletSel) = (0x%x,0x%08x)",
--             i_ringId, i_chipletSel);
-+    int          l_rc = INFRASTRUCT_RC_SUCCESS;;
-+    RingId_t     rpIndex = UNDEFINED_RING_ID;
-+    RingClass_t  ringClass = UNDEFINED_RING_CLASS;
-+    TorHeader_t* torHeader = (TorHeader_t*)i_ringSection;
- 
-     void*        vpdRing = NULL;
-     uint32_t     vpdRingSize = 0;
-     void*        finalVpdRing = NULL;
--    MvpdKeyword  l_mvpdKeyword;
--    uint8_t      l_chipletId = (uint8_t)(i_chipletSel >> 24);
-+    MvpdKeyword  mvpdKeyword;
-+    uint8_t      chipletId = (uint8_t)(i_chipletSel >> 24);
-+
-+    FAPI_DBG("_fetch_and_insert_vpd_ring: (ringId,chipletSel) = (0x%x,0x%08x)",
-+             i_ringId, i_chipletSel);
-+
-+    // Check the ringId validity, then get the ring properties (rp) index
-+    l_rc = ringid_check_ringId( torHeader->chipId, i_ringId);
-+
-+    FAPI_ASSERT( l_rc == TOR_SUCCESS,
-+                 fapi2::XIPC_CODE_BUG().
-+                 set_CHIP_TARGET(i_procTarget).
-+                 set_OCCURRENCE(3),
-+                 "CODE BUG(3): ringid_check_ringId() failed w/rc=0x%08x. Calling code must make"
-+                 " sure it passes valid ringId(=0x%x) to _fetch(). Fix calling code.\n",
-+                 l_rc, i_ringId);
- 
--    RingClass_t l_ringClass = i_ringProps[i_ringId].ringClass;
-+    rpIndex = ringid_convert_ringId_to_rpIndex( i_ringId);
- 
--    switch (l_ringClass & RCLS_MVPD_MASK)
-+    ringClass = i_ringProps[rpIndex].ringClass;
-+
-+    switch (ringClass & RCLS_MVPD_MASK)
-     {
-         case RMRK_MVPD_PDG: // #G Time rings
--            l_mvpdKeyword = fapi2::MVPD_KEYWORD_PDG;
-+            mvpdKeyword = fapi2::MVPD_KEYWORD_PDG;
-             break;
- 
-         case RMRK_MVPD_PDP: // #P Pll rings
--            l_mvpdKeyword = fapi2::MVPD_KEYWORD_PDP;
-+            mvpdKeyword = fapi2::MVPD_KEYWORD_PDP;
-             break;
- 
-         case RMRK_MVPD_PDR: // #R Repair rings
--            l_mvpdKeyword = fapi2::MVPD_KEYWORD_PDR;
-+            mvpdKeyword = fapi2::MVPD_KEYWORD_PDR;
-             break;
- 
-         default:
-@@ -1137,11 +1154,11 @@ fapi2::ReturnCode _fetch_and_insert_vpd_rings(
-                          fapi2::XIPC_INVALID_MVPD_RINGCLASS().
-                          set_CHIP_TARGET(i_procTarget).
-                          set_RING_ID(i_ringId).
--                         set_RING_CLASS(l_ringClass).
-+                         set_RING_CLASS(ringClass).
-                          set_KWD_MASK(RCLS_MVPD_MASK),
--                         "Code bug: Unsupported value of ringClass (=0x%4x) or keyword"
-+                         "CODE BUG: Unsupported value of ringClass (=0x%4x) or keyword"
-                          " mask (=0x%4x) for ringId=0x%x",
--                         l_ringClass, RCLS_MVPD_MASK, i_ringId );
-+                         ringClass, RCLS_MVPD_MASK, i_ringId );
-             break;
-     }
- 
-@@ -1158,7 +1175,7 @@ fapi2::ReturnCode _fetch_and_insert_vpd_rings(
- 
-     l_fapiRc = getMvpdRing( i_procTarget,
-                             MVPD_RECORD_CP00,
--                            l_mvpdKeyword,
-+                            mvpdKeyword,
-                             i_chipletSel,
-                             i_ringId,
-                             (uint8_t*)vpdRing,
-@@ -1194,7 +1211,7 @@ fapi2::ReturnCode _fetch_and_insert_vpd_rings(
-                      set_CHIPLET_SEL(i_chipletSel).
-                      set_MVPD_CHIPLET_SEL(vpdChipletSel).
-                      set_RING_ID(i_ringId),
--                     "_fetch_and_insert_vpd_ring: Code bug: VPD ring's chipletSel"
-+                     "CODE BUG: _fetch_and_insert_vpd_ring: VPD ring's chipletSel"
-                      " (=0x%08x) doesn't match the requested chipletSel (=0x%08x)",
-                      vpdChipletSel, i_chipletSel );
- 
-@@ -1203,17 +1220,17 @@ fapi2::ReturnCode _fetch_and_insert_vpd_rings(
-                      fapi2::XIPC_MVPD_RING_SIZE_MESS().
-                      set_CHIP_TARGET(i_procTarget).
-                      set_RING_ID(i_ringId).
--                     set_CHIPLET_ID(l_chipletId).
-+                     set_CHIPLET_ID(chipletId).
-                      set_RING_BUFFER_SIZE(i_ringBufSize1).
-                      set_MVPD_RING_SIZE(vpdRingSize),
--                     "_fetch_and_insert_vpd_ring: Code bug: VPD ring size (=0x%X) exceeds"
-+                     "ERROR: _fetch_and_insert_vpd_ring: MVPD ring size (=0x%X) exceeds"
-                      " allowed ring buffer size (=0x%X)",
-                      vpdRingSize, i_ringBufSize1 );
- 
-         // Check for Gptr ring in the .overlays section and if found overlay it onto
-         // the Mvpd-Gptr ring.  Further, check for Gptr rings in the .dynamic section
-         // and if found overlay them onto the previously overlaid Gptr ring.
--        if ( l_ringClass & RMRK_GPTR_OVLY )
-+        if ( ringClass & RMRK_GPTR_OVLY )
-         {
-             FAPI_TRY( process_gptr_rings(
-                           i_procTarget,
-@@ -1270,19 +1287,19 @@ fapi2::ReturnCode _fetch_and_insert_vpd_rings(
-                      set_CHIP_TARGET(i_procTarget).
-                      set_LOCAL_RC(l_rc).
-                      set_RING_ID(i_ringId).
--                     set_CHIPLET_ID(l_chipletId).
-+                     set_CHIPLET_ID(chipletId).
-                      set_REDUNDANT(redundant).
-                      set_OCCURRENCE(1),
-                      "ERROR: rs4_redundant failed w/rc=0x%08x or redundant=%u for"
-                      " ringId=0x%x, chipletId=0x%02x, occurrence=1 ",
--                     l_rc, redundant, i_ringId, l_chipletId );
-+                     l_rc, redundant, i_ringId, chipletId );
- 
-         if (redundant)
-         {
-             io_ringStatusInMvpd = RING_REDUNDANT;
- 
-             FAPI_DBG("Skipping redundant MVPD ring: ringId=0x%x, chipletId=0x%02x ",
--                     i_ringId, l_chipletId);
-+                     i_ringId, chipletId);
-             fapi2::current_err = RC_XIPC_RING_IS_REDUNDANT;
-             goto fapi_try_exit;
-         }
-@@ -1312,7 +1329,7 @@ fapi2::ReturnCode _fetch_and_insert_vpd_rings(
-                          set_SIZE_OF_THIS_RING(vpdRingSize).
-                          set_MAX_RING_SECTION_SIZE(i_maxRingSectionSize).
-                          set_RING_ID(i_ringId).
--                         set_CHIPLET_ID(l_chipletId).
-+                         set_CHIPLET_ID(chipletId).
-                          set_CURRENT_BOOT_CORE_MASK(io_bootCoreMask),
-                          "Ran out of image buffer space trying to append a ring"
-                          " to the .rings section\n"
-@@ -1323,7 +1340,7 @@ fapi2::ReturnCode _fetch_and_insert_vpd_rings(
-                          "maxRingSectionSize: %d\n"
-                          "Current bootCoreMask: 0x%08x",
-                          i_ringId,
--                         l_chipletId,
-+                         chipletId,
-                          vpdRingSize,
-                          io_ringSectionSize,
-                          i_maxRingSectionSize,
-@@ -1335,7 +1352,7 @@ fapi2::ReturnCode _fetch_and_insert_vpd_rings(
-                    i_ringSection,
-                    i_maxRingSectionSize,
-                    i_ringId,
--                   l_chipletId,
-+                   chipletId,
-                    finalVpdRing );
- 
-         FAPI_ASSERT( l_rc == INFRASTRUCT_RC_SUCCESS,
-@@ -1347,11 +1364,11 @@ fapi2::ReturnCode _fetch_and_insert_vpd_rings(
-                      "tor_append_ring() failed in sysPhase=%d w/rc=%d for ringId=0x%x",
-                      i_sysPhase, l_rc, i_ringId );
- 
--        io_ringSectionSize = be32toh(((TorHeader_t*)i_ringSection)->size);
-+        io_ringSectionSize = be32toh(torHeader->size);
- 
-         FAPI_IMP("Successfully appended Mvpd ring w/(ringId,chipletId)=(0x%x,0x%02x) and now"
-                  " ringSectionSize=%u",
--                 i_ringId, l_chipletId, io_ringSectionSize);
-+                 i_ringId, chipletId, io_ringSectionSize);
-     }
-     else if ((uint32_t)l_fapiRc == RC_MVPD_RING_NOT_FOUND)
-     {
-@@ -1362,7 +1379,7 @@ fapi2::ReturnCode _fetch_and_insert_vpd_rings(
-         // rings we're looking for in Mvpd really should be represented there.
-         FAPI_DBG("INFO(NOT-A-BUG): _fetch_and_insert_vpd_rings(): The ring w/"
-                  "(ringId,chipletId)=(0x%x,0x%02x) was not found.",
--                 i_ringId, l_chipletId);
-+                 i_ringId, chipletId);
- 
-         fapi2::current_err = fapi2::FAPI2_RC_SUCCESS;
-     }
-@@ -1379,7 +1396,7 @@ fapi2::ReturnCode _fetch_and_insert_vpd_rings(
-                      fapi2::XIPC_MVPD_RING_SIZE_TOO_BIG().
-                      set_CHIP_TARGET(i_procTarget).
-                      set_RING_ID(i_ringId).
--                     set_CHIPLET_ID(l_chipletId).
-+                     set_CHIPLET_ID(chipletId).
-                      set_RING_BUFFER_SIZE(i_ringBufSize1).
-                      set_MVPD_RING_SIZE(vpdRingSize),
-                      "_fetch_and_insert_vpd_ring(): VPD ring size (=0x%X) exceeds"
-@@ -1443,12 +1460,13 @@ fapi2::ReturnCode fetch_and_insert_vpd_rings(
-     uint32_t        i_ringBufSize2,
-     void*           i_ringBuf3,
-     uint32_t        i_ringBufSize3,
--    uint32_t&       io_bootCoreMask,
-     std::map<Rs4Selector_t, Rs4Selector_t>& i_idxFeatureMap,
-     std::map<RingId_t, uint64_t>& io_ringIdFeatureVecMap,
-     Rs4Selector_t   i_numberOfFeatures,
-     void*           i_dynamicRingSection,
--    uint8_t         i_ddLevel )
-+    uint8_t         i_ddLevel,
-+    RingProperties_t* i_ringProps,
-+    uint32_t&       io_bootCoreMask )
- {
- 
-     ReturnCode l_fapiRc = fapi2::FAPI2_RC_SUCCESS;
-@@ -1498,45 +1516,34 @@ fapi2::ReturnCode fetch_and_insert_vpd_rings(
-     // 1- Add all NEST rings
-     // 2- Add QUAD rings in EC order
- 
--    RingId_t          l_ringId;
--    RingClass_t       l_ringClass;
--    RingProperties_t* l_ringProps;
-+    RingId_t          rpIndex; // Ring properties (rp) index counter
-+    RingClass_t       ringClass;
-     ChipletData_t*    l_chipletData;
-     ChipletData_t*    l_chipletDataEQ, *l_chipletDataEC;
-     uint8_t           l_chipletId;  // Nibbles {0,1} of scanScomAddr
-     uint32_t          l_regionSel;  // Nibbles {2,4,5,6} of scanScomAddr (region select target)
-     uint32_t          l_chipletSel; // Combination of chipletId and regionSel
- 
--    l_rc = ringid_get_ringProps( CID_P10, &l_ringProps);
--
--    FAPI_ASSERT( l_rc == INFRASTRUCT_RC_SUCCESS,
--                 fapi2::XIPC_RINGID_RINGPROPS_ERROR().
--                 set_CHIP_TARGET(i_procTarget).
--                 set_LOCAL_RC(l_rc).
--                 set_OCCURRENCE(1),
--                 "ringid_get_ringProps(): Failed w/rc=%i for occurrence=1",
--                 l_rc );
--
- 
-     // ----------------------------------------------------
-     // 1- Add all common rings (ie, non-EQ/core repr rings)
-     // ----------------------------------------------------
-     l_ringType = COMMON_RING;
- 
--    for ( l_ringId = 0; l_ringId < NUM_RING_IDS; l_ringId++ )
-+    for ( rpIndex = 0; rpIndex < NUM_RING_IDS; rpIndex++ )
-     {
- 
--        l_ringClass = l_ringProps[l_ringId].ringClass;
-+        ringClass = i_ringProps[rpIndex].ringClass;
- 
--        if ( ( l_ringClass != UNDEFINED_RING_CLASS )  &&
--             ( l_ringClass & RCLS_MVPD_MASK )  &&
--             ( (l_ringClass & RCLS_MVPD_PDR_EQ) != RCLS_MVPD_PDR_EQ )  &&
--             ( (l_ringClass & RCLS_MVPD_PDR_CORE) != RCLS_MVPD_PDR_CORE ) )
-+        if ( ( ringClass != UNDEFINED_RING_CLASS )  &&
-+             ( ringClass & RCLS_MVPD_MASK )  &&
-+             ( (ringClass & RCLS_MVPD_PDR_EQ) != RCLS_MVPD_PDR_EQ )  &&
-+             ( (ringClass & RCLS_MVPD_PDR_CORE) != RCLS_MVPD_PDR_CORE ) )
-         {
-             l_rc = ringid_get_chipletProps( CID_P10,
-                                             torMagic,
-                                             torVersion,
--                                            l_ringProps[l_ringId].chipletType,
-+                                            i_ringProps[rpIndex].chipletType,
-                                             &l_chipletData );
- 
-             FAPI_ASSERT( l_rc == INFRASTRUCT_RC_SUCCESS,
-@@ -1545,16 +1552,16 @@ fapi2::ReturnCode fetch_and_insert_vpd_rings(
-                          set_LOCAL_RC(l_rc).
-                          set_TOR_MAGIC(torMagic).
-                          set_TOR_VER(torVersion).
--                         set_CHIPLET_TYPE(l_ringProps[l_ringId].chipletType).
--                         set_RING_ID(l_ringId).
-+                         set_CHIPLET_TYPE(i_ringProps[rpIndex].chipletType).
-+                         set_RING_ID(i_ringProps[rpIndex].ringId).
-                          set_OCCURRENCE(1),
-                          "ringid_get_chipletProps(): Failed w/rc=%i for"
-                          " TOR magic = 0x%04x, TOR version = %d,"
-                          " chipletType = %d, ringId = 0x%x,"
-                          " occurrence=1",
-                          l_rc, torMagic, torVersion,
--                         l_ringProps[l_ringId].chipletType,
--                         l_ringId );
-+                         i_ringProps[rpIndex].chipletType,
-+                         i_ringProps[rpIndex].ringId );
- 
-             l_chipletId = l_chipletData->chipletBaseId;
-             l_chipletSel = ((uint32_t)l_chipletId) << 24;
-@@ -1564,7 +1571,7 @@ fapi2::ReturnCode fetch_and_insert_vpd_rings(
-             // - Fetch QME scannable VPD rings for QME.
- 
-             if ( i_sysPhase == SYSPHASE_HB_SBE   ||
--                 ( i_sysPhase == SYSPHASE_RT_QME && ( l_ringClass & RMRK_SCAN_BY_QME ) ) )
-+                 ( i_sysPhase == SYSPHASE_RT_QME && ( ringClass & RMRK_SCAN_BY_QME ) ) )
-             {
-                 l_fapiRc = _fetch_and_insert_vpd_rings (
-                                i_procTarget,
-@@ -1580,8 +1587,8 @@ fapi2::ReturnCode fetch_and_insert_vpd_rings(
-                                i_ringBufSize2,
-                                i_ringBuf3,
-                                i_ringBufSize3,
--                               l_ringProps,
--                               l_ringId,
-+                               i_ringProps,
-+                               i_ringProps[rpIndex].ringId,
-                                l_chipletSel,
-                                l_ringStatusInMvpd,
-                                l_bImgOutOfSpace,
-@@ -1630,7 +1637,7 @@ fapi2::ReturnCode fetch_and_insert_vpd_rings(
-             continue;
-         }
- 
--        for ( l_ringId = 0; l_ringId < NUM_RING_IDS; l_ringId++ )
-+        for ( rpIndex = 0; rpIndex < NUM_RING_IDS; rpIndex++ )
-         {
- 
-             //
-@@ -1641,18 +1648,18 @@ fapi2::ReturnCode fetch_and_insert_vpd_rings(
-             // consistent, and in case for some reason suddenly the QME is able to
-             // "scan itself", we consider the RT_QME phase here as well.
-             //
--            l_ringClass = l_ringProps[l_ringId].ringClass;
-+            ringClass = i_ringProps[rpIndex].ringClass;
- 
--            if ( ( l_ringClass != UNDEFINED_RING_CLASS )  &&
--                 ( (l_ringClass & RCLS_MVPD_PDR_EQ) == RCLS_MVPD_PDR_EQ )  &&
-+            if ( ( ringClass != UNDEFINED_RING_CLASS )  &&
-+                 ( (ringClass & RCLS_MVPD_PDR_EQ) == RCLS_MVPD_PDR_EQ )  &&
-                  ( i_sysPhase == SYSPHASE_HB_SBE  ||
--                   ( i_sysPhase == SYSPHASE_RT_QME && (l_ringClass & RMRK_SCAN_BY_QME) ) ) )
-+                   ( i_sysPhase == SYSPHASE_RT_QME && (ringClass & RMRK_SCAN_BY_QME) ) ) )
-             {
-                 l_rc = ringid_get_chipletProps(
-                            CID_P10,
-                            torMagic,
-                            torVersion,
--                           l_ringProps[l_ringId].chipletType,
-+                           i_ringProps[rpIndex].chipletType,
-                            &l_chipletDataEQ );
- 
-                 FAPI_ASSERT( l_rc == INFRASTRUCT_RC_SUCCESS,
-@@ -1661,22 +1668,22 @@ fapi2::ReturnCode fetch_and_insert_vpd_rings(
-                              set_LOCAL_RC(l_rc).
-                              set_TOR_MAGIC(torMagic).
-                              set_TOR_VER(torVersion).
--                             set_CHIPLET_TYPE(l_ringProps[l_ringId].chipletType).
--                             set_RING_ID(l_ringId).
-+                             set_CHIPLET_TYPE(i_ringProps[rpIndex].chipletType).
-+                             set_RING_ID(i_ringProps[rpIndex].ringId).
-                              set_OCCURRENCE(2),
-                              "ringid_get_chipletProps(): Failed w/rc=%i for"
-                              " TOR magic = 0x%04x, TOR version = %d,"
-                              " chipletType = %d, ringId = 0x%x,"
-                              " occurrence=2",
-                              l_rc, torMagic, torVersion,
--                             l_ringProps[l_ringId].chipletType,
--                             l_ringId );
-+                             i_ringProps[rpIndex].chipletType,
-+                             i_ringProps[rpIndex].ringId );
- 
-                 l_chipletId = l_chipletDataEQ->chipletBaseId + eq;
-                 l_chipletSel = ((uint32_t)l_chipletId) << 24;
- 
-                 FAPI_DBG("EQ=%d; chipletId=0x%02x, ringName:%s",
--                         eq, l_chipletId, l_ringProps[l_ringId].ringName);
-+                         eq, l_chipletId, i_ringProps[rpIndex].ringName);
- 
-                 // Update for ring in scan mode
-                 l_ringStatusInMvpd = RING_SCAN;
-@@ -1695,8 +1702,8 @@ fapi2::ReturnCode fetch_and_insert_vpd_rings(
-                                i_ringBufSize2,
-                                i_ringBuf3,
-                                i_ringBufSize3,
--                               l_ringProps,
--                               l_ringId,
-+                               i_ringProps,
-+                               i_ringProps[rpIndex].ringId,
-                                l_chipletSel,
-                                l_ringStatusInMvpd,
-                                l_bImgOutOfSpace,
-@@ -1734,7 +1741,7 @@ fapi2::ReturnCode fetch_and_insert_vpd_rings(
- 
-             } // Done w/fetch_and_insert() current EQ instance ring
- 
--        } // End of for(l_ringId) for the current eq
-+        } // End of for(rpIndex) for the current eq
- 
-         //
-         // At this point, we're done appending all possible EQ Mvpd rings for current eq.
-@@ -1752,25 +1759,25 @@ fapi2::ReturnCode fetch_and_insert_vpd_rings(
-                 continue;
-             }
- 
--            for ( l_ringId = 0; l_ringId < NUM_RING_IDS; l_ringId++ )
-+            for ( rpIndex = 0; rpIndex < NUM_RING_IDS; rpIndex++ )
-             {
- 
-                 //
-                 // Determine if ringId belongs to relevant Mvpd #R EC ringClass. If so,
-                 // then try fetch the ring from Mvpd and append it to ring section.
-                 //
--                l_ringClass = l_ringProps[l_ringId].ringClass;
-+                ringClass = i_ringProps[rpIndex].ringClass;
- 
--                if ( ( l_ringClass != UNDEFINED_RING_CLASS )  &&
--                     ( (l_ringClass & RCLS_MVPD_PDR_CORE) == RCLS_MVPD_PDR_CORE )  &&
-+                if ( ( ringClass != UNDEFINED_RING_CLASS )  &&
-+                     ( (ringClass & RCLS_MVPD_PDR_CORE) == RCLS_MVPD_PDR_CORE )  &&
-                      ( i_sysPhase == SYSPHASE_HB_SBE  ||
--                       ( i_sysPhase == SYSPHASE_RT_QME && (l_ringClass & RMRK_SCAN_BY_QME) ) ) )
-+                       ( i_sysPhase == SYSPHASE_RT_QME && (ringClass & RMRK_SCAN_BY_QME) ) ) )
-                 {
-                     l_rc = ringid_get_chipletProps(
-                                CID_P10,
-                                torMagic,
-                                torVersion,
--                               l_ringProps[l_ringId].chipletType,
-+                               i_ringProps[rpIndex].chipletType,
-                                &l_chipletDataEC );
- 
-                     FAPI_ASSERT( l_rc == INFRASTRUCT_RC_SUCCESS,
-@@ -1779,16 +1786,16 @@ fapi2::ReturnCode fetch_and_insert_vpd_rings(
-                                  set_LOCAL_RC(l_rc).
-                                  set_TOR_MAGIC(torMagic).
-                                  set_TOR_VER(torVersion).
--                                 set_CHIPLET_TYPE(l_ringProps[l_ringId].chipletType).
--                                 set_RING_ID(l_ringId).
-+                                 set_CHIPLET_TYPE(i_ringProps[rpIndex].chipletType).
-+                                 set_RING_ID(i_ringProps[rpIndex].ringId).
-                                  set_OCCURRENCE(3),
-                                  "ringid_get_chipletProps(): Failed w/rc=%i for"
-                                  " TOR magic = 0x%04x, TOR version = %d,"
-                                  " chipletType = %d, ringId = 0x%x,"
-                                  " occurrence=3",
-                                  l_rc, torMagic, torVersion,
--                                 l_ringProps[l_ringId].chipletType,
--                                 l_ringId );
-+                                 i_ringProps[rpIndex].chipletType,
-+                                 i_ringProps[rpIndex].ringId );
- 
-                     //
-                     // Calculate chipletSel target "ID" for this particular (eq,quadrant) combo
-@@ -1804,7 +1811,7 @@ fapi2::ReturnCode fetch_and_insert_vpd_rings(
-                     // in the scanScomAddr, and see if it matches the current quadrant we're in:
-                     // - If there's a match, regionSel will have one bit set,
-                     // - If there's no match, regionSel will be zero.
--                    l_regionSel = l_ringProps[l_ringId].scanScomAddr & l_regionSel;
-+                    l_regionSel = i_ringProps[rpIndex].scanScomAddr & l_regionSel;
-                     // Final chipletSel to look for in Mvpd
-                     l_chipletSel = ( (uint32_t)l_chipletId << 24 ) | l_regionSel;
- 
-@@ -1816,12 +1823,12 @@ fapi2::ReturnCode fetch_and_insert_vpd_rings(
-                         // ringIds scanScomAddr.  Proceed to the next ringId.
-                         FAPI_DBG("EC=%d: chipletSel=0x%08x, ringName=%s (Skipping this ring"
-                                  " because we're in wrong quadrant(=%d))",
--                                 ec, l_chipletSel, l_ringProps[l_ringId].ringName, quadrant);
-+                                 ec, l_chipletSel, i_ringProps[rpIndex].ringName, quadrant);
-                         continue;
-                     }
- 
-                     FAPI_DBG("EC=%d: chipletSel=0x%08x, ringName=%s",
--                             ec, l_chipletSel, l_ringProps[l_ringId].ringName);
-+                             ec, l_chipletSel, i_ringProps[rpIndex].ringName);
- 
-                     // Update for ring in scan mode
-                     l_ringStatusInMvpd = RING_SCAN;
-@@ -1840,8 +1847,8 @@ fapi2::ReturnCode fetch_and_insert_vpd_rings(
-                                    i_ringBufSize2,
-                                    i_ringBuf3,
-                                    i_ringBufSize3,
--                                   l_ringProps,
--                                   l_ringId,
-+                                   i_ringProps,
-+                                   i_ringProps[rpIndex].ringId,
-                                    l_chipletSel,
-                                    l_ringStatusInMvpd,
-                                    l_bImgOutOfSpace,
-@@ -1887,7 +1894,7 @@ fapi2::ReturnCode fetch_and_insert_vpd_rings(
- 
-                 } // Done inserting current ec core instance ring
- 
--            } //for(ringId) - Done inserting all core instance rings for current ec core
-+            } //for(rpIndex) - Done inserting all core instance rings for current ec core
- 
-         } //for (quadrant=0; quadrant<CORES_PER_QME; quadrant++)
- 
-@@ -1995,7 +2002,7 @@ fapi_try_exit:
-                                          fapi2::XIPC_CODE_BUG().
-                                          set_CHIP_TARGET(i_procTarget).
-                                          set_OCCURRENCE(1),
--                                         "Code bug(1): Incorrect EC mask. Should never get here. Fix code!" );
-+                                         "CODE BUG(1): Incorrect EC mask. Should never get here. Fix code!" );
-                             break;
-                     }
-                 }
-@@ -2397,10 +2404,13 @@ ReturnCode p10_ipl_customize (
-     uint32_t        sizeMvpdCIField = 0;
-     uint8_t*        fullCIData = nullptr;
- 
-+    RingProperties_t* ringProps = nullptr; // Ring properties list
-+    RingId_t        ringId = UNDEFINED_RING_ID;
-+    RingId_t        rpIndex = UNDEFINED_RING_ID; // Ring properties (rp) index
-+
-     uint64_t        featureVec = 0; // Dynamic inits feature vector from platform attribute
-     fapi2::ATTR_SYSTEM_IPL_PHASE_Type l_attrSystemIplPhase;
-     fapi2::ATTR_CONTAINED_IPL_TYPE_Type l_attrContainedIplType;
--    RingId_t        ringId = UNDEFINED_RING_ID;
-     std::map< Rs4Selector_t,  Rs4Selector_t> idxFeatureMap;
-     std::map<RingId_t, uint64_t> ringIdFeatureVecMap;
-     uint8_t*        ringIdFeatList = NULL;
-@@ -2468,7 +2478,7 @@ ReturnCode p10_ipl_customize (
-                      set_CHIP_TARGET(i_procTarget).
-                      set_XIP_RC(l_rc).
-                      set_OCCURRENCE(1),
--                     "p9_xip_image_size() failed w/rc=0x%08x at occurrence=1",
-+                     "p9_xip_image_size() failed (1) w/rc=0x%08x",
-                      (uint32_t)l_rc );
- 
-         FAPI_DBG("Input image size: %d", l_inputImageSize);
-@@ -3184,6 +3194,17 @@ ReturnCode p10_ipl_customize (
-                  set_CHIP_TARGET(i_procTarget),
-                  "tor_skeleton_generation failed w/rc=0x%08X", (uint32_t)l_rc );
- 
-+    // We will be needing the ring properties (rp) list for both Dynamic and Mvpd rings
-+    l_rc = ringid_get_ringProps( CID_P10, &ringProps);
-+
-+    FAPI_ASSERT( l_rc == INFRASTRUCT_RC_SUCCESS,
-+                 fapi2::XIPC_RINGID_RINGPROPS_ERROR().
-+                 set_CHIP_TARGET(i_procTarget).
-+                 set_LOCAL_RC(l_rc).
-+                 set_OCCURRENCE(1),
-+                 "ringid_get_ringProps(): Failed w/rc=%i for occurrence=1",
-+                 l_rc );
-+
-     // Now, start tracking the instantaneous actual custom ring section size.
-     // (Note that we already took a copy of the [max] value of io_ringSectionBufSize
-     // earlier on into l_ringSectionBufSize, so safe to update this now.)
-@@ -3261,10 +3282,6 @@ ReturnCode p10_ipl_customize (
-     //            ring becomes the de facto Base ring.
-     //////////////////////////////////////////////////////////////////////////
- 
--    // TODO / FIXME: The mapping from bit position in the vector to features
--    //               should be encapsulated in an enum constructed at ekb build
--    //               time.
--
-     //
-     // Get the feature vector from the platform
-     //
-@@ -3405,10 +3422,14 @@ ReturnCode p10_ipl_customize (
- 
-     dynamicRingSection = (void*)((uint8_t*)i_hwImage + iplImgSection.iv_offset);
- 
--    for(ringId = 0; ringId < NUM_RING_IDS; ringId++)
-+    for (rpIndex = 0; rpIndex < NUM_RING_IDS; rpIndex++)
-     {
--        // Only process non-Mvpd rings (and which are all assumed to be Common rings)
--        if ( ringid_is_mvpd_ring(torHeaderBase->chipId, ringId) == true )
-+        // Get the ringId from the RP list
-+        ringId = ringProps[rpIndex].ringId;
-+
-+        // Only process non-Mvpd (which are all Common rings)
-+        if ( ringid_is_mvpd_ring(torHeaderBase->chipId, ringId) == true ||
-+             ringId == HOLE_RING_ID )
-         {
-             continue;
-         }
-@@ -3416,7 +3437,7 @@ ReturnCode p10_ipl_customize (
-         l_fapiRc = process_target_and_dynamic_rings(
-                        i_procTarget,
-                        true,//true means next arg is Base ringSection ptr
--                       baseRingSection,//Overloaded (false:RS4 ring in mid-Buf1,true:Base ringSection)
-+                       baseRingSection,//Overloaded (false:RS4 ring in mid-Buf1,true:Base section)
-                        dynamicRingSection,
-                        i_ringBuf1,//On return, contains Base ring overlaid with dynamic rings
-                        i_ringBuf2,
-@@ -3484,15 +3505,15 @@ ReturnCode p10_ipl_customize (
-                                  fapi2::XIPC_CODE_BUG().
-                                  set_CHIP_TARGET(i_procTarget).
-                                  set_OCCURRENCE(2),
--                                 "Code bug(2): Messed up RC handling in assoc code. Fix code!" );
-+                                 "CODE BUG(2): Messed up RC handling in assoc code. Fix code!" );
-                     break;
-             }
--
-         }
-     }
- 
- 
- 
-+
-     //////////////////////////////////////////////////////////////////////////
-     // CUSTOMIZE item:     Append VPD rings to io_ringSectionBuf
-     // System phase:       All phases
-@@ -3594,12 +3615,13 @@ ReturnCode p10_ipl_customize (
-                                                    i_ringBufSize2,
-                                                    i_ringBuf3,
-                                                    i_ringBufSize3,
--                                                   io_bootCoreMask,
-                                                    idxFeatureMap,
-                                                    ringIdFeatureVecMap,
-                                                    numberOfFeatures,
-                                                    dynamicRingSection,
--                                                   attrDdLevel );
-+                                                   attrDdLevel,
-+                                                   ringProps,
-+                                                   io_bootCoreMask );
- 
-             FAPI_DBG("-----------------------------------------------------------------------");
-             FAPI_DBG("bootCoreMask:  Requested=0x%08X  Final=0x%08X",
-@@ -3611,8 +3633,8 @@ ReturnCode p10_ipl_customize (
- 
-                 if ((uint32_t)l_fapiRc == RC_XIPC_IMAGE_WOULD_OVERFLOW)
-                 {
--                    FAPI_DBG("p10_ipl_customize(): SBE image is full. Ran out of space appending VPD rings"
--                             " to the .rings section");
-+                    FAPI_DBG("p10_ipl_customize(): SBE image is full. Ran out of space appending"
-+                             " VPD rings to the .rings section");
- 
-                     // Check the bootCoreMask to determine if enough cores have been configured.
-                     uint8_t attrMinReqdEcs = 0;
-@@ -3670,7 +3692,8 @@ ReturnCode p10_ipl_customize (
-                          set_RING_SECTION_BUF_SIZE(l_ringSectionBufSize).
-                          set_MAX_RING_SECTION_SIZE(l_maxRingSectionSize).
-                          set_OCCURRENCE(2),
--                         "Code bug: ringSectionBufSize(=%d) > maxRingSectionSize(=%d) in HB_SBE (Occurrence 2)",
-+                         "CODE BUG: ringSectionBufSize(=%d) > maxRingSectionSize(=%d) in HB_SBE"
-+                         " (Occurrence 2)",
-                          io_ringSectionBufSize, l_maxRingSectionSize );
- 
-             FAPI_ASSERT( (l_imageSizeWithoutRings + io_ringSectionBufSize) <= l_maxImageSize,
-@@ -3679,7 +3702,7 @@ ReturnCode p10_ipl_customize (
-                          set_IMAGE_SIZE_WITHOUT_RINGS(l_imageSizeWithoutRings).
-                          set_RING_SECTION_SIZE(io_ringSectionBufSize).
-                          set_MAX_IMAGE_SIZE(l_maxImageSize),
--                         "Code bug: SBE imageSize would exceed maxImageSize" );
-+                         "CODE BUG: SBE imageSize would exceed maxImageSize" );
- 
-             FAPI_DBG( "SBE image details: io_ringSectionBufSize=%d, l_imageSizeWithoutRings=%d,"
-                       "  l_maxImageSize=%d",
-@@ -3751,12 +3774,13 @@ ReturnCode p10_ipl_customize (
-                                                    i_ringBufSize2,
-                                                    i_ringBuf3,
-                                                    i_ringBufSize3,
--                                                   io_bootCoreMask,
-                                                    idxFeatureMap,
-                                                    ringIdFeatureVecMap,
-                                                    numberOfFeatures,
-                                                    dynamicRingSection,
--                                                   attrDdLevel );
-+                                                   attrDdLevel,
-+                                                   ringProps,
-+                                                   io_bootCoreMask );
- 
-             FAPI_DBG("Size of QME .rings section after VPD update: %d", io_ringSectionBufSize );
- 
-@@ -3788,7 +3812,7 @@ ReturnCode p10_ipl_customize (
-                          set_RING_SECTION_BUF_SIZE(l_ringSectionBufSize).
-                          set_MAX_RING_SECTION_SIZE(l_maxRingSectionSize).
-                          set_OCCURRENCE(3),
--                         "Code bug: QME ring section size(=%d) > maxRingSectionSize(=%d)"
-+                         "CODE BUG: QME ring section size(=%d) > maxRingSectionSize(=%d)"
-                          " in RT_QME (Occurrence 3)",
-                          io_ringSectionBufSize, l_maxRingSectionSize );
- 
-diff --git a/src/import/chips/p10/procedures/hwp/customize/p10_qme_customize.C b/src/import/chips/p10/procedures/hwp/customize/p10_qme_customize.C
-index fc645d6..c87fabb 100644
---- a/src/import/chips/p10/procedures/hwp/customize/p10_qme_customize.C
-+++ b/src/import/chips/p10/procedures/hwp/customize/p10_qme_customize.C
-@@ -43,60 +43,52 @@ using namespace fapi2;
- 
- fapi2::ReturnCode p10_qme_customize(
-     const fapi2::Target<fapi2::TARGET_TYPE_PROC_CHIP>& i_procTarget,
--    uint8_t* i_bufQmeRings,
--    CUSTOM_RING_OP i_custOp,
--    uint8_t* io_bufCustRings,
--    uint32_t& io_bufCustRingsSize,
--    uint32_t i_dbgl)
-+    uint8_t*      i_qmeRings,          //Input QME ring section
-+    CUST_RING_OP  i_custOp,
-+    uint8_t*      io_bufCustRings,     //Buffer for customized output QME ring section
-+    uint32_t&     io_bufCustRingsSize, //In: Max buf size, Out: cust ring section size
-+    uint32_t      i_dbgl )
- {
--    int rc = INFRASTRUCT_RC_SUCCESS;
-+    int rc = TOR_SUCCESS;
- 
--    TorHeader_t* torHeaderQme  = (TorHeader_t*) i_bufQmeRings;
-+    TorHeader_t* torHeaderQme  = (TorHeader_t*) i_qmeRings;
-     TorHeader_t* torHeaderCust = (TorHeader_t*) io_bufCustRings;
- 
--    uint8_t ddLevel;
--    uint8_t torVersion;
--    uint32_t torMagic;
--    uint32_t inputQmeRingsSize;
-+    uint32_t inputQmeRingsSize = be32toh(torHeaderQme->size);
-+    uint32_t maxCustRingsSize = io_bufCustRingsSize;
- 
--    ChipId_t chipId = UNDEFINED_CHIP_ID;
-+    RingProperties_t* ringProps = nullptr;
-     ChipletData_t* chipletData;
-+    RingId_t numRingIds = UNDEFINED_RING_ID;
-+    RingId_t rpIndex;
-+    uint8_t  chipletId;
-+    void*    nextRing = NULL;
-+    uint32_t remBufSize;
- 
-     FAPI_IMP(">> p10_qme_customize ");
- 
--    ddLevel = torHeaderQme->ddLevel;
--    torVersion = torHeaderQme->version;
--    torMagic = be32toh(torHeaderQme->magic);
--    chipId = torHeaderQme->chipId;
--    inputQmeRingsSize = be32toh(torHeaderQme->size);
--
--    RingId_t numRings = UNDEFINED_RING_ID; // Number of chiplet common or instance rings
--    MyBool_t bInstCase = UNDEFINED_BOOLEAN; // 0:COMMON, 1:INSTANCE rings
--    RingId_t ringId;
--    uint8_t  chipletInstId;
--
--    uint32_t maxCustRingsSize = io_bufCustRingsSize;
--
--    uint8_t  iRing;
--    void*    nextRing = NULL;
--    uint32_t remBufSize;
-+    // Take note of some key TOR header input data
-+    uint32_t torMagic = be32toh(torHeaderQme->magic);
-+    uint8_t  torVersion = torHeaderQme->version;
-+    uint8_t  ddLevel = torHeaderQme->ddLevel;
-+    ChipId_t chipId = torHeaderQme->chipId;
- 
-     //
-     // Step 0: Test input parameters
-     //
--    FAPI_ASSERT(i_custOp < NUM_CUSTOMIZE_QME_ENTRIES
--                && i_bufQmeRings != NULL
-+    FAPI_ASSERT(i_custOp < NUM_QME_CUST_OPS
-+                && i_qmeRings != NULL
-                 && io_bufCustRings != NULL,
-                 fapi2::QMEC_FUNC_CALL_ARGUMENT_ERROR()
-                 .set_TARGET(i_procTarget)
--                .set_CUSTOM_RING_OP(i_custOp)
--                .set_INPUT_QME_RINGS_BUF_PTR(i_bufQmeRings)
-+                .set_CUST_RING_OP(i_custOp)
-+                .set_INPUT_QME_RINGS_PTR(i_qmeRings)
-                 .set_CUST_QME_RINGS_BUF_PTR(io_bufCustRings),
--                "Error: Some arguments in function call are invalid,\n"
--                " i_custOp=0x%08x, i_bufQmeRings=0x%016llx, io_bufCustRings=0x%016llx.\n",
-+                "ERROR: Some arguments in function call are invalid:"
-+                " i_custOp=0x%x, i_qmeRings=0x%016llx, io_bufCustRings=0x%016llx.\n",
-                 i_custOp,
--                (uintptr_t) i_bufQmeRings,
--                (uintptr_t) io_bufCustRings);
-+                (uintptr_t)i_qmeRings,
-+                (uintptr_t)io_bufCustRings);
- 
-     FAPI_ASSERT(torMagic == TOR_MAGIC_QME && torVersion == TOR_VERSION,
-                 fapi2::QMEC_TOR_HEADER_MISMATCH()
-@@ -105,28 +97,26 @@ fapi2::ReturnCode p10_qme_customize(
-                 .set_TOR_MAGIC_QME_DEFINED(TOR_MAGIC_QME)
-                 .set_TOR_VERSION_IN_HEADER(torVersion)
-                 .set_TOR_VERSION_DEFINED(TOR_VERSION),
--                "Error: TOR Magic or TOR Version not match in TOR header and the defined,\n"
--                " TOR Magic w/value =0x%08x in TOR header, TOR_MAGIC_QME w/value =0x%08x,\n"
--                " TOR Version w/value =0x%08x in TOR header, TOR_VERSION w/value =0x%08x.\n",
-+                "ERROR: TOR Magic or TOR Version in TOR header do not match the defined values:\n"
-+                " torMagic=0x%08x but TOR_MAGIC_QME=0x%08x\n"
-+                " torVersion=%u but TOR_VERSION=%u",
-                 torMagic,
-                 TOR_MAGIC_QME,
-                 torVersion,
-                 TOR_VERSION);
- 
--    // Make sure that the customized buffer size is greater than or
--    // equal to the size in TOR header in the input QME ring buffer.
-+    // Check that the max customized buffer size is >= the size of the input TOR ring section
-     FAPI_ASSERT(maxCustRingsSize >= inputQmeRingsSize,
-                 fapi2::QMEC_RINGS_OUTPUT_BUFFER_TOO_SMALL()
-                 .set_TARGET(i_procTarget)
--                .set_MAX_CUST_RINGS_BUF_SIZE(maxCustRingsSize)
--                .set_INPUT_QME_RINGS_BUF_SIZE(inputQmeRingsSize),
--                "Error: Input QME rings buffer size exceeds max customize ring buffer size,\n"
--                " maxCustRingsSize=0x%08x, inputQmeRingsSize=0x%08x.\n",
-+                .set_CUST_QME_RINGS_BUF_SIZE(maxCustRingsSize)
-+                .set_INPUT_QME_RINGS_SIZE(inputQmeRingsSize)
-+                .set_CUST_QME_RINGS_SIZE(0xffffffff), //Still undefined
-+                "ERROR: Max custom QME ring buf size < Input QME rings size:"
-+                " maxCustRingsSize=0x%08x, inputQmeRingsSize=0x%08x",
-                 maxCustRingsSize,
-                 inputQmeRingsSize);
- 
--    bInstCase = (i_custOp == CUSTOMIZE_QME_COMMON_RING) ? false : true;
--
-     //
-     // Step 1: Create TOR skeleton ringSection
-     // Create the complete ring skeleton, but with empty TOR ring slots (ie, no ring content).
-@@ -139,12 +129,7 @@ fapi2::ReturnCode p10_qme_customize(
-                                  chipId,
-                                  i_dbgl);
- 
--    FAPI_DBG("tor_skeleton_generation() completed w/rc=0x%08x,\n"
--             " torMagic=0x%08x, torVersion=%u,\n"
--             " ddLevel=0x%02x and chipId=0x%02x.\n",
--             rc, torMagic, torVersion, ddLevel, chipId);
--
--    FAPI_ASSERT(rc == INFRASTRUCT_RC_SUCCESS,
-+    FAPI_ASSERT(rc == TOR_SUCCESS,
-                 fapi2::QMEC_TOR_SKELETON_GEN_ERROR()
-                 .set_TARGET(i_procTarget)
-                 .set_API_RC(rc)
-@@ -152,130 +137,156 @@ fapi2::ReturnCode p10_qme_customize(
-                 .set_TOR_VER(torVersion)
-                 .set_DD_LEVEL(ddLevel)
-                 .set_CHIP_ID(chipId),
--                "Error: tor_skeleton_generation() failed w/rc=0x%08x,"
--                " torMagic=0x%08x, torVersion=%u, ddLevel=0x%02x and chipId=0x%02x\n",
-+                "ERROR: tor_skeleton_generation() failed w/rc=0x%08x for"
-+                " torMagic=0x%08x, torVersion=%u, ddLevel=0x%02x and chipId=0x%02x",
-                 rc, torMagic, torVersion, ddLevel, chipId);
- 
--    //
--    // Step 2: Add ring content
--    // Append rings to the end of the [skeleton] TOR ring section and update TOR offset slot
--    //
-+    // Get the main ring properties list and the number of RingIDs
-+    // (Note that we can skip the second rc check since the API only fails if wrong chipId which
-+    // will be caught by the first rc check)
-+    rc = ringid_get_ringProps(chipId,
-+                              &ringProps);
- 
--    // Get all the meta data for this chiplet and its rings
-+    FAPI_ASSERT(rc == TOR_SUCCESS,
-+                fapi2::QMEC_RINGID_API_ERROR()
-+                .set_TARGET(i_procTarget)
-+                .set_API_RC(rc)
-+                .set_TOR_MAGIC(torMagic)
-+                .set_TOR_VER(torVersion)
-+                .set_RP_INDEX(UNDEFINED_RING_ID)
-+                .set_RING_ID(UNDEFINED_RING_ID)
-+                .set_CHIP_ID(chipId)
-+                .set_OCCURRENCE(1),
-+                "ERROR: ringid_get_ringProps() failed w/rc=0x%08x\n for",
-+                " torMagic=0x%08x, torVersion=%u and chipId=0x%02x",
-+                rc, torMagic, torVersion, chipId);
-+
-+    ringid_get_num_ring_ids( chipId,
-+                             &numRingIds );
-+
-+    // Get the meta data for the QME chiplet
-     rc = ringid_get_chipletProps(chipId,
-                                  torMagic,
-                                  torVersion,
-                                  EQ_TYPE,
-                                  &chipletData);
- 
--    FAPI_ASSERT(rc == INFRASTRUCT_RC_SUCCESS,
--                fapi2::QMEC_RINGID_GET_CHIPLETPROPS_ERROR()
-+    FAPI_ASSERT(rc == TOR_SUCCESS,
-+                fapi2::QMEC_RINGID_API_ERROR()
-                 .set_TARGET(i_procTarget)
-                 .set_API_RC(rc)
-                 .set_TOR_MAGIC(torMagic)
--                .set_TOR_VER(torVersion),
--                "Error: ringid_get_chipletProps() failed w/rc=0x%08x,\n"
--                " torMagic=0x%08x and torVersion=%u.\n",
--                rc, torMagic, torVersion);
-+                .set_TOR_VER(torVersion)
-+                .set_RP_INDEX(UNDEFINED_RING_ID)
-+                .set_RING_ID(UNDEFINED_RING_ID)
-+                .set_CHIP_ID(chipId)
-+                .set_OCCURRENCE(2),
-+                "ERROR: ringid_get_chipletProps() failed w/rc=0x%08x for chipletType=EQ_TYPE,"
-+                " torMagic=0x%08x, torVersion=%u and chipId=0x%02x",
-+                rc, torMagic, torVersion, chipId);
- 
--    chipletInstId = chipletData->chipletBaseId + i_custOp;
-+    chipletId = chipletData->chipletBaseId + i_custOp;
- 
--    numRings = bInstCase ?
--               chipletData->numInstanceRings :
--               chipletData->numCommonRings;
-+    //
-+    // Step 2: Copy and append rings
-+    //
- 
--    // Loop through all rings, get ring data for each ring and
--    // append it to cust ring section.
--    for (iRing = 0; iRing < numRings; iRing++)
-+    for (rpIndex = 0; rpIndex < numRingIds; rpIndex++)
-     {
--        // Extract ringId from the TOR ring index, iRing.
--        rc = ringidGetRingId2(chipId,
--                              torMagic,
--                              EQ_TYPE,
--                              iRing,
--                              bInstCase,
--                              ringId,
--                              false);
--
--        FAPI_ASSERT(rc == INFRASTRUCT_RC_SUCCESS,
--                    fapi2::QMEC_RINGID_GET_RINGID2_ERROR()
--                    .set_TARGET(i_procTarget)
--                    .set_API_RC(rc)
--                    .set_TOR_MAGIC(torMagic)
--                    .set_RING_INST_ID(iRing)
--                    .set_INST_CASE(bInstCase)
--                    .set_RING_ID(ringId),
--                    "Error: ringidGetRingId2() failed w/rc=0x%08x,\n"
--                    " torMagic=0x%08x, iRing=%u,\n"
--                    " bInstCase=%u and ringId=0x%x.\n",
--                    rc, torMagic, iRing, bInstCase, ringId);
--
-         io_bufCustRingsSize = be32toh(torHeaderCust->size);
-         nextRing = (void*) (io_bufCustRings + io_bufCustRingsSize);
- 
-         // nextRing is portion of io_bufCustRings buffer which is used as
--        // temporary buffer to pass the ring in i_bufQmeRings from the
-+        // temporary buffer to pass the ring in i_qmeRings from the
-         // tor_get_single_ring() function.
-         // The size of this temporary buffer is captured by remBufSize.
--        FAPI_ASSERT(maxCustRingsSize > io_bufCustRingsSize,
-+        FAPI_ASSERT(maxCustRingsSize >= io_bufCustRingsSize,
-                     fapi2::QMEC_RINGS_OUTPUT_BUFFER_TOO_SMALL()
--                    .set_MAX_CUST_RINGS_BUF_SIZE(maxCustRingsSize)
--                    .set_CUST_QME_RINGS_BUF_SIZE(io_bufCustRingsSize),
--                    "Error: QME rings output buffer is not large enough to use part of it for rs4Ring,\n"
--                    " maxCustRingsSize=0x%08x, io_bufCustRingsSize=0x%08x.\n",
-+                    .set_TARGET(i_procTarget)
-+                    .set_CUST_QME_RINGS_BUF_SIZE(maxCustRingsSize)
-+                    .set_INPUT_QME_RINGS_SIZE(inputQmeRingsSize)
-+                    .set_CUST_QME_RINGS_SIZE(io_bufCustRingsSize),
-+                    "ERROR: QME customize rings output buffer is too small since"
-+                    " maxCustRingsSize=0x%08x < io_bufCustRingsSize=0x%08x.",
-                     maxCustRingsSize, io_bufCustRingsSize);
- 
-         remBufSize = maxCustRingsSize - io_bufCustRingsSize;
- 
--        // Extract ring data using the ringId.
--        rc = tor_get_single_ring(i_bufQmeRings,
--                                 ddLevel,
--                                 ringId,
--                                 chipletInstId, //This argument ignored for Common rings.
--                                 nextRing,
--                                 remBufSize,
--                                 i_dbgl);
-+        //
-+        // Extract ring
-+        // But skip it if it doesn't qualify for current custOp context
-+        //
- 
--        FAPI_ASSERT(rc == INFRASTRUCT_RC_SUCCESS ||
--                    rc == TOR_RING_IS_EMPTY,
--                    fapi2::QMEC_TOR_GET_SINGLE_RING_ERROR()
--                    .set_TARGET(i_procTarget)
--                    .set_API_RC(rc)
--                    .set_DD_LEVEL(ddLevel)
--                    .set_RING_ID(ringId)
--                    .set_CHIPLET_INST_ID(chipletInstId)
--                    .set_NEXT_RS4RING_BUF_SIZE(remBufSize),
--                    "Error: tor_get_single_ring() failed w/rc=0x%08x, ddLevel=0x%02x,"
--                    " ringId=0x%x, chipletInstId=0x%02x, remBufSize=%u.\n",
--                    rc, ddLevel, ringId, chipletInstId, remBufSize);
--
--        // If ring is empty, skip and check next ring.
--        if(rc == TOR_RING_IS_EMPTY)
-+        RingId_t  ringId = ringProps[rpIndex].ringId;
-+        MyBool_t  bInstRing = ringid_is_instance_ring(rpIndex);
-+
-+        if ( ( bInstRing == true &&
-+               (i_custOp >= CUST_QME0_INSTANCE_RING && i_custOp <= CUST_QME7_INSTANCE_RING) ) ||
-+             ( bInstRing == false &&
-+               (i_custOp == CUST_QME_COMMON_RING) ) )
-+        {
-+            rc = tor_get_single_ring(i_qmeRings,
-+                                     ddLevel,
-+                                     ringId,
-+                                     chipletId, //Arg ignored for Common rings
-+                                     nextRing,
-+                                     remBufSize,
-+                                     i_dbgl);
-+
-+
-+            FAPI_ASSERT(rc == TOR_SUCCESS ||
-+                        rc == TOR_RING_IS_EMPTY ||
-+                        rc == TOR_INVALID_CHIPLET_TYPE ||
-+                        rc == TOR_HOLE_RING_ID,
-+                        fapi2::QMEC_TOR_GET_SINGLE_RING_ERROR()
-+                        .set_TARGET(i_procTarget)
-+                        .set_API_RC(rc)
-+                        .set_DD_LEVEL(ddLevel)
-+                        .set_RING_ID(ringId)
-+                        .set_CHIPLET_ID(chipletId)
-+                        .set_REM_BUF_SIZE(remBufSize),
-+                        "ERROR: tor_get_single_ring() failed w/rc=0x%08x, ddLevel=0x%02x,"
-+                        " ringId=0x%x, chipletId=0x%02x, remBufSize=0x%08x\n",
-+                        rc, ddLevel, ringId, chipletId, remBufSize);
-+
-+            // If ring is empty, is a hole ring or doesnt belong to QME chiplet => go to next ring
-+            if( rc == TOR_RING_IS_EMPTY ||
-+                rc == TOR_INVALID_CHIPLET_TYPE ||
-+                rc == TOR_HOLE_RING_ID )
-+            {
-+                //FAPI_DBG("Skipping ringId=0x%03x for rc=0x%08x", ringId, rc);
-+                rc = TOR_SUCCESS;
-+                continue;
-+            }
-+        }
-+        else
-         {
--            rc = INFRASTRUCT_RC_SUCCESS;
-             continue;
-         }
- 
--        // Append ring to ring section.
-+        //
-+        // Append ring to customized QME ring section.
-         // Note that this API also updates the header's ring size
-+        //
-         rc = tor_append_ring(io_bufCustRings,
-                              maxCustRingsSize,
-                              ringId,
--                             chipletInstId,
-+                             chipletId, //Arg ignored for Common rings
-                              (void*)nextRing,
-                              i_dbgl);
- 
--        io_bufCustRingsSize = be32toh(torHeaderCust->size);
--
--        FAPI_ASSERT(rc == INFRASTRUCT_RC_SUCCESS,
-+        FAPI_ASSERT(rc == TOR_SUCCESS,
-                     fapi2::QMEC_TOR_APPEND_RING_ERROR()
-                     .set_TARGET(i_procTarget)
-                     .set_API_RC(rc)
--                    .set_CUST_RINGS_BUF_SIZE(io_bufCustRingsSize)
--                    .set_RING_ID(ringId),
--                    "Error: tor_append_ring() failed w/rc=0x%08x,\n"
--                    " io_bufCustRingsSize=0x%08x, ringId=0x%x.\n",
--                    rc, io_bufCustRingsSize, ringId);
-+                    .set_RING_ID(ringId)
-+                    .set_CHIPLET_ID(chipletId)
-+                    .set_CUST_QME_RINGS_BUF_SIZE(maxCustRingsSize),
-+                    "ERROR: tor_append_ring() failed w/rc=0x%08x for ringId=0x%x,"
-+                    " chipletId=0x%02x and maxCustRingsSize=0x%08x",
-+                    rc, ringId, chipletId, maxCustRingsSize);
-+
-+        io_bufCustRingsSize = be32toh(torHeaderCust->size);
- 
-     }
- 
-diff --git a/src/import/chips/p10/procedures/hwp/customize/p10_qme_customize.H b/src/import/chips/p10/procedures/hwp/customize/p10_qme_customize.H
-index b98c891..3d2b527 100644
---- a/src/import/chips/p10/procedures/hwp/customize/p10_qme_customize.H
-+++ b/src/import/chips/p10/procedures/hwp/customize/p10_qme_customize.H
-@@ -5,7 +5,7 @@
- /*                                                                        */
- /* OpenPOWER HostBoot Project                                             */
- /*                                                                        */
--/* Contributors Listed Below - COPYRIGHT 2016,2019                        */
-+/* Contributors Listed Below - COPYRIGHT 2016,2020                        */
- /* [+] International Business Machines Corp.                              */
- /*                                                                        */
- /*                                                                        */
-@@ -40,55 +40,50 @@
- /**
-  * @brief   various ring customization operation supported by HWP
-  */
--enum CUSTOM_RING_OP
-+enum CUST_RING_OP
- {
--    CUSTOMIZE_QME0_SPECIFIC_RING = 0x00,
--    CUSTOMIZE_QME1_SPECIFIC_RING = 0x01,
--    CUSTOMIZE_QME2_SPECIFIC_RING = 0x02,
--    CUSTOMIZE_QME3_SPECIFIC_RING = 0x03,
--    CUSTOMIZE_QME4_SPECIFIC_RING = 0x04,
--    CUSTOMIZE_QME5_SPECIFIC_RING = 0x05,
--    CUSTOMIZE_QME6_SPECIFIC_RING = 0x06,
--    CUSTOMIZE_QME7_SPECIFIC_RING = 0x07,
--    CUSTOMIZE_QME_COMMON_RING = 0x08,
--    NUM_CUSTOMIZE_QME_ENTRIES
-+    CUST_QME0_INSTANCE_RING = 0x00,
-+    CUST_QME1_INSTANCE_RING = 0x01,
-+    CUST_QME2_INSTANCE_RING = 0x02,
-+    CUST_QME3_INSTANCE_RING = 0x03,
-+    CUST_QME4_INSTANCE_RING = 0x04,
-+    CUST_QME5_INSTANCE_RING = 0x05,
-+    CUST_QME6_INSTANCE_RING = 0x06,
-+    CUST_QME7_INSTANCE_RING = 0x07,
-+    CUST_QME_COMMON_RING = 0x08,
-+    NUM_QME_CUST_OPS
- };
- 
- typedef fapi2::ReturnCode (*p10_qme_customize_FP_t)(
-     const fapi2::Target<fapi2::TARGET_TYPE_PROC_CHIP>& i_procTarget,
--    uint8_t* i_bufQmeRings,
--    CUSTOM_RING_OP i_custOp,
--    uint8_t* io_bufCustRings,
--    uint32_t& io_bufCustRingsSize,
--    uint32_t i_dbgl);
-+    uint8_t*      i_qmeRings,
-+    CUST_RING_OP  i_custOp,
-+    uint8_t*      io_bufCustRings,
-+    uint32_t&     io_bufCustRingsSize,
-+    uint32_t      i_dbgl);
- 
- extern "C"
- {
- 
- /// @brief          customizes QME ring section based on input.
- /// @param[in]      i_procTarget reference to processor chip target.
--/// @param[in/out]  i_bufQmeRings pointer to a buffer containing all
--///                     scan rings associated with QME image.
--/// @param[in]      i_custOp type of customization requested.
--/// @param[in/out]  io_bufCustRings pointer to a buffer containing
--///                     customized QME rings.
--/// @param[in/out]  io_bufCustRingsSize reference.
--///                     Input - max buffer size, must be greater than or
--///                         equal to the size in the TOR header of QME
--///                         ring section in the i_bufQmeRing buffer.
--///                     output- the actual buffer size of customized QME
--///                         rings.
--/// @param[in]      i_dbgl  debug level, default value is 0.
--/// @return         FAPI_RC_SUCCESS if the customization was successful,
--///                     error code otherwise.
-+/// @param[in/out]  i_qmeRings  Pointer to the input QME ring section
-+/// @param[in]      i_custOp  Type of customization requested.
-+/// @param[in/out]  io_bufCustRings  Pointer to a buffer containing the customized QME rings.
-+/// @param[in/out]  io_bufCustRingsSize  Size of customized QME ring section
-+///                     Input - max buffer size, must be >= to the size in the TOR header of
-+///                             the input QME ring section in i_qmeRings
-+///                     Output- the actual size of the customized QME ring section
-+/// @param[in]      i_dbgl  Debug level, default value is 0
-+/// @return         FAPI_RC_SUCCESS if the customization was successful, otherwise error code
- 
-     fapi2::ReturnCode p10_qme_customize(
-         const fapi2::Target<fapi2::TARGET_TYPE_PROC_CHIP>& i_procTarget,
--        uint8_t* i_bufQmeRings,
--        CUSTOM_RING_OP i_custOp,
--        uint8_t* io_bufCustRings,
--        uint32_t& io_bufCustRingsSize,
--        uint32_t i_dbgl = 0);
-+        uint8_t*      i_bufQmeRings,
-+        CUST_RING_OP  i_custOp,
-+        uint8_t*      io_bufCustRings,
-+        uint32_t&     io_bufCustRingsSize,
-+        uint32_t      i_dbgl = 0);
- 
- } //extern "C"
- 
-diff --git a/src/import/chips/p10/procedures/hwp/pm/p10_hcode_image_build.C b/src/import/chips/p10/procedures/hwp/pm/p10_hcode_image_build.C
-index 0d3441a..d2553cb 100644
---- a/src/import/chips/p10/procedures/hwp/pm/p10_hcode_image_build.C
-+++ b/src/import/chips/p10/procedures/hwp/pm/p10_hcode_image_build.C
-@@ -1037,7 +1037,7 @@ fapi2::ReturnCode buildQmeSpecificRing( CONST_FAPI2_PROC& i_procTgt, Homerlayout
- 
-         FAPI_TRY( p10_qme_customize( i_procTgt,
-                                      (uint8_t *)i_ringData.iv_pRingBuffer,
--                                     ( CUSTOM_RING_OP )l_superChiplet,
-+                                     ( CUST_RING_OP )l_superChiplet,
-                                      (uint8_t *)i_ringData.iv_pWorkBuf1,
-                                      l_workBufSize,
-                                      0 ),
-@@ -1071,7 +1071,7 @@ fapi2::ReturnCode buildQmeSpecificRing( CONST_FAPI2_PROC& i_procTgt, Homerlayout
- 
-         FAPI_TRY( p10_qme_customize( i_procTgt,
-                                      (uint8_t *)i_ringData.iv_pRingBuffer,
--                                     ( CUSTOM_RING_OP ) l_superChiplet,
-+                                     ( CUST_RING_OP ) l_superChiplet,
-                                      (uint8_t *)i_ringData.iv_pWorkBuf1,
-                                      l_workBufSize,
-                                      0 ),
-@@ -1236,7 +1236,7 @@ fapi2::ReturnCode buildQmeRing( CONST_FAPI2_PROC& i_procTgt, void * const i_pIma
- 
-     FAPI_TRY( p10_qme_customize( i_procTgt,
-                                  (uint8_t *)i_ringData.iv_pRingBuffer,
--                                 CUSTOMIZE_QME_COMMON_RING,
-+                                 CUST_QME_COMMON_RING,
-                                  (uint8_t *)i_ringData.iv_pWorkBuf1,
-                                  l_workBufSize,
-                                  0 ),
-diff --git a/src/import/chips/p10/procedures/xml/error_info/p10_qme_customize_errors.xml b/src/import/chips/p10/procedures/xml/error_info/p10_qme_customize_errors.xml
-index 39e6611..4057a69 100644
---- a/src/import/chips/p10/procedures/xml/error_info/p10_qme_customize_errors.xml
-+++ b/src/import/chips/p10/procedures/xml/error_info/p10_qme_customize_errors.xml
-@@ -5,7 +5,7 @@
- <!--                                                                        -->
- <!-- OpenPOWER HostBoot Project                                             -->
- <!--                                                                        -->
--<!-- Contributors Listed Below - COPYRIGHT 2016,2019                        -->
-+<!-- Contributors Listed Below - COPYRIGHT 2016,2020                        -->
- <!-- [+] International Business Machines Corp.                              -->
- <!--                                                                        -->
- <!--                                                                        -->
-@@ -26,10 +26,10 @@
-   <!-- ********************************************************************* -->
-   <hwpError>
-     <rc>RC_QMEC_FUNC_CALL_ARGUMENT_ERROR</rc>
--    <description>Caller bug: Some function call arguments are invalid.</description>
-+    <description>Some function call arguments are invalid.</description>
-     <ffdc>TARGET</ffdc>
--    <ffdc>CUSTOM_RING_OP</ffdc>
--    <ffdc>INPUT_QME_RINGS_BUF_PTR</ffdc>
-+    <ffdc>CUST_RING_OP</ffdc>
-+    <ffdc>INPUT_QME_RINGS_PTR</ffdc>
-     <ffdc>CUST_QME_RINGS_BUF_PTR</ffdc>
-     <callout>
-       <procedure>CODE</procedure>
-@@ -39,7 +39,7 @@
-   <!-- ********************************************************************* -->
-   <hwpError>
-     <rc>RC_QMEC_TOR_HEADER_MISMATCH</rc>
--    <description>Caller bug: Data in TOR header does not match.</description>
-+    <description>Some data in TOR header does not match.</description>
-     <ffdc>TARGET</ffdc>
-     <ffdc>TOR_MAGIC_QME_IN_HEADER</ffdc>
-     <ffdc>TOR_MAGIC_QME_DEFINED</ffdc>
-@@ -53,11 +53,11 @@
-   <!-- ********************************************************************* -->
-   <hwpError>
-     <rc>RC_QMEC_RINGS_OUTPUT_BUFFER_TOO_SMALL</rc>
--    <description>Code bug: Input QME rings buffer is not too small.</description>
-+    <description>Customized QME ring section buffer is too small.</description>
-     <ffdc>TARGET</ffdc>
--    <ffdc>MAX_CUST_RINGS_BUF_SIZE</ffdc>
--    <ffdc>INPUT_QME_RINGS_BUF_SIZE</ffdc>
-     <ffdc>CUST_QME_RINGS_BUF_SIZE</ffdc>
-+    <ffdc>INPUT_QME_RINGS_SIZE</ffdc>
-+    <ffdc>CUST_QME_RINGS_SIZE</ffdc>
-     <callout>
-       <procedure>CODE</procedure>
-       <priority>HIGH</priority>
-@@ -66,7 +66,7 @@
-   <!-- ********************************************************************* -->
-   <hwpError>
-     <rc>RC_QMEC_TOR_SKELETON_GEN_ERROR</rc>
--    <description>Code bug: Error with calling tor_skeleton_generation().</description>
-+    <description>Error with calling tor_skeleton_generation().</description>
-     <ffdc>TARGET</ffdc>
-     <ffdc>API_RC</ffdc>
-     <ffdc>TOR_MAGIC</ffdc>
-@@ -80,12 +80,16 @@
-   </hwpError>
-   <!-- ********************************************************************* -->
-   <hwpError>
--    <rc>RC_QMEC_RINGID_GET_CHIPLETPROPS_ERROR</rc>
--    <description>Code bug: Error with calling ringid_get_chipletProps().</description>
-+    <rc>RC_QMEC_RINGID_API_ERROR</rc>
-+    <description>Error with calling ringid_xyz().</description>
-     <ffdc>TARGET</ffdc>
-     <ffdc>API_RC</ffdc>
-     <ffdc>TOR_MAGIC</ffdc>
-     <ffdc>TOR_VER</ffdc>
-+    <ffdc>RP_INDEX</ffdc>
-+    <ffdc>RING_ID</ffdc>
-+    <ffdc>CHIP_ID</ffdc>
-+    <ffdc>OCCURRENCE</ffdc>
-     <callout>
-       <procedure>CODE</procedure>
-       <priority>HIGH</priority>
-@@ -93,14 +97,14 @@
-   </hwpError>
-   <!-- ********************************************************************* -->
-   <hwpError>
--    <rc>RC_QMEC_RINGID_GET_RINGID2_ERROR</rc>
--    <description>Code bug: Error with calling ringidGetRingId2().</description>
-+    <rc>RC_QMEC_TOR_GET_SINGLE_RING_ERROR</rc>
-+    <description>Code bug: Error with calling tor_get_single_ring().</description>
-     <ffdc>TARGET</ffdc>
-     <ffdc>API_RC</ffdc>
--    <ffdc>TOR_MAGIC</ffdc>
--    <ffdc>RING_INST_ID</ffdc>
--    <ffdc>INST_CASE</ffdc>
-+    <ffdc>DD_LEVEL</ffdc>
-     <ffdc>RING_ID</ffdc>
-+    <ffdc>CHIPLET_ID</ffdc>
-+    <ffdc>REM_BUF_SIZE</ffdc>
-     <callout>
-       <procedure>CODE</procedure>
-       <priority>HIGH</priority>
-@@ -108,14 +112,13 @@
-   </hwpError>
-   <!-- ********************************************************************* -->
-   <hwpError>
--    <rc>RC_QMEC_TOR_GET_SINGLE_RING_ERROR</rc>
--    <description>Code bug: Error with calling tor_get_single_ring().</description>
-+    <rc>RC_QMEC_TOR_APPEND_RING_ERROR</rc>
-+    <description>Code bug: Error with calling tor_append_ring().</description>
-     <ffdc>TARGET</ffdc>
-     <ffdc>API_RC</ffdc>
--    <ffdc>DD_LEVEL</ffdc>
-     <ffdc>RING_ID</ffdc>
--    <ffdc>CHIPLET_INST_ID</ffdc>
--    <ffdc>NEXT_RS4RING_BUF_SIZE</ffdc>
-+    <ffdc>CHIPLET_ID</ffdc>
-+    <ffdc>CUST_QME_RINGS_BUF_SIZE</ffdc>
-     <callout>
-       <procedure>CODE</procedure>
-       <priority>HIGH</priority>
-@@ -123,12 +126,11 @@
-   </hwpError>
-   <!-- ********************************************************************* -->
-   <hwpError>
--    <rc>RC_QMEC_TOR_APPEND_RING_ERROR</rc>
--    <description>Code bug: Error with calling tor_append_ring().</description>
-+    <rc>RC_QMEC_CODE_BUG</rc>
-+    <description>Code bug: Fix code!</description>
-     <ffdc>TARGET</ffdc>
-     <ffdc>API_RC</ffdc>
--    <ffdc>CUST_RINGS_BUF_SIZE</ffdc>
--    <ffdc>RING_ID</ffdc>
-+    <ffdc>OCCURRENCE</ffdc>
-     <callout>
-       <procedure>CODE</procedure>
-       <priority>HIGH</priority>
-diff --git a/src/import/chips/p10/utils/imageProcs/p10_ringId.H b/src/import/chips/p10/utils/imageProcs/p10_ringId.H
-index b11f806..c020959 100644
---- a/src/import/chips/p10/utils/imageProcs/p10_ringId.H
-+++ b/src/import/chips/p10/utils/imageProcs/p10_ringId.H
-@@ -54,7 +54,7 @@
- //   circumstances exist - coordinate with infrastructure team).
- // - To allow the MVPD group to expand without affecting the ringId sequence of
- //   the EKB rings, the beginning of the EKB ring group is pushed out to
--//   RINGID_START_EKB. **This feature is currently inactive!**
-+//   RINGID_START_EKB.
- //
- // p10_ring_properties.H
- // =====================
-@@ -118,15 +118,55 @@ enum Chiplets
- 
- const ChipletType_t QME_NUM_CHIPLETS = 1;
- 
--
- #include "p10_ring_properties.H"
- 
--static inline const char* ringid_get_ring_name(RingID i_id)
-+
-+//
-+// ringid_convert_ringId_to_ringIndex()
-+//
-+// This function converts the enum ringId to the contiguous ringIndex that
-+// we need for looking up ring metadata in the RING_PROPERTIES list.  Since
-+// we have a gap between the MVPD and EKB group of rings in the main enum
-+// ringId list, and since we cannot have a huge gap of empty entries in
-+// the RING_PROPERTIES list as that would be a waste of Seeprom space, we
-+// convert here the ringId into the ring properties (rp) index, rpIndex.
-+//
-+static inline const RingId_t  ringid_convert_ringId_to_rpIndex( RingId_t  i_ringId )
-+{
-+    if ( i_ringId >= RINGID_START_MVPD && i_ringId <= RINGID_END_MVPD )
-+    {
-+        return  i_ringId - RINGID_START_MVPD + RING_INDEX_START_MVPD;
-+    }
-+    else if ( i_ringId >= RINGID_START_EKB  && i_ringId <= RINGID_END_EKB )
-+    {
-+        return  i_ringId - RINGID_START_EKB + RING_INDEX_START_EKB;
-+    }
-+    else
-+    {
-+        return  UNDEFINED_RING_ID;
-+    }
-+}
-+
-+
-+static inline const char* ringid_get_ring_name(RingId_t i_ringId)
- {
- #ifdef __PPE__
-     return "";
- #else
--    return (i_id < NUM_RING_IDS) ? RING_PROPERTIES[i_id].ringName : "INVALID RING ID";
-+
-+    if ( i_ringId >= RINGID_START_MVPD && i_ringId <= RINGID_END_MVPD )
-+    {
-+        return RING_PROPERTIES[i_ringId - RINGID_START_MVPD + RING_INDEX_START_MVPD].ringName;
-+    }
-+    else if ( i_ringId >= RINGID_START_EKB  && i_ringId <= RINGID_END_EKB )
-+    {
-+        return RING_PROPERTIES[i_ringId - RINGID_START_EKB + RING_INDEX_START_EKB].ringName;
-+    }
-+    else
-+    {
-+        return "INVALID RING ID";
-+    }
-+
- #endif
- }
- 
-diff --git a/src/import/chips/p10/utils/imageProcs/p10_ring_id.H b/src/import/chips/p10/utils/imageProcs/p10_ring_id.H
-index 7577454..efe5d51 100644
---- a/src/import/chips/p10/utils/imageProcs/p10_ring_id.H
-+++ b/src/import/chips/p10/utils/imageProcs/p10_ring_id.H
-@@ -198,103 +198,103 @@ enum RingID
-     NUM_RING_IDS_MVPD        = 161,
- 
-     // EKB Rings:
--    perv_fure                = 161, //0xA1
--    sbe_fure                 = 162, //0xA2
--    occ_fure                 = 163, //0xA3
--    perv_dpll_func           = 164, //0xA4
--    perv_dpll_bndy           = 165, //0xA5
--    perv_dpll_time           = 166, //0xA6
--    perv_pll_func            = 167, //0xA7
--    perv_pll_bndy            = 168, //0xA8
--    n0_fure                  = 169, //0xA9
--    n1_fure                  = 170, //0xAA
--    n1_nmmu1_fure            = 171, //0xAB
--    pci_fure                 = 172, //0xAC
--    pci_pll_func             = 173, //0xAD
--    pci_pll_bndy             = 174, //0xAE
--    mc_fure                  = 175, //0xAF
--    mc_pll_func              = 176, //0xB0
--    mc_pll_bndy              = 177, //0xB1
--    mc_pll_bndy_bucket_0     = 178, //0xB2
--    mc_pll_bndy_bucket_1     = 179, //0xB3
--    mc_pll_bndy_bucket_2     = 180, //0xB4
--    mc_pll_bndy_bucket_3     = 181, //0xB5
--    mc_pll_bndy_bucket_4     = 182, //0xB6
--    pau0_fure                = 183, //0xB7
--    pau0_pau0_fure           = 184, //0xB8
--    pau1_fure                = 185, //0xB9
--    pau1_pau3_fure           = 186, //0xBA
--    pau2_fure                = 187, //0xBB
--    pau2_pau4_fure           = 188, //0xBC
--    pau2_pau5_fure           = 189, //0xBD
--    pau3_fure                = 190, //0xBE
--    pau3_pau6_fure           = 191, //0xBF
--    pau3_pau7_fure           = 192, //0xC0
--    iohs0_fure               = 193, //0xC1
--    iohs0_ndl_fure           = 194, //0xC2
--    iohs0_pdl_fure           = 195, //0xC3
--    iohs0_pll_func           = 196, //0xC4
--    iohs0_pll_bndy           = 197, //0xC5
--    iohs0_pll_bndy_bucket_0  = 198, //0xC6
--    iohs0_pll_bndy_bucket_1  = 199, //0xC7
--    iohs0_pll_bndy_bucket_2  = 200, //0xC8
--    iohs0_pll_bndy_bucket_3  = 201, //0xC9
--    iohs0_pll_bndy_bucket_4  = 202, //0xCA
--    iohs0_pll_bndy_bucket_5  = 203, //0xCB
--    iohs0_pll_bndy_bucket_6  = 204, //0xCC
--    iohs0_pll_bndy_bucket_7  = 205, //0xCD
--    iohs1_fure               = 206, //0xCE
--    iohs1_ndl_fure           = 207, //0xCF
--    iohs1_pdl_fure           = 208, //0xD0
--    iohs1_pll_func           = 209, //0xD1
--    iohs2_fure               = 210, //0xD2
--    iohs2_ndl_fure           = 211, //0xD3
--    iohs2_pdl_fure           = 212, //0xD4
--    iohs2_pll_func           = 213, //0xD5
--    iohs3_fure               = 214, //0xD6
--    iohs3_ndl_fure           = 215, //0xD7
--    iohs3_pdl_fure           = 216, //0xD8
--    iohs3_pll_func           = 217, //0xD9
--    iohs4_fure               = 218, //0xDA
--    iohs4_ndl_fure           = 219, //0xDB
--    iohs4_pdl_fure           = 220, //0xDC
--    iohs4_pll_func           = 221, //0xDD
--    iohs5_fure               = 222, //0xDE
--    iohs5_ndl_fure           = 223, //0xDF
--    iohs5_pdl_fure           = 224, //0xE0
--    iohs5_pll_func           = 225, //0xE1
--    iohs6_fure               = 226, //0xE2
--    iohs6_ndl_fure           = 227, //0xE3
--    iohs6_pdl_fure           = 228, //0xE4
--    iohs6_pll_func           = 229, //0xE5
--    iohs7_fure               = 230, //0xE6
--    iohs7_ndl_fure           = 231, //0xE7
--    iohs7_pdl_fure           = 232, //0xE8
--    iohs7_pll_func           = 233, //0xE9
--    eq_fure                  = 234, //0xEA
--    eq_cmsk                  = 235, //0xEB
--    eq_inex                  = 236, //0xEC
--    eq_mode                  = 237, //0xED
--    eq_clkadj_fure           = 238, //0xEE
--    eq_clkadj_cmsk           = 239, //0xEF
--    eq_clkadj_inex           = 240, //0xF0
--    eq_clkadj_mode           = 241, //0xF1
--    ec_cl2_fure              = 242, //0xF2
--    ec_cl2_cmsk              = 243, //0xF3
--    ec_cl2_inex              = 244, //0xF4
--    ec_cl2_mode              = 245, //0xF5
--    ec_mma_fure              = 246, //0xF6
--    ec_mma_cmsk              = 247, //0xF7
--    ec_mma_inex              = 248, //0xF8
--    ec_l3_fure               = 249, //0xF9
--    ec_l3_cmsk               = 250, //0xFA
--    ec_l3_inex               = 251, //0xFB
--    ec_l3_mode               = 252, //0xFC
--    n0_abst                  = 253, //0xFD
--    n1_abst                  = 254, //0xFE
--    n1_nmmu1_abst            = 255, //0xFF
--    ec_cl2_abst              = 256, //0x100
--    ec_mma_abst              = 257, //0x101
-+    perv_fure                = 256, //0x100
-+    sbe_fure                 = 257, //0x101
-+    occ_fure                 = 258, //0x102
-+    perv_dpll_func           = 259, //0x103
-+    perv_dpll_bndy           = 260, //0x104
-+    perv_dpll_time           = 261, //0x105
-+    perv_pll_func            = 262, //0x106
-+    perv_pll_bndy            = 263, //0x107
-+    n0_fure                  = 264, //0x108
-+    n1_fure                  = 265, //0x109
-+    n1_nmmu1_fure            = 266, //0x10A
-+    pci_fure                 = 267, //0x10B
-+    pci_pll_func             = 268, //0x10C
-+    pci_pll_bndy             = 269, //0x10D
-+    mc_fure                  = 270, //0x10E
-+    mc_pll_func              = 271, //0x10F
-+    mc_pll_bndy              = 272, //0x110
-+    mc_pll_bndy_bucket_0     = 273, //0x111
-+    mc_pll_bndy_bucket_1     = 274, //0x112
-+    mc_pll_bndy_bucket_2     = 275, //0x113
-+    mc_pll_bndy_bucket_3     = 276, //0x114
-+    mc_pll_bndy_bucket_4     = 277, //0x115
-+    pau0_fure                = 278, //0x116
-+    pau0_pau0_fure           = 279, //0x117
-+    pau1_fure                = 280, //0x118
-+    pau1_pau3_fure           = 281, //0x119
-+    pau2_fure                = 282, //0x11A
-+    pau2_pau4_fure           = 283, //0x11B
-+    pau2_pau5_fure           = 284, //0x11C
-+    pau3_fure                = 285, //0x11D
-+    pau3_pau6_fure           = 286, //0x11E
-+    pau3_pau7_fure           = 287, //0x11F
-+    iohs0_fure               = 288, //0x120
-+    iohs0_ndl_fure           = 289, //0x121
-+    iohs0_pdl_fure           = 290, //0x122
-+    iohs0_pll_func           = 291, //0x123
-+    iohs0_pll_bndy           = 292, //0x124
-+    iohs0_pll_bndy_bucket_0  = 293, //0x125
-+    iohs0_pll_bndy_bucket_1  = 294, //0x126
-+    iohs0_pll_bndy_bucket_2  = 295, //0x127
-+    iohs0_pll_bndy_bucket_3  = 296, //0x128
-+    iohs0_pll_bndy_bucket_4  = 297, //0x129
-+    iohs0_pll_bndy_bucket_5  = 298, //0x12A
-+    iohs0_pll_bndy_bucket_6  = 299, //0x12B
-+    iohs0_pll_bndy_bucket_7  = 300, //0x12C
-+    iohs1_fure               = 301, //0x12D
-+    iohs1_ndl_fure           = 302, //0x12E
-+    iohs1_pdl_fure           = 303, //0x12F
-+    iohs1_pll_func           = 304, //0x130
-+    iohs2_fure               = 305, //0x131
-+    iohs2_ndl_fure           = 306, //0x132
-+    iohs2_pdl_fure           = 307, //0x133
-+    iohs2_pll_func           = 308, //0x134
-+    iohs3_fure               = 309, //0x135
-+    iohs3_ndl_fure           = 310, //0x136
-+    iohs3_pdl_fure           = 311, //0x137
-+    iohs3_pll_func           = 312, //0x138
-+    iohs4_fure               = 313, //0x139
-+    iohs4_ndl_fure           = 314, //0x13A
-+    iohs4_pdl_fure           = 315, //0x13B
-+    iohs4_pll_func           = 316, //0x13C
-+    iohs5_fure               = 317, //0x13D
-+    iohs5_ndl_fure           = 318, //0x13E
-+    iohs5_pdl_fure           = 319, //0x13F
-+    iohs5_pll_func           = 320, //0x140
-+    iohs6_fure               = 321, //0x141
-+    iohs6_ndl_fure           = 322, //0x142
-+    iohs6_pdl_fure           = 323, //0x143
-+    iohs6_pll_func           = 324, //0x144
-+    iohs7_fure               = 325, //0x145
-+    iohs7_ndl_fure           = 326, //0x146
-+    iohs7_pdl_fure           = 327, //0x147
-+    iohs7_pll_func           = 328, //0x148
-+    eq_fure                  = 329, //0x149
-+    eq_cmsk                  = 330, //0x14A
-+    eq_inex                  = 331, //0x14B
-+    eq_mode                  = 332, //0x14C
-+    eq_clkadj_fure           = 333, //0x14D
-+    eq_clkadj_cmsk           = 334, //0x14E
-+    eq_clkadj_inex           = 335, //0x14F
-+    eq_clkadj_mode           = 336, //0x150
-+    ec_cl2_fure              = 337, //0x151
-+    ec_cl2_cmsk              = 338, //0x152
-+    ec_cl2_inex              = 339, //0x153
-+    ec_cl2_mode              = 340, //0x154
-+    ec_mma_fure              = 341, //0x155
-+    ec_mma_cmsk              = 342, //0x156
-+    ec_mma_inex              = 343, //0x157
-+    ec_l3_fure               = 344, //0x158
-+    ec_l3_cmsk               = 345, //0x159
-+    ec_l3_inex               = 346, //0x15A
-+    ec_l3_mode               = 347, //0x15B
-+    n0_abst                  = 348, //0x15C
-+    n1_abst                  = 349, //0x15D
-+    n1_nmmu1_abst            = 350, //0x15E
-+    ec_cl2_abst              = 351, //0x15F
-+    ec_mma_abst              = 352, //0x160
-     NUM_RING_IDS_EKB         = 97,
- 
-     NUM_RING_IDS             = 258, // = NUM_RING_IDS_MVPD + NUM_RING_IDS_EKB
-diff --git a/src/import/chips/p10/utils/imageProcs/p10_ring_properties.H b/src/import/chips/p10/utils/imageProcs/p10_ring_properties.H
-index 63e39f1..514eb68 100644
---- a/src/import/chips/p10/utils/imageProcs/p10_ring_properties.H
-+++ b/src/import/chips/p10/utils/imageProcs/p10_ring_properties.H
-@@ -26,11 +26,20 @@
- #define _P10_RING_PROPERTIES_H_
- 
- static const uint8_t RING_TABLE_VERSION_DOC = 22;
--static const uint8_t RING_TABLE_VERSION_MVPD = 21;
--static const uint8_t RING_TABLE_VERSION_EKB = 21;
-+static const uint8_t RING_TABLE_VERSION_MVPD = 22;
-+static const uint8_t RING_TABLE_VERSION_EKB = 22;
- 
-+// RingID values where the MVPD and EKB rings' enum values start
-+// (Used in p10_ring_id.H)
- #define RINGID_START_MVPD  (RingId_t)0
--#define RINGID_START_EKB   (RingId_t)161
-+#define RINGID_END_MVPD    (RingId_t)160
-+#define RINGID_START_EKB   (RingId_t)256
-+#define RINGID_END_EKB     (RingId_t)352
-+
-+// Ring indices where the MVPD and EKB rings' metadata start
-+// (Used in p10_ring_properties.H (This file))
-+#define RING_INDEX_START_MVPD  (RingId_t)0
-+#define RING_INDEX_START_EKB   (RingId_t)161
- 
- namespace PERV
- {
-@@ -600,266 +609,266 @@ static const ChipletData_t g_chipletData =
- static const RingProperties_t RING_PROPERTIES[NUM_RING_IDS] =
- {
-     // MVPD Rings:
--    {"perv_occ_gptr"           , 0x01034902, PERV::perv_occ_gptr           , PERV_TYPE , RMRK_ROOT | RCLS_EKB_MVPD_PDG_OVLY                     }, // 0
--    {"perv_occ_repr"           , 0x01034906, PERV::perv_occ_repr           , PERV_TYPE , RMRK_ROOT | RCLS_MVPD_PDR_NEST                         }, // 1
--    {"perv_occ_time"           , 0x01034907, PERV::perv_occ_time           , PERV_TYPE , RMRK_ROOT | RCLS_MVPD_PDG_TIME                         }, // 2
--    {"pib_repr"                , 0x01031006, PERV::pib_repr                , PERV_TYPE , RMRK_ROOT | RCLS_MVPD_PDR_NEST                         }, // 3
--    {"sbe_gptr"                , 0x01032002, PERV::sbe_gptr                , PERV_TYPE , RMRK_ROOT | RCLS_EKB_MVPD_PDG_OVLY                     }, // 4
--    {"sbe_repr"                , 0x01032006, PERV::sbe_repr                , PERV_TYPE , RMRK_ROOT | RCLS_MVPD_PDR_NEST                         }, // 5
--    {"sbe_time"                , 0x01032007, PERV::sbe_time                , PERV_TYPE , RMRK_ROOT | RCLS_MVPD_PDG_TIME                         }, // 6
--    {"invalid"                 , UNDEFINED_SCOM_ADDR, UNDEFINED_RING_INDEX          , UNDEFINED_CHIPLET_TYPE, UNDEFINED_RING_CLASS                                 }, // 7
--    {"perv_dpll_gptr"          , 0x01030062, PERV::perv_dpll_gptr          , PERV_TYPE , RMRK_ROOT | RCLS_EKB_MVPD_PDG_OVLY                     }, // 8
--    {"perv_pll_gptr"           , 0x01030012, PERV::perv_pll_gptr           , PERV_TYPE , RMRK_ROOT | RCLS_EKB_MVPD_PDG_OVLY                     }, // 9
--    {"n0_gptr"                 , 0x02036402, N0::n0_gptr                   , N0_TYPE   , RMRK_ROOT | RCLS_EKB_MVPD_PDG_OVLY                     }, // 10
--    {"n0_repr"                 , 0x02036406, N0::n0_repr                   , N0_TYPE   , RMRK_ROOT | RCLS_MVPD_PDR_NEST                         }, // 11
--    {"n0_time"                 , 0x02036407, N0::n0_time                   , N0_TYPE   , RMRK_ROOT | RCLS_MVPD_PDG_TIME                         }, // 12
--    {"n1_gptr"                 , 0x03035402, N1::n1_gptr                   , N1_TYPE   , RMRK_ROOT | RCLS_EKB_MVPD_PDG_OVLY                     }, // 13
--    {"n1_repr"                 , 0x03035406, N1::n1_repr                   , N1_TYPE   , RMRK_ROOT | RCLS_MVPD_PDR_NEST                         }, // 14
--    {"n1_time"                 , 0x03035407, N1::n1_time                   , N1_TYPE   , RMRK_ROOT | RCLS_MVPD_PDG_TIME                         }, // 15
--    {"n1_nmmu1_gptr"           , 0x03030202, N1::n1_nmmu1_gptr             , N1_TYPE   , RMRK_ROOT | RCLS_EKB_MVPD_PDG_OVLY                     }, // 16
--    {"n1_nmmu1_repr"           , 0x03030206, N1::n1_nmmu1_repr             , N1_TYPE   , RMRK_ROOT | RCLS_MVPD_PDR_NEST                         }, // 17
--    {"n1_nmmu1_time"           , 0x03030207, N1::n1_nmmu1_time             , N1_TYPE   , RMRK_ROOT | RCLS_MVPD_PDG_TIME                         }, // 18
--    {"pci_gptr"                , 0x08037F82, PCI::pci_gptr                 , PCI_TYPE  , RMRK_ROOT | RCLS_EKB_MVPD_PDG_OVLY                     }, // 19
--    {"pci_repr"                , 0x08037F86, PCI::pci_repr                 , PCI_TYPE  , RMRK_ROOT | RCLS_MVPD_PDR_NEST                         }, // 20
--    {"pci_time"                , 0x08037F87, PCI::pci_time                 , PCI_TYPE  , RMRK_ROOT | RCLS_MVPD_PDG_TIME                         }, // 21
--    {"pci_pll_gptr"            , 0x08030012, PCI::pci_pll_gptr             , PCI_TYPE  , RMRK_ROOT | RCLS_EKB_MVPD_PDG_OVLY                     }, // 22
--    {"mc_gptr"                 , 0x0C036F02, MC::mc_gptr                   , MC_TYPE   , RMRK_ROOT | RCLS_EKB_MVPD_PDG_OVLY                     }, // 23
--    {"mc_repr"                 , 0x0C036F06, MC::mc_repr                   , MC_TYPE   , RMRK_ROOT | RCLS_MVPD_PDR_NEST                         }, // 24
--    {"mc_time"                 , 0x0C036F07, MC::mc_time                   , MC_TYPE   , RMRK_ROOT | RCLS_MVPD_PDG_TIME                         }, // 25
--    {"mc_pll_gptr"             , 0x0C030012, MC::mc_pll_gptr               , MC_TYPE   , RMRK_ROOT | RCLS_EKB_MVPD_PDG_OVLY                     }, // 26
--    {"pau0_gptr"               , 0x10034302, PAU0::pau0_gptr               , PAU0_TYPE , RMRK_ROOT | RCLS_EKB_MVPD_PDG_OVLY                     }, // 27
--    {"pau0_repr"               , 0x10034306, PAU0::pau0_repr               , PAU0_TYPE , RMRK_ROOT | RCLS_MVPD_PDR_NEST                         }, // 28
--    {"pau0_time"               , 0x10034307, PAU0::pau0_time               , PAU0_TYPE , RMRK_ROOT | RCLS_MVPD_PDG_TIME                         }, // 29
--    {"pau0_pau0_gptr"          , 0x10032002, PAU0::pau0_pau0_gptr          , PAU0_TYPE , RMRK_ROOT | RCLS_EKB_MVPD_PDG_OVLY                     }, // 30
--    {"pau0_pau0_repr"          , 0x10032006, PAU0::pau0_pau0_repr          , PAU0_TYPE , RMRK_ROOT | RCLS_MVPD_PDR_NEST                         }, // 31
--    {"pau0_pau0_time"          , 0x10032007, PAU0::pau0_pau0_time          , PAU0_TYPE , RMRK_ROOT | RCLS_MVPD_PDG_TIME                         }, // 32
--    {"pau1_gptr"               , 0x11034302, PAU1::pau1_gptr               , PAU1_TYPE , RMRK_ROOT | RCLS_EKB_MVPD_PDG_OVLY                     }, // 33
--    {"pau1_repr"               , 0x11034306, PAU1::pau1_repr               , PAU1_TYPE , RMRK_ROOT | RCLS_MVPD_PDR_NEST                         }, // 34
--    {"pau1_time"               , 0x11034307, PAU1::pau1_time               , PAU1_TYPE , RMRK_ROOT | RCLS_MVPD_PDG_TIME                         }, // 35
--    {"pau1_pau3_gptr"          , 0x11032002, PAU1::pau1_pau3_gptr          , PAU1_TYPE , RMRK_ROOT | RCLS_EKB_MVPD_PDG_OVLY                     }, // 36
--    {"pau1_pau3_repr"          , 0x11032006, PAU1::pau1_pau3_repr          , PAU1_TYPE , RMRK_ROOT | RCLS_MVPD_PDR_NEST                         }, // 37
--    {"pau1_pau3_time"          , 0x11032007, PAU1::pau1_pau3_time          , PAU1_TYPE , RMRK_ROOT | RCLS_MVPD_PDG_TIME                         }, // 38
--    {"pau2_gptr"               , 0x12034302, PAU2::pau2_gptr               , PAU2_TYPE , RMRK_ROOT | RCLS_EKB_MVPD_PDG_OVLY                     }, // 39
--    {"pau2_repr"               , 0x12034306, PAU2::pau2_repr               , PAU2_TYPE , RMRK_ROOT | RCLS_MVPD_PDR_NEST                         }, // 40
--    {"pau2_time"               , 0x12034307, PAU2::pau2_time               , PAU2_TYPE , RMRK_ROOT | RCLS_MVPD_PDG_TIME                         }, // 41
--    {"pau2_pau4_gptr"          , 0x12032002, PAU2::pau2_pau4_gptr          , PAU2_TYPE , RMRK_ROOT | RCLS_EKB_MVPD_PDG_OVLY                     }, // 42
--    {"pau2_pau4_repr"          , 0x12032006, PAU2::pau2_pau4_repr          , PAU2_TYPE , RMRK_ROOT | RCLS_MVPD_PDR_NEST                         }, // 43
--    {"pau2_pau4_time"          , 0x12032007, PAU2::pau2_pau4_time          , PAU2_TYPE , RMRK_ROOT | RCLS_MVPD_PDG_TIME                         }, // 44
--    {"pau2_pau5_gptr"          , 0x12031002, PAU2::pau2_pau5_gptr          , PAU2_TYPE , RMRK_ROOT | RCLS_EKB_MVPD_PDG_OVLY                     }, // 45
--    {"pau2_pau5_repr"          , 0x12031006, PAU2::pau2_pau5_repr          , PAU2_TYPE , RMRK_ROOT | RCLS_MVPD_PDR_NEST                         }, // 46
--    {"pau2_pau5_time"          , 0x12031007, PAU2::pau2_pau5_time          , PAU2_TYPE , RMRK_ROOT | RCLS_MVPD_PDG_TIME                         }, // 47
--    {"pau3_gptr"               , 0x13034302, PAU3::pau3_gptr               , PAU3_TYPE , RMRK_ROOT | RCLS_EKB_MVPD_PDG_OVLY                     }, // 48
--    {"pau3_repr"               , 0x13034306, PAU3::pau3_repr               , PAU3_TYPE , RMRK_ROOT | RCLS_MVPD_PDR_NEST                         }, // 49
--    {"pau3_time"               , 0x13034307, PAU3::pau3_time               , PAU3_TYPE , RMRK_ROOT | RCLS_MVPD_PDG_TIME                         }, // 50
--    {"pau3_pau6_gptr"          , 0x13032002, PAU3::pau3_pau6_gptr          , PAU3_TYPE , RMRK_ROOT | RCLS_EKB_MVPD_PDG_OVLY                     }, // 51
--    {"pau3_pau6_repr"          , 0x13032006, PAU3::pau3_pau6_repr          , PAU3_TYPE , RMRK_ROOT | RCLS_MVPD_PDR_NEST                         }, // 52
--    {"pau3_pau6_time"          , 0x13032007, PAU3::pau3_pau6_time          , PAU3_TYPE , RMRK_ROOT | RCLS_MVPD_PDG_TIME                         }, // 53
--    {"pau3_pau7_gptr"          , 0x13031002, PAU3::pau3_pau7_gptr          , PAU3_TYPE , RMRK_ROOT | RCLS_EKB_MVPD_PDG_OVLY                     }, // 54
--    {"pau3_pau7_repr"          , 0x13031006, PAU3::pau3_pau7_repr          , PAU3_TYPE , RMRK_ROOT | RCLS_MVPD_PDR_NEST                         }, // 55
--    {"pau3_pau7_time"          , 0x13031007, PAU3::pau3_pau7_time          , PAU3_TYPE , RMRK_ROOT | RCLS_MVPD_PDG_TIME                         }, // 56
--    {"iohs0_gptr"              , 0x18036002, AXON0::iohs0_gptr             , AXON0_TYPE, RMRK_ROOT | RCLS_EKB_MVPD_PDG_OVLY                     }, // 57
--    {"iohs0_repr"              , 0x18036006, AXON0::iohs0_repr             , AXON0_TYPE, RMRK_ROOT | RCLS_MVPD_PDR_NEST                         }, // 58
--    {"iohs0_time"              , 0x18036007, AXON0::iohs0_time             , AXON0_TYPE, RMRK_ROOT | RCLS_MVPD_PDG_TIME                         }, // 59
--    {"iohs0_ndl_gptr"          , 0x18030402, AXON0::iohs0_ndl_gptr         , AXON0_TYPE, RMRK_ROOT | RCLS_EKB_MVPD_PDG_OVLY                     }, // 60
--    {"iohs0_ndl_repr"          , 0x18030406, AXON0::iohs0_ndl_repr         , AXON0_TYPE, RMRK_ROOT | RCLS_MVPD_PDR_NEST                         }, // 61
--    {"iohs0_ndl_time"          , 0x18030407, AXON0::iohs0_ndl_time         , AXON0_TYPE, RMRK_ROOT | RCLS_MVPD_PDG_TIME                         }, // 62
--    {"iohs0_pdl_gptr"          , 0x18030202, AXON0::iohs0_pdl_gptr         , AXON0_TYPE, RMRK_ROOT | RCLS_EKB_MVPD_PDG_OVLY                     }, // 63
--    {"iohs0_pdl_repr"          , 0x18030206, AXON0::iohs0_pdl_repr         , AXON0_TYPE, RMRK_ROOT | RCLS_MVPD_PDR_NEST                         }, // 64
--    {"iohs0_pdl_time"          , 0x18030207, AXON0::iohs0_pdl_time         , AXON0_TYPE, RMRK_ROOT | RCLS_MVPD_PDG_TIME                         }, // 65
--    {"iohs0_pll_gptr"          , 0x18030012, AXON0::iohs0_pll_gptr         , AXON0_TYPE, RMRK_ROOT | RCLS_EKB_MVPD_PDG_OVLY                     }, // 66
--    {"iohs1_gptr"              , 0x19036002, AXON1::iohs1_gptr             , AXON1_TYPE, RMRK_ROOT | RCLS_EKB_MVPD_PDG_OVLY                     }, // 67
--    {"iohs1_repr"              , 0x19036006, AXON1::iohs1_repr             , AXON1_TYPE, RMRK_ROOT | RCLS_MVPD_PDR_NEST                         }, // 68
--    {"iohs1_time"              , 0x19036007, AXON1::iohs1_time             , AXON1_TYPE, RMRK_ROOT | RCLS_MVPD_PDG_TIME                         }, // 69
--    {"iohs1_ndl_gptr"          , 0x19030402, AXON1::iohs1_ndl_gptr         , AXON1_TYPE, RMRK_ROOT | RCLS_EKB_MVPD_PDG_OVLY                     }, // 70
--    {"iohs1_ndl_repr"          , 0x19030406, AXON1::iohs1_ndl_repr         , AXON1_TYPE, RMRK_ROOT | RCLS_MVPD_PDR_NEST                         }, // 71
--    {"iohs1_ndl_time"          , 0x19030407, AXON1::iohs1_ndl_time         , AXON1_TYPE, RMRK_ROOT | RCLS_MVPD_PDG_TIME                         }, // 72
--    {"iohs1_pdl_gptr"          , 0x19030202, AXON1::iohs1_pdl_gptr         , AXON1_TYPE, RMRK_ROOT | RCLS_EKB_MVPD_PDG_OVLY                     }, // 73
--    {"iohs1_pdl_repr"          , 0x19030206, AXON1::iohs1_pdl_repr         , AXON1_TYPE, RMRK_ROOT | RCLS_MVPD_PDR_NEST                         }, // 74
--    {"iohs1_pdl_time"          , 0x19030207, AXON1::iohs1_pdl_time         , AXON1_TYPE, RMRK_ROOT | RCLS_MVPD_PDG_TIME                         }, // 75
--    {"iohs1_pll_gptr"          , 0x19030012, AXON1::iohs1_pll_gptr         , AXON1_TYPE, RMRK_ROOT | RCLS_EKB_MVPD_PDG_OVLY                     }, // 76
--    {"iohs2_gptr"              , 0x1A036002, AXON2::iohs2_gptr             , AXON2_TYPE, RMRK_ROOT | RCLS_EKB_MVPD_PDG_OVLY                     }, // 77
--    {"iohs2_repr"              , 0x1A036006, AXON2::iohs2_repr             , AXON2_TYPE, RMRK_ROOT | RCLS_MVPD_PDR_NEST                         }, // 78
--    {"iohs2_time"              , 0x1A036007, AXON2::iohs2_time             , AXON2_TYPE, RMRK_ROOT | RCLS_MVPD_PDG_TIME                         }, // 79
--    {"iohs2_ndl_gptr"          , 0x1A030402, AXON2::iohs2_ndl_gptr         , AXON2_TYPE, RMRK_ROOT | RCLS_EKB_MVPD_PDG_OVLY                     }, // 80
--    {"iohs2_ndl_repr"          , 0x1A030406, AXON2::iohs2_ndl_repr         , AXON2_TYPE, RMRK_ROOT | RCLS_MVPD_PDR_NEST                         }, // 81
--    {"iohs2_ndl_time"          , 0x1A030407, AXON2::iohs2_ndl_time         , AXON2_TYPE, RMRK_ROOT | RCLS_MVPD_PDG_TIME                         }, // 82
--    {"iohs2_pdl_gptr"          , 0x1A030202, AXON2::iohs2_pdl_gptr         , AXON2_TYPE, RMRK_ROOT | RCLS_EKB_MVPD_PDG_OVLY                     }, // 83
--    {"iohs2_pdl_repr"          , 0x1A030206, AXON2::iohs2_pdl_repr         , AXON2_TYPE, RMRK_ROOT | RCLS_MVPD_PDR_NEST                         }, // 84
--    {"iohs2_pdl_time"          , 0x1A030207, AXON2::iohs2_pdl_time         , AXON2_TYPE, RMRK_ROOT | RCLS_MVPD_PDG_TIME                         }, // 85
--    {"iohs2_pll_gptr"          , 0x1A030012, AXON2::iohs2_pll_gptr         , AXON2_TYPE, RMRK_ROOT | RCLS_EKB_MVPD_PDG_OVLY                     }, // 86
--    {"iohs3_gptr"              , 0x1B036002, AXON3::iohs3_gptr             , AXON3_TYPE, RMRK_ROOT | RCLS_EKB_MVPD_PDG_OVLY                     }, // 87
--    {"iohs3_repr"              , 0x1B036006, AXON3::iohs3_repr             , AXON3_TYPE, RMRK_ROOT | RCLS_MVPD_PDR_NEST                         }, // 88
--    {"iohs3_time"              , 0x1B036007, AXON3::iohs3_time             , AXON3_TYPE, RMRK_ROOT | RCLS_MVPD_PDG_TIME                         }, // 89
--    {"iohs3_ndl_gptr"          , 0x1B030402, AXON3::iohs3_ndl_gptr         , AXON3_TYPE, RMRK_ROOT | RCLS_EKB_MVPD_PDG_OVLY                     }, // 90
--    {"iohs3_ndl_repr"          , 0x1B030406, AXON3::iohs3_ndl_repr         , AXON3_TYPE, RMRK_ROOT | RCLS_MVPD_PDR_NEST                         }, // 91
--    {"iohs3_ndl_time"          , 0x1B030407, AXON3::iohs3_ndl_time         , AXON3_TYPE, RMRK_ROOT | RCLS_MVPD_PDG_TIME                         }, // 92
--    {"iohs3_pdl_gptr"          , 0x1B030202, AXON3::iohs3_pdl_gptr         , AXON3_TYPE, RMRK_ROOT | RCLS_EKB_MVPD_PDG_OVLY                     }, // 93
--    {"iohs3_pdl_repr"          , 0x1B030206, AXON3::iohs3_pdl_repr         , AXON3_TYPE, RMRK_ROOT | RCLS_MVPD_PDR_NEST                         }, // 94
--    {"iohs3_pdl_time"          , 0x1B030207, AXON3::iohs3_pdl_time         , AXON3_TYPE, RMRK_ROOT | RCLS_MVPD_PDG_TIME                         }, // 95
--    {"iohs3_pll_gptr"          , 0x1B030012, AXON3::iohs3_pll_gptr         , AXON3_TYPE, RMRK_ROOT | RCLS_EKB_MVPD_PDG_OVLY                     }, // 96
--    {"iohs4_gptr"              , 0x1C036002, AXON4::iohs4_gptr             , AXON4_TYPE, RMRK_ROOT | RCLS_EKB_MVPD_PDG_OVLY                     }, // 97
--    {"iohs4_repr"              , 0x1C036006, AXON4::iohs4_repr             , AXON4_TYPE, RMRK_ROOT | RCLS_MVPD_PDR_NEST                         }, // 98
--    {"iohs4_time"              , 0x1C036007, AXON4::iohs4_time             , AXON4_TYPE, RMRK_ROOT | RCLS_MVPD_PDG_TIME                         }, // 99
--    {"iohs4_ndl_gptr"          , 0x1C030402, AXON4::iohs4_ndl_gptr         , AXON4_TYPE, RMRK_ROOT | RCLS_EKB_MVPD_PDG_OVLY                     }, // 100
--    {"iohs4_ndl_repr"          , 0x1C030406, AXON4::iohs4_ndl_repr         , AXON4_TYPE, RMRK_ROOT | RCLS_MVPD_PDR_NEST                         }, // 101
--    {"iohs4_ndl_time"          , 0x1C030407, AXON4::iohs4_ndl_time         , AXON4_TYPE, RMRK_ROOT | RCLS_MVPD_PDG_TIME                         }, // 102
--    {"iohs4_pdl_gptr"          , 0x1C030202, AXON4::iohs4_pdl_gptr         , AXON4_TYPE, RMRK_ROOT | RCLS_EKB_MVPD_PDG_OVLY                     }, // 103
--    {"iohs4_pdl_repr"          , 0x1C030206, AXON4::iohs4_pdl_repr         , AXON4_TYPE, RMRK_ROOT | RCLS_MVPD_PDR_NEST                         }, // 104
--    {"iohs4_pdl_time"          , 0x1C030207, AXON4::iohs4_pdl_time         , AXON4_TYPE, RMRK_ROOT | RCLS_MVPD_PDG_TIME                         }, // 105
--    {"iohs4_pll_gptr"          , 0x1C030012, AXON4::iohs4_pll_gptr         , AXON4_TYPE, RMRK_ROOT | RCLS_EKB_MVPD_PDG_OVLY                     }, // 106
--    {"iohs5_gptr"              , 0x1D036002, AXON5::iohs5_gptr             , AXON5_TYPE, RMRK_ROOT | RCLS_EKB_MVPD_PDG_OVLY                     }, // 107
--    {"iohs5_repr"              , 0x1D036006, AXON5::iohs5_repr             , AXON5_TYPE, RMRK_ROOT | RCLS_MVPD_PDR_NEST                         }, // 108
--    {"iohs5_time"              , 0x1D036007, AXON5::iohs5_time             , AXON5_TYPE, RMRK_ROOT | RCLS_MVPD_PDG_TIME                         }, // 109
--    {"iohs5_ndl_gptr"          , 0x1D030402, AXON5::iohs5_ndl_gptr         , AXON5_TYPE, RMRK_ROOT | RCLS_EKB_MVPD_PDG_OVLY                     }, // 110
--    {"iohs5_ndl_repr"          , 0x1D030406, AXON5::iohs5_ndl_repr         , AXON5_TYPE, RMRK_ROOT | RCLS_MVPD_PDR_NEST                         }, // 111
--    {"iohs5_ndl_time"          , 0x1D030407, AXON5::iohs5_ndl_time         , AXON5_TYPE, RMRK_ROOT | RCLS_MVPD_PDG_TIME                         }, // 112
--    {"iohs5_pdl_gptr"          , 0x1D030202, AXON5::iohs5_pdl_gptr         , AXON5_TYPE, RMRK_ROOT | RCLS_EKB_MVPD_PDG_OVLY                     }, // 113
--    {"iohs5_pdl_repr"          , 0x1D030206, AXON5::iohs5_pdl_repr         , AXON5_TYPE, RMRK_ROOT | RCLS_MVPD_PDR_NEST                         }, // 114
--    {"iohs5_pdl_time"          , 0x1D030207, AXON5::iohs5_pdl_time         , AXON5_TYPE, RMRK_ROOT | RCLS_MVPD_PDG_TIME                         }, // 115
--    {"iohs5_pll_gptr"          , 0x1D030012, AXON5::iohs5_pll_gptr         , AXON5_TYPE, RMRK_ROOT | RCLS_EKB_MVPD_PDG_OVLY                     }, // 116
--    {"iohs6_gptr"              , 0x1E036002, AXON6::iohs6_gptr             , AXON6_TYPE, RMRK_ROOT | RCLS_EKB_MVPD_PDG_OVLY                     }, // 117
--    {"iohs6_repr"              , 0x1E036006, AXON6::iohs6_repr             , AXON6_TYPE, RMRK_ROOT | RCLS_MVPD_PDR_NEST                         }, // 118
--    {"iohs6_time"              , 0x1E036007, AXON6::iohs6_time             , AXON6_TYPE, RMRK_ROOT | RCLS_MVPD_PDG_TIME                         }, // 119
--    {"iohs6_ndl_gptr"          , 0x1E030402, AXON6::iohs6_ndl_gptr         , AXON6_TYPE, RMRK_ROOT | RCLS_EKB_MVPD_PDG_OVLY                     }, // 120
--    {"iohs6_ndl_repr"          , 0x1E030406, AXON6::iohs6_ndl_repr         , AXON6_TYPE, RMRK_ROOT | RCLS_MVPD_PDR_NEST                         }, // 121
--    {"iohs6_ndl_time"          , 0x1E030407, AXON6::iohs6_ndl_time         , AXON6_TYPE, RMRK_ROOT | RCLS_MVPD_PDG_TIME                         }, // 122
--    {"iohs6_pdl_gptr"          , 0x1E030202, AXON6::iohs6_pdl_gptr         , AXON6_TYPE, RMRK_ROOT | RCLS_EKB_MVPD_PDG_OVLY                     }, // 123
--    {"iohs6_pdl_repr"          , 0x1E030206, AXON6::iohs6_pdl_repr         , AXON6_TYPE, RMRK_ROOT | RCLS_MVPD_PDR_NEST                         }, // 124
--    {"iohs6_pdl_time"          , 0x1E030207, AXON6::iohs6_pdl_time         , AXON6_TYPE, RMRK_ROOT | RCLS_MVPD_PDG_TIME                         }, // 125
--    {"iohs6_pll_gptr"          , 0x1E030012, AXON6::iohs6_pll_gptr         , AXON6_TYPE, RMRK_ROOT | RCLS_EKB_MVPD_PDG_OVLY                     }, // 126
--    {"iohs7_gptr"              , 0x1F036002, AXON7::iohs7_gptr             , AXON7_TYPE, RMRK_ROOT | RCLS_EKB_MVPD_PDG_OVLY                     }, // 127
--    {"iohs7_repr"              , 0x1F036006, AXON7::iohs7_repr             , AXON7_TYPE, RMRK_ROOT | RCLS_MVPD_PDR_NEST                         }, // 128
--    {"iohs7_time"              , 0x1F036007, AXON7::iohs7_time             , AXON7_TYPE, RMRK_ROOT | RCLS_MVPD_PDG_TIME                         }, // 129
--    {"iohs7_ndl_gptr"          , 0x1F030402, AXON7::iohs7_ndl_gptr         , AXON7_TYPE, RMRK_ROOT | RCLS_EKB_MVPD_PDG_OVLY                     }, // 130
--    {"iohs7_ndl_repr"          , 0x1F030406, AXON7::iohs7_ndl_repr         , AXON7_TYPE, RMRK_ROOT | RCLS_MVPD_PDR_NEST                         }, // 131
--    {"iohs7_ndl_time"          , 0x1F030407, AXON7::iohs7_ndl_time         , AXON7_TYPE, RMRK_ROOT | RCLS_MVPD_PDG_TIME                         }, // 132
--    {"iohs7_pdl_gptr"          , 0x1F030202, AXON7::iohs7_pdl_gptr         , AXON7_TYPE, RMRK_ROOT | RCLS_EKB_MVPD_PDG_OVLY                     }, // 133
--    {"iohs7_pdl_repr"          , 0x1F030206, AXON7::iohs7_pdl_repr         , AXON7_TYPE, RMRK_ROOT | RCLS_MVPD_PDR_NEST                         }, // 134
--    {"iohs7_pdl_time"          , 0x1F030207, AXON7::iohs7_pdl_time         , AXON7_TYPE, RMRK_ROOT | RCLS_MVPD_PDG_TIME                         }, // 135
--    {"iohs7_pll_gptr"          , 0x1F030012, AXON7::iohs7_pll_gptr         , AXON7_TYPE, RMRK_ROOT | RCLS_EKB_MVPD_PDG_OVLY                     }, // 136
--    {"eq_gptr"                 , 0x20034022, EQ::eq_gptr                   , EQ_TYPE   , RMRK_ROOT | RCLS_EKB_MVPD_PDG_OVLY                     }, // 137
--    {"eq_repr"                 , 0x20034026, EQ::eq_repr                   , EQ_TYPE   , RMRK_ROOT | RCLS_MVPD_PDR_EQ                           }, // 138
--    {"eq_time"                 , 0x20034027, EQ::eq_time                   , EQ_TYPE   , RMRK_ROOT | RCLS_MVPD_PDG_TIME                         }, // 139
--    {"eq_clkadj_gptr"          , 0x20030012, EQ::eq_clkadj_gptr            , EQ_TYPE   , RMRK_ROOT | RCLS_EKB_MVPD_PDG_OVLY                     }, // 140
--    {"eq_clkadj_repr"          , 0x20030016, EQ::eq_clkadj_repr            , EQ_TYPE   , RMRK_ROOT | RCLS_MVPD_PDR_EQ                           }, // 141
--    {"eq_clkadj_time"          , 0x20030017, EQ::eq_clkadj_time            , EQ_TYPE   , RMRK_ROOT | RCLS_MVPD_PDG_TIME                         }, // 142
--    {"ec_cl2_gptr"             , 0x20032002, EQ::ec_cl2_gptr               , EQ_TYPE   , RMRK_ROOT | RCLS_EKB_MVPD_PDG_OVLY | RMRK_SCAN_BY_QME    }, // 143
--    {"ec_cl2_repr"             , 0x20032006, EQ::ec_cl2_repr               , EQ_TYPE   , RMRK_ROOT | RCLS_MVPD_PDR_CORE | RMRK_SCAN_BY_QME        }, // 144
--    {"ec_cl2_time"             , 0x20032007, EQ::ec_cl2_time               , EQ_TYPE   , RMRK_ROOT | RCLS_MVPD_PDG_TIME | RMRK_SCAN_BY_QME        }, // 145
--    {"ec1_cl2_repr"            , 0x20031006, EQ::ec1_cl2_repr              , EQ_TYPE   , RMRK_ROOT | RCLS_MVPD_PDR_CORE | RMRK_SCAN_BY_QME        }, // 146
--    {"ec2_cl2_repr"            , 0x20030806, EQ::ec2_cl2_repr              , EQ_TYPE   , RMRK_ROOT | RCLS_MVPD_PDR_CORE | RMRK_SCAN_BY_QME        }, // 147
--    {"ec3_cl2_repr"            , 0x20030406, EQ::ec3_cl2_repr              , EQ_TYPE   , RMRK_ROOT | RCLS_MVPD_PDR_CORE | RMRK_SCAN_BY_QME        }, // 148
--    {"ec_mma_gptr"             , 0x20830002, EQ::ec_mma_gptr               , EQ_TYPE   , RMRK_ROOT | RCLS_EKB_MVPD_PDG_OVLY | RMRK_SCAN_BY_QME    }, // 149
--    {"ec_mma_repr"             , 0x20830006, EQ::ec_mma_repr               , EQ_TYPE   , RMRK_ROOT | RCLS_MVPD_PDR_CORE | RMRK_SCAN_BY_QME        }, // 150
--    {"ec_mma_time"             , 0x20830007, EQ::ec_mma_time               , EQ_TYPE   , RMRK_ROOT | RCLS_MVPD_PDG_TIME | RMRK_SCAN_BY_QME        }, // 151
--    {"ec1_mma_repr"            , 0x20430006, EQ::ec1_mma_repr              , EQ_TYPE   , RMRK_ROOT | RCLS_MVPD_PDR_CORE | RMRK_SCAN_BY_QME        }, // 152
--    {"ec2_mma_repr"            , 0x20230006, EQ::ec2_mma_repr              , EQ_TYPE   , RMRK_ROOT | RCLS_MVPD_PDR_CORE | RMRK_SCAN_BY_QME        }, // 153
--    {"ec3_mma_repr"            , 0x20130006, EQ::ec3_mma_repr              , EQ_TYPE   , RMRK_ROOT | RCLS_MVPD_PDR_CORE | RMRK_SCAN_BY_QME        }, // 154
--    {"ec_l3_gptr"              , 0x20030202, EQ::ec_l3_gptr                , EQ_TYPE   , RMRK_ROOT | RCLS_EKB_MVPD_PDG_OVLY | RMRK_SCAN_BY_QME    }, // 155
--    {"ec_l3_repr"              , 0x20030206, EQ::ec_l3_repr                , EQ_TYPE   , RMRK_ROOT | RCLS_MVPD_PDR_CORE | RMRK_SCAN_BY_QME        }, // 156
--    {"ec_l3_time"              , 0x20030207, EQ::ec_l3_time                , EQ_TYPE   , RMRK_ROOT | RCLS_MVPD_PDG_TIME | RMRK_SCAN_BY_QME        }, // 157
--    {"ec1_l3_repr"             , 0x20030106, EQ::ec1_l3_repr               , EQ_TYPE   , RMRK_ROOT | RCLS_MVPD_PDR_CORE | RMRK_SCAN_BY_QME        }, // 158
--    {"ec2_l3_repr"             , 0x20030086, EQ::ec2_l3_repr               , EQ_TYPE   , RMRK_ROOT | RCLS_MVPD_PDR_CORE | RMRK_SCAN_BY_QME        }, // 159
--    {"ec3_l3_repr"             , 0x20030046, EQ::ec3_l3_repr               , EQ_TYPE   , RMRK_ROOT | RCLS_MVPD_PDR_CORE | RMRK_SCAN_BY_QME        }, // 160
-+    {perv_occ_gptr          , "perv_occ_gptr"           , 0x01034902, PERV::perv_occ_gptr           , PERV_TYPE , RMRK_ROOT | RCLS_EKB_MVPD_PDG_OVLY                     }, // 0
-+    {perv_occ_repr          , "perv_occ_repr"           , 0x01034906, PERV::perv_occ_repr           , PERV_TYPE , RMRK_ROOT | RCLS_MVPD_PDR_NEST                         }, // 1
-+    {perv_occ_time          , "perv_occ_time"           , 0x01034907, PERV::perv_occ_time           , PERV_TYPE , RMRK_ROOT | RCLS_MVPD_PDG_TIME                         }, // 2
-+    {pib_repr               , "pib_repr"                , 0x01031006, PERV::pib_repr                , PERV_TYPE , RMRK_ROOT | RCLS_MVPD_PDR_NEST                         }, // 3
-+    {sbe_gptr               , "sbe_gptr"                , 0x01032002, PERV::sbe_gptr                , PERV_TYPE , RMRK_ROOT | RCLS_EKB_MVPD_PDG_OVLY                     }, // 4
-+    {sbe_repr               , "sbe_repr"                , 0x01032006, PERV::sbe_repr                , PERV_TYPE , RMRK_ROOT | RCLS_MVPD_PDR_NEST                         }, // 5
-+    {sbe_time               , "sbe_time"                , 0x01032007, PERV::sbe_time                , PERV_TYPE , RMRK_ROOT | RCLS_MVPD_PDG_TIME                         }, // 6
-+    {HOLE_RING_ID           , "invalid"                 , UNDEFINED_SCOM_ADDR, UNDEFINED_RING_INDEX          , UNDEFINED_CHIPLET_TYPE, UNDEFINED_RING_CLASS                                 }, // 7
-+    {perv_dpll_gptr         , "perv_dpll_gptr"          , 0x01030062, PERV::perv_dpll_gptr          , PERV_TYPE , RMRK_ROOT | RCLS_EKB_MVPD_PDG_OVLY                     }, // 8
-+    {perv_pll_gptr          , "perv_pll_gptr"           , 0x01030012, PERV::perv_pll_gptr           , PERV_TYPE , RMRK_ROOT | RCLS_EKB_MVPD_PDG_OVLY                     }, // 9
-+    {n0_gptr                , "n0_gptr"                 , 0x02036402, N0::n0_gptr                   , N0_TYPE   , RMRK_ROOT | RCLS_EKB_MVPD_PDG_OVLY                     }, // 10
-+    {n0_repr                , "n0_repr"                 , 0x02036406, N0::n0_repr                   , N0_TYPE   , RMRK_ROOT | RCLS_MVPD_PDR_NEST                         }, // 11
-+    {n0_time                , "n0_time"                 , 0x02036407, N0::n0_time                   , N0_TYPE   , RMRK_ROOT | RCLS_MVPD_PDG_TIME                         }, // 12
-+    {n1_gptr                , "n1_gptr"                 , 0x03035402, N1::n1_gptr                   , N1_TYPE   , RMRK_ROOT | RCLS_EKB_MVPD_PDG_OVLY                     }, // 13
-+    {n1_repr                , "n1_repr"                 , 0x03035406, N1::n1_repr                   , N1_TYPE   , RMRK_ROOT | RCLS_MVPD_PDR_NEST                         }, // 14
-+    {n1_time                , "n1_time"                 , 0x03035407, N1::n1_time                   , N1_TYPE   , RMRK_ROOT | RCLS_MVPD_PDG_TIME                         }, // 15
-+    {n1_nmmu1_gptr          , "n1_nmmu1_gptr"           , 0x03030202, N1::n1_nmmu1_gptr             , N1_TYPE   , RMRK_ROOT | RCLS_EKB_MVPD_PDG_OVLY                     }, // 16
-+    {n1_nmmu1_repr          , "n1_nmmu1_repr"           , 0x03030206, N1::n1_nmmu1_repr             , N1_TYPE   , RMRK_ROOT | RCLS_MVPD_PDR_NEST                         }, // 17
-+    {n1_nmmu1_time          , "n1_nmmu1_time"           , 0x03030207, N1::n1_nmmu1_time             , N1_TYPE   , RMRK_ROOT | RCLS_MVPD_PDG_TIME                         }, // 18
-+    {pci_gptr               , "pci_gptr"                , 0x08037F82, PCI::pci_gptr                 , PCI_TYPE  , RMRK_ROOT | RCLS_EKB_MVPD_PDG_OVLY                     }, // 19
-+    {pci_repr               , "pci_repr"                , 0x08037F86, PCI::pci_repr                 , PCI_TYPE  , RMRK_ROOT | RCLS_MVPD_PDR_NEST                         }, // 20
-+    {pci_time               , "pci_time"                , 0x08037F87, PCI::pci_time                 , PCI_TYPE  , RMRK_ROOT | RCLS_MVPD_PDG_TIME                         }, // 21
-+    {pci_pll_gptr           , "pci_pll_gptr"            , 0x08030012, PCI::pci_pll_gptr             , PCI_TYPE  , RMRK_ROOT | RCLS_EKB_MVPD_PDG_OVLY                     }, // 22
-+    {mc_gptr                , "mc_gptr"                 , 0x0C036F02, MC::mc_gptr                   , MC_TYPE   , RMRK_ROOT | RCLS_EKB_MVPD_PDG_OVLY                     }, // 23
-+    {mc_repr                , "mc_repr"                 , 0x0C036F06, MC::mc_repr                   , MC_TYPE   , RMRK_ROOT | RCLS_MVPD_PDR_NEST                         }, // 24
-+    {mc_time                , "mc_time"                 , 0x0C036F07, MC::mc_time                   , MC_TYPE   , RMRK_ROOT | RCLS_MVPD_PDG_TIME                         }, // 25
-+    {mc_pll_gptr            , "mc_pll_gptr"             , 0x0C030012, MC::mc_pll_gptr               , MC_TYPE   , RMRK_ROOT | RCLS_EKB_MVPD_PDG_OVLY                     }, // 26
-+    {pau0_gptr              , "pau0_gptr"               , 0x10034302, PAU0::pau0_gptr               , PAU0_TYPE , RMRK_ROOT | RCLS_EKB_MVPD_PDG_OVLY                     }, // 27
-+    {pau0_repr              , "pau0_repr"               , 0x10034306, PAU0::pau0_repr               , PAU0_TYPE , RMRK_ROOT | RCLS_MVPD_PDR_NEST                         }, // 28
-+    {pau0_time              , "pau0_time"               , 0x10034307, PAU0::pau0_time               , PAU0_TYPE , RMRK_ROOT | RCLS_MVPD_PDG_TIME                         }, // 29
-+    {pau0_pau0_gptr         , "pau0_pau0_gptr"          , 0x10032002, PAU0::pau0_pau0_gptr          , PAU0_TYPE , RMRK_ROOT | RCLS_EKB_MVPD_PDG_OVLY                     }, // 30
-+    {pau0_pau0_repr         , "pau0_pau0_repr"          , 0x10032006, PAU0::pau0_pau0_repr          , PAU0_TYPE , RMRK_ROOT | RCLS_MVPD_PDR_NEST                         }, // 31
-+    {pau0_pau0_time         , "pau0_pau0_time"          , 0x10032007, PAU0::pau0_pau0_time          , PAU0_TYPE , RMRK_ROOT | RCLS_MVPD_PDG_TIME                         }, // 32
-+    {pau1_gptr              , "pau1_gptr"               , 0x11034302, PAU1::pau1_gptr               , PAU1_TYPE , RMRK_ROOT | RCLS_EKB_MVPD_PDG_OVLY                     }, // 33
-+    {pau1_repr              , "pau1_repr"               , 0x11034306, PAU1::pau1_repr               , PAU1_TYPE , RMRK_ROOT | RCLS_MVPD_PDR_NEST                         }, // 34
-+    {pau1_time              , "pau1_time"               , 0x11034307, PAU1::pau1_time               , PAU1_TYPE , RMRK_ROOT | RCLS_MVPD_PDG_TIME                         }, // 35
-+    {pau1_pau3_gptr         , "pau1_pau3_gptr"          , 0x11032002, PAU1::pau1_pau3_gptr          , PAU1_TYPE , RMRK_ROOT | RCLS_EKB_MVPD_PDG_OVLY                     }, // 36
-+    {pau1_pau3_repr         , "pau1_pau3_repr"          , 0x11032006, PAU1::pau1_pau3_repr          , PAU1_TYPE , RMRK_ROOT | RCLS_MVPD_PDR_NEST                         }, // 37
-+    {pau1_pau3_time         , "pau1_pau3_time"          , 0x11032007, PAU1::pau1_pau3_time          , PAU1_TYPE , RMRK_ROOT | RCLS_MVPD_PDG_TIME                         }, // 38
-+    {pau2_gptr              , "pau2_gptr"               , 0x12034302, PAU2::pau2_gptr               , PAU2_TYPE , RMRK_ROOT | RCLS_EKB_MVPD_PDG_OVLY                     }, // 39
-+    {pau2_repr              , "pau2_repr"               , 0x12034306, PAU2::pau2_repr               , PAU2_TYPE , RMRK_ROOT | RCLS_MVPD_PDR_NEST                         }, // 40
-+    {pau2_time              , "pau2_time"               , 0x12034307, PAU2::pau2_time               , PAU2_TYPE , RMRK_ROOT | RCLS_MVPD_PDG_TIME                         }, // 41
-+    {pau2_pau4_gptr         , "pau2_pau4_gptr"          , 0x12032002, PAU2::pau2_pau4_gptr          , PAU2_TYPE , RMRK_ROOT | RCLS_EKB_MVPD_PDG_OVLY                     }, // 42
-+    {pau2_pau4_repr         , "pau2_pau4_repr"          , 0x12032006, PAU2::pau2_pau4_repr          , PAU2_TYPE , RMRK_ROOT | RCLS_MVPD_PDR_NEST                         }, // 43
-+    {pau2_pau4_time         , "pau2_pau4_time"          , 0x12032007, PAU2::pau2_pau4_time          , PAU2_TYPE , RMRK_ROOT | RCLS_MVPD_PDG_TIME                         }, // 44
-+    {pau2_pau5_gptr         , "pau2_pau5_gptr"          , 0x12031002, PAU2::pau2_pau5_gptr          , PAU2_TYPE , RMRK_ROOT | RCLS_EKB_MVPD_PDG_OVLY                     }, // 45
-+    {pau2_pau5_repr         , "pau2_pau5_repr"          , 0x12031006, PAU2::pau2_pau5_repr          , PAU2_TYPE , RMRK_ROOT | RCLS_MVPD_PDR_NEST                         }, // 46
-+    {pau2_pau5_time         , "pau2_pau5_time"          , 0x12031007, PAU2::pau2_pau5_time          , PAU2_TYPE , RMRK_ROOT | RCLS_MVPD_PDG_TIME                         }, // 47
-+    {pau3_gptr              , "pau3_gptr"               , 0x13034302, PAU3::pau3_gptr               , PAU3_TYPE , RMRK_ROOT | RCLS_EKB_MVPD_PDG_OVLY                     }, // 48
-+    {pau3_repr              , "pau3_repr"               , 0x13034306, PAU3::pau3_repr               , PAU3_TYPE , RMRK_ROOT | RCLS_MVPD_PDR_NEST                         }, // 49
-+    {pau3_time              , "pau3_time"               , 0x13034307, PAU3::pau3_time               , PAU3_TYPE , RMRK_ROOT | RCLS_MVPD_PDG_TIME                         }, // 50
-+    {pau3_pau6_gptr         , "pau3_pau6_gptr"          , 0x13032002, PAU3::pau3_pau6_gptr          , PAU3_TYPE , RMRK_ROOT | RCLS_EKB_MVPD_PDG_OVLY                     }, // 51
-+    {pau3_pau6_repr         , "pau3_pau6_repr"          , 0x13032006, PAU3::pau3_pau6_repr          , PAU3_TYPE , RMRK_ROOT | RCLS_MVPD_PDR_NEST                         }, // 52
-+    {pau3_pau6_time         , "pau3_pau6_time"          , 0x13032007, PAU3::pau3_pau6_time          , PAU3_TYPE , RMRK_ROOT | RCLS_MVPD_PDG_TIME                         }, // 53
-+    {pau3_pau7_gptr         , "pau3_pau7_gptr"          , 0x13031002, PAU3::pau3_pau7_gptr          , PAU3_TYPE , RMRK_ROOT | RCLS_EKB_MVPD_PDG_OVLY                     }, // 54
-+    {pau3_pau7_repr         , "pau3_pau7_repr"          , 0x13031006, PAU3::pau3_pau7_repr          , PAU3_TYPE , RMRK_ROOT | RCLS_MVPD_PDR_NEST                         }, // 55
-+    {pau3_pau7_time         , "pau3_pau7_time"          , 0x13031007, PAU3::pau3_pau7_time          , PAU3_TYPE , RMRK_ROOT | RCLS_MVPD_PDG_TIME                         }, // 56
-+    {iohs0_gptr             , "iohs0_gptr"              , 0x18036002, AXON0::iohs0_gptr             , AXON0_TYPE, RMRK_ROOT | RCLS_EKB_MVPD_PDG_OVLY                     }, // 57
-+    {iohs0_repr             , "iohs0_repr"              , 0x18036006, AXON0::iohs0_repr             , AXON0_TYPE, RMRK_ROOT | RCLS_MVPD_PDR_NEST                         }, // 58
-+    {iohs0_time             , "iohs0_time"              , 0x18036007, AXON0::iohs0_time             , AXON0_TYPE, RMRK_ROOT | RCLS_MVPD_PDG_TIME                         }, // 59
-+    {iohs0_ndl_gptr         , "iohs0_ndl_gptr"          , 0x18030402, AXON0::iohs0_ndl_gptr         , AXON0_TYPE, RMRK_ROOT | RCLS_EKB_MVPD_PDG_OVLY                     }, // 60
-+    {iohs0_ndl_repr         , "iohs0_ndl_repr"          , 0x18030406, AXON0::iohs0_ndl_repr         , AXON0_TYPE, RMRK_ROOT | RCLS_MVPD_PDR_NEST                         }, // 61
-+    {iohs0_ndl_time         , "iohs0_ndl_time"          , 0x18030407, AXON0::iohs0_ndl_time         , AXON0_TYPE, RMRK_ROOT | RCLS_MVPD_PDG_TIME                         }, // 62
-+    {iohs0_pdl_gptr         , "iohs0_pdl_gptr"          , 0x18030202, AXON0::iohs0_pdl_gptr         , AXON0_TYPE, RMRK_ROOT | RCLS_EKB_MVPD_PDG_OVLY                     }, // 63
-+    {iohs0_pdl_repr         , "iohs0_pdl_repr"          , 0x18030206, AXON0::iohs0_pdl_repr         , AXON0_TYPE, RMRK_ROOT | RCLS_MVPD_PDR_NEST                         }, // 64
-+    {iohs0_pdl_time         , "iohs0_pdl_time"          , 0x18030207, AXON0::iohs0_pdl_time         , AXON0_TYPE, RMRK_ROOT | RCLS_MVPD_PDG_TIME                         }, // 65
-+    {iohs0_pll_gptr         , "iohs0_pll_gptr"          , 0x18030012, AXON0::iohs0_pll_gptr         , AXON0_TYPE, RMRK_ROOT | RCLS_EKB_MVPD_PDG_OVLY                     }, // 66
-+    {iohs1_gptr             , "iohs1_gptr"              , 0x19036002, AXON1::iohs1_gptr             , AXON1_TYPE, RMRK_ROOT | RCLS_EKB_MVPD_PDG_OVLY                     }, // 67
-+    {iohs1_repr             , "iohs1_repr"              , 0x19036006, AXON1::iohs1_repr             , AXON1_TYPE, RMRK_ROOT | RCLS_MVPD_PDR_NEST                         }, // 68
-+    {iohs1_time             , "iohs1_time"              , 0x19036007, AXON1::iohs1_time             , AXON1_TYPE, RMRK_ROOT | RCLS_MVPD_PDG_TIME                         }, // 69
-+    {iohs1_ndl_gptr         , "iohs1_ndl_gptr"          , 0x19030402, AXON1::iohs1_ndl_gptr         , AXON1_TYPE, RMRK_ROOT | RCLS_EKB_MVPD_PDG_OVLY                     }, // 70
-+    {iohs1_ndl_repr         , "iohs1_ndl_repr"          , 0x19030406, AXON1::iohs1_ndl_repr         , AXON1_TYPE, RMRK_ROOT | RCLS_MVPD_PDR_NEST                         }, // 71
-+    {iohs1_ndl_time         , "iohs1_ndl_time"          , 0x19030407, AXON1::iohs1_ndl_time         , AXON1_TYPE, RMRK_ROOT | RCLS_MVPD_PDG_TIME                         }, // 72
-+    {iohs1_pdl_gptr         , "iohs1_pdl_gptr"          , 0x19030202, AXON1::iohs1_pdl_gptr         , AXON1_TYPE, RMRK_ROOT | RCLS_EKB_MVPD_PDG_OVLY                     }, // 73
-+    {iohs1_pdl_repr         , "iohs1_pdl_repr"          , 0x19030206, AXON1::iohs1_pdl_repr         , AXON1_TYPE, RMRK_ROOT | RCLS_MVPD_PDR_NEST                         }, // 74
-+    {iohs1_pdl_time         , "iohs1_pdl_time"          , 0x19030207, AXON1::iohs1_pdl_time         , AXON1_TYPE, RMRK_ROOT | RCLS_MVPD_PDG_TIME                         }, // 75
-+    {iohs1_pll_gptr         , "iohs1_pll_gptr"          , 0x19030012, AXON1::iohs1_pll_gptr         , AXON1_TYPE, RMRK_ROOT | RCLS_EKB_MVPD_PDG_OVLY                     }, // 76
-+    {iohs2_gptr             , "iohs2_gptr"              , 0x1A036002, AXON2::iohs2_gptr             , AXON2_TYPE, RMRK_ROOT | RCLS_EKB_MVPD_PDG_OVLY                     }, // 77
-+    {iohs2_repr             , "iohs2_repr"              , 0x1A036006, AXON2::iohs2_repr             , AXON2_TYPE, RMRK_ROOT | RCLS_MVPD_PDR_NEST                         }, // 78
-+    {iohs2_time             , "iohs2_time"              , 0x1A036007, AXON2::iohs2_time             , AXON2_TYPE, RMRK_ROOT | RCLS_MVPD_PDG_TIME                         }, // 79
-+    {iohs2_ndl_gptr         , "iohs2_ndl_gptr"          , 0x1A030402, AXON2::iohs2_ndl_gptr         , AXON2_TYPE, RMRK_ROOT | RCLS_EKB_MVPD_PDG_OVLY                     }, // 80
-+    {iohs2_ndl_repr         , "iohs2_ndl_repr"          , 0x1A030406, AXON2::iohs2_ndl_repr         , AXON2_TYPE, RMRK_ROOT | RCLS_MVPD_PDR_NEST                         }, // 81
-+    {iohs2_ndl_time         , "iohs2_ndl_time"          , 0x1A030407, AXON2::iohs2_ndl_time         , AXON2_TYPE, RMRK_ROOT | RCLS_MVPD_PDG_TIME                         }, // 82
-+    {iohs2_pdl_gptr         , "iohs2_pdl_gptr"          , 0x1A030202, AXON2::iohs2_pdl_gptr         , AXON2_TYPE, RMRK_ROOT | RCLS_EKB_MVPD_PDG_OVLY                     }, // 83
-+    {iohs2_pdl_repr         , "iohs2_pdl_repr"          , 0x1A030206, AXON2::iohs2_pdl_repr         , AXON2_TYPE, RMRK_ROOT | RCLS_MVPD_PDR_NEST                         }, // 84
-+    {iohs2_pdl_time         , "iohs2_pdl_time"          , 0x1A030207, AXON2::iohs2_pdl_time         , AXON2_TYPE, RMRK_ROOT | RCLS_MVPD_PDG_TIME                         }, // 85
-+    {iohs2_pll_gptr         , "iohs2_pll_gptr"          , 0x1A030012, AXON2::iohs2_pll_gptr         , AXON2_TYPE, RMRK_ROOT | RCLS_EKB_MVPD_PDG_OVLY                     }, // 86
-+    {iohs3_gptr             , "iohs3_gptr"              , 0x1B036002, AXON3::iohs3_gptr             , AXON3_TYPE, RMRK_ROOT | RCLS_EKB_MVPD_PDG_OVLY                     }, // 87
-+    {iohs3_repr             , "iohs3_repr"              , 0x1B036006, AXON3::iohs3_repr             , AXON3_TYPE, RMRK_ROOT | RCLS_MVPD_PDR_NEST                         }, // 88
-+    {iohs3_time             , "iohs3_time"              , 0x1B036007, AXON3::iohs3_time             , AXON3_TYPE, RMRK_ROOT | RCLS_MVPD_PDG_TIME                         }, // 89
-+    {iohs3_ndl_gptr         , "iohs3_ndl_gptr"          , 0x1B030402, AXON3::iohs3_ndl_gptr         , AXON3_TYPE, RMRK_ROOT | RCLS_EKB_MVPD_PDG_OVLY                     }, // 90
-+    {iohs3_ndl_repr         , "iohs3_ndl_repr"          , 0x1B030406, AXON3::iohs3_ndl_repr         , AXON3_TYPE, RMRK_ROOT | RCLS_MVPD_PDR_NEST                         }, // 91
-+    {iohs3_ndl_time         , "iohs3_ndl_time"          , 0x1B030407, AXON3::iohs3_ndl_time         , AXON3_TYPE, RMRK_ROOT | RCLS_MVPD_PDG_TIME                         }, // 92
-+    {iohs3_pdl_gptr         , "iohs3_pdl_gptr"          , 0x1B030202, AXON3::iohs3_pdl_gptr         , AXON3_TYPE, RMRK_ROOT | RCLS_EKB_MVPD_PDG_OVLY                     }, // 93
-+    {iohs3_pdl_repr         , "iohs3_pdl_repr"          , 0x1B030206, AXON3::iohs3_pdl_repr         , AXON3_TYPE, RMRK_ROOT | RCLS_MVPD_PDR_NEST                         }, // 94
-+    {iohs3_pdl_time         , "iohs3_pdl_time"          , 0x1B030207, AXON3::iohs3_pdl_time         , AXON3_TYPE, RMRK_ROOT | RCLS_MVPD_PDG_TIME                         }, // 95
-+    {iohs3_pll_gptr         , "iohs3_pll_gptr"          , 0x1B030012, AXON3::iohs3_pll_gptr         , AXON3_TYPE, RMRK_ROOT | RCLS_EKB_MVPD_PDG_OVLY                     }, // 96
-+    {iohs4_gptr             , "iohs4_gptr"              , 0x1C036002, AXON4::iohs4_gptr             , AXON4_TYPE, RMRK_ROOT | RCLS_EKB_MVPD_PDG_OVLY                     }, // 97
-+    {iohs4_repr             , "iohs4_repr"              , 0x1C036006, AXON4::iohs4_repr             , AXON4_TYPE, RMRK_ROOT | RCLS_MVPD_PDR_NEST                         }, // 98
-+    {iohs4_time             , "iohs4_time"              , 0x1C036007, AXON4::iohs4_time             , AXON4_TYPE, RMRK_ROOT | RCLS_MVPD_PDG_TIME                         }, // 99
-+    {iohs4_ndl_gptr         , "iohs4_ndl_gptr"          , 0x1C030402, AXON4::iohs4_ndl_gptr         , AXON4_TYPE, RMRK_ROOT | RCLS_EKB_MVPD_PDG_OVLY                     }, // 100
-+    {iohs4_ndl_repr         , "iohs4_ndl_repr"          , 0x1C030406, AXON4::iohs4_ndl_repr         , AXON4_TYPE, RMRK_ROOT | RCLS_MVPD_PDR_NEST                         }, // 101
-+    {iohs4_ndl_time         , "iohs4_ndl_time"          , 0x1C030407, AXON4::iohs4_ndl_time         , AXON4_TYPE, RMRK_ROOT | RCLS_MVPD_PDG_TIME                         }, // 102
-+    {iohs4_pdl_gptr         , "iohs4_pdl_gptr"          , 0x1C030202, AXON4::iohs4_pdl_gptr         , AXON4_TYPE, RMRK_ROOT | RCLS_EKB_MVPD_PDG_OVLY                     }, // 103
-+    {iohs4_pdl_repr         , "iohs4_pdl_repr"          , 0x1C030206, AXON4::iohs4_pdl_repr         , AXON4_TYPE, RMRK_ROOT | RCLS_MVPD_PDR_NEST                         }, // 104
-+    {iohs4_pdl_time         , "iohs4_pdl_time"          , 0x1C030207, AXON4::iohs4_pdl_time         , AXON4_TYPE, RMRK_ROOT | RCLS_MVPD_PDG_TIME                         }, // 105
-+    {iohs4_pll_gptr         , "iohs4_pll_gptr"          , 0x1C030012, AXON4::iohs4_pll_gptr         , AXON4_TYPE, RMRK_ROOT | RCLS_EKB_MVPD_PDG_OVLY                     }, // 106
-+    {iohs5_gptr             , "iohs5_gptr"              , 0x1D036002, AXON5::iohs5_gptr             , AXON5_TYPE, RMRK_ROOT | RCLS_EKB_MVPD_PDG_OVLY                     }, // 107
-+    {iohs5_repr             , "iohs5_repr"              , 0x1D036006, AXON5::iohs5_repr             , AXON5_TYPE, RMRK_ROOT | RCLS_MVPD_PDR_NEST                         }, // 108
-+    {iohs5_time             , "iohs5_time"              , 0x1D036007, AXON5::iohs5_time             , AXON5_TYPE, RMRK_ROOT | RCLS_MVPD_PDG_TIME                         }, // 109
-+    {iohs5_ndl_gptr         , "iohs5_ndl_gptr"          , 0x1D030402, AXON5::iohs5_ndl_gptr         , AXON5_TYPE, RMRK_ROOT | RCLS_EKB_MVPD_PDG_OVLY                     }, // 110
-+    {iohs5_ndl_repr         , "iohs5_ndl_repr"          , 0x1D030406, AXON5::iohs5_ndl_repr         , AXON5_TYPE, RMRK_ROOT | RCLS_MVPD_PDR_NEST                         }, // 111
-+    {iohs5_ndl_time         , "iohs5_ndl_time"          , 0x1D030407, AXON5::iohs5_ndl_time         , AXON5_TYPE, RMRK_ROOT | RCLS_MVPD_PDG_TIME                         }, // 112
-+    {iohs5_pdl_gptr         , "iohs5_pdl_gptr"          , 0x1D030202, AXON5::iohs5_pdl_gptr         , AXON5_TYPE, RMRK_ROOT | RCLS_EKB_MVPD_PDG_OVLY                     }, // 113
-+    {iohs5_pdl_repr         , "iohs5_pdl_repr"          , 0x1D030206, AXON5::iohs5_pdl_repr         , AXON5_TYPE, RMRK_ROOT | RCLS_MVPD_PDR_NEST                         }, // 114
-+    {iohs5_pdl_time         , "iohs5_pdl_time"          , 0x1D030207, AXON5::iohs5_pdl_time         , AXON5_TYPE, RMRK_ROOT | RCLS_MVPD_PDG_TIME                         }, // 115
-+    {iohs5_pll_gptr         , "iohs5_pll_gptr"          , 0x1D030012, AXON5::iohs5_pll_gptr         , AXON5_TYPE, RMRK_ROOT | RCLS_EKB_MVPD_PDG_OVLY                     }, // 116
-+    {iohs6_gptr             , "iohs6_gptr"              , 0x1E036002, AXON6::iohs6_gptr             , AXON6_TYPE, RMRK_ROOT | RCLS_EKB_MVPD_PDG_OVLY                     }, // 117
-+    {iohs6_repr             , "iohs6_repr"              , 0x1E036006, AXON6::iohs6_repr             , AXON6_TYPE, RMRK_ROOT | RCLS_MVPD_PDR_NEST                         }, // 118
-+    {iohs6_time             , "iohs6_time"              , 0x1E036007, AXON6::iohs6_time             , AXON6_TYPE, RMRK_ROOT | RCLS_MVPD_PDG_TIME                         }, // 119
-+    {iohs6_ndl_gptr         , "iohs6_ndl_gptr"          , 0x1E030402, AXON6::iohs6_ndl_gptr         , AXON6_TYPE, RMRK_ROOT | RCLS_EKB_MVPD_PDG_OVLY                     }, // 120
-+    {iohs6_ndl_repr         , "iohs6_ndl_repr"          , 0x1E030406, AXON6::iohs6_ndl_repr         , AXON6_TYPE, RMRK_ROOT | RCLS_MVPD_PDR_NEST                         }, // 121
-+    {iohs6_ndl_time         , "iohs6_ndl_time"          , 0x1E030407, AXON6::iohs6_ndl_time         , AXON6_TYPE, RMRK_ROOT | RCLS_MVPD_PDG_TIME                         }, // 122
-+    {iohs6_pdl_gptr         , "iohs6_pdl_gptr"          , 0x1E030202, AXON6::iohs6_pdl_gptr         , AXON6_TYPE, RMRK_ROOT | RCLS_EKB_MVPD_PDG_OVLY                     }, // 123
-+    {iohs6_pdl_repr         , "iohs6_pdl_repr"          , 0x1E030206, AXON6::iohs6_pdl_repr         , AXON6_TYPE, RMRK_ROOT | RCLS_MVPD_PDR_NEST                         }, // 124
-+    {iohs6_pdl_time         , "iohs6_pdl_time"          , 0x1E030207, AXON6::iohs6_pdl_time         , AXON6_TYPE, RMRK_ROOT | RCLS_MVPD_PDG_TIME                         }, // 125
-+    {iohs6_pll_gptr         , "iohs6_pll_gptr"          , 0x1E030012, AXON6::iohs6_pll_gptr         , AXON6_TYPE, RMRK_ROOT | RCLS_EKB_MVPD_PDG_OVLY                     }, // 126
-+    {iohs7_gptr             , "iohs7_gptr"              , 0x1F036002, AXON7::iohs7_gptr             , AXON7_TYPE, RMRK_ROOT | RCLS_EKB_MVPD_PDG_OVLY                     }, // 127
-+    {iohs7_repr             , "iohs7_repr"              , 0x1F036006, AXON7::iohs7_repr             , AXON7_TYPE, RMRK_ROOT | RCLS_MVPD_PDR_NEST                         }, // 128
-+    {iohs7_time             , "iohs7_time"              , 0x1F036007, AXON7::iohs7_time             , AXON7_TYPE, RMRK_ROOT | RCLS_MVPD_PDG_TIME                         }, // 129
-+    {iohs7_ndl_gptr         , "iohs7_ndl_gptr"          , 0x1F030402, AXON7::iohs7_ndl_gptr         , AXON7_TYPE, RMRK_ROOT | RCLS_EKB_MVPD_PDG_OVLY                     }, // 130
-+    {iohs7_ndl_repr         , "iohs7_ndl_repr"          , 0x1F030406, AXON7::iohs7_ndl_repr         , AXON7_TYPE, RMRK_ROOT | RCLS_MVPD_PDR_NEST                         }, // 131
-+    {iohs7_ndl_time         , "iohs7_ndl_time"          , 0x1F030407, AXON7::iohs7_ndl_time         , AXON7_TYPE, RMRK_ROOT | RCLS_MVPD_PDG_TIME                         }, // 132
-+    {iohs7_pdl_gptr         , "iohs7_pdl_gptr"          , 0x1F030202, AXON7::iohs7_pdl_gptr         , AXON7_TYPE, RMRK_ROOT | RCLS_EKB_MVPD_PDG_OVLY                     }, // 133
-+    {iohs7_pdl_repr         , "iohs7_pdl_repr"          , 0x1F030206, AXON7::iohs7_pdl_repr         , AXON7_TYPE, RMRK_ROOT | RCLS_MVPD_PDR_NEST                         }, // 134
-+    {iohs7_pdl_time         , "iohs7_pdl_time"          , 0x1F030207, AXON7::iohs7_pdl_time         , AXON7_TYPE, RMRK_ROOT | RCLS_MVPD_PDG_TIME                         }, // 135
-+    {iohs7_pll_gptr         , "iohs7_pll_gptr"          , 0x1F030012, AXON7::iohs7_pll_gptr         , AXON7_TYPE, RMRK_ROOT | RCLS_EKB_MVPD_PDG_OVLY                     }, // 136
-+    {eq_gptr                , "eq_gptr"                 , 0x20034022, EQ::eq_gptr                   , EQ_TYPE   , RMRK_ROOT | RCLS_EKB_MVPD_PDG_OVLY                     }, // 137
-+    {eq_repr                , "eq_repr"                 , 0x20034026, EQ::eq_repr                   , EQ_TYPE   , RMRK_ROOT | RCLS_MVPD_PDR_EQ                           }, // 138
-+    {eq_time                , "eq_time"                 , 0x20034027, EQ::eq_time                   , EQ_TYPE   , RMRK_ROOT | RCLS_MVPD_PDG_TIME                         }, // 139
-+    {eq_clkadj_gptr         , "eq_clkadj_gptr"          , 0x20030012, EQ::eq_clkadj_gptr            , EQ_TYPE   , RMRK_ROOT | RCLS_EKB_MVPD_PDG_OVLY                     }, // 140
-+    {eq_clkadj_repr         , "eq_clkadj_repr"          , 0x20030016, EQ::eq_clkadj_repr            , EQ_TYPE   , RMRK_ROOT | RCLS_MVPD_PDR_EQ                           }, // 141
-+    {eq_clkadj_time         , "eq_clkadj_time"          , 0x20030017, EQ::eq_clkadj_time            , EQ_TYPE   , RMRK_ROOT | RCLS_MVPD_PDG_TIME                         }, // 142
-+    {ec_cl2_gptr            , "ec_cl2_gptr"             , 0x20032002, EQ::ec_cl2_gptr               , EQ_TYPE   , RMRK_ROOT | RCLS_EKB_MVPD_PDG_OVLY | RMRK_SCAN_BY_QME    }, // 143
-+    {ec_cl2_repr            , "ec_cl2_repr"             , 0x20032006, EQ::ec_cl2_repr               , EQ_TYPE   , RMRK_ROOT | RCLS_MVPD_PDR_CORE | RMRK_SCAN_BY_QME        }, // 144
-+    {ec_cl2_time            , "ec_cl2_time"             , 0x20032007, EQ::ec_cl2_time               , EQ_TYPE   , RMRK_ROOT | RCLS_MVPD_PDG_TIME | RMRK_SCAN_BY_QME        }, // 145
-+    {ec1_cl2_repr           , "ec1_cl2_repr"            , 0x20031006, EQ::ec1_cl2_repr              , EQ_TYPE   , RMRK_ROOT | RCLS_MVPD_PDR_CORE | RMRK_SCAN_BY_QME        }, // 146
-+    {ec2_cl2_repr           , "ec2_cl2_repr"            , 0x20030806, EQ::ec2_cl2_repr              , EQ_TYPE   , RMRK_ROOT | RCLS_MVPD_PDR_CORE | RMRK_SCAN_BY_QME        }, // 147
-+    {ec3_cl2_repr           , "ec3_cl2_repr"            , 0x20030406, EQ::ec3_cl2_repr              , EQ_TYPE   , RMRK_ROOT | RCLS_MVPD_PDR_CORE | RMRK_SCAN_BY_QME        }, // 148
-+    {ec_mma_gptr            , "ec_mma_gptr"             , 0x20830002, EQ::ec_mma_gptr               , EQ_TYPE   , RMRK_ROOT | RCLS_EKB_MVPD_PDG_OVLY | RMRK_SCAN_BY_QME    }, // 149
-+    {ec_mma_repr            , "ec_mma_repr"             , 0x20830006, EQ::ec_mma_repr               , EQ_TYPE   , RMRK_ROOT | RCLS_MVPD_PDR_CORE | RMRK_SCAN_BY_QME        }, // 150
-+    {ec_mma_time            , "ec_mma_time"             , 0x20830007, EQ::ec_mma_time               , EQ_TYPE   , RMRK_ROOT | RCLS_MVPD_PDG_TIME | RMRK_SCAN_BY_QME        }, // 151
-+    {ec1_mma_repr           , "ec1_mma_repr"            , 0x20430006, EQ::ec1_mma_repr              , EQ_TYPE   , RMRK_ROOT | RCLS_MVPD_PDR_CORE | RMRK_SCAN_BY_QME        }, // 152
-+    {ec2_mma_repr           , "ec2_mma_repr"            , 0x20230006, EQ::ec2_mma_repr              , EQ_TYPE   , RMRK_ROOT | RCLS_MVPD_PDR_CORE | RMRK_SCAN_BY_QME        }, // 153
-+    {ec3_mma_repr           , "ec3_mma_repr"            , 0x20130006, EQ::ec3_mma_repr              , EQ_TYPE   , RMRK_ROOT | RCLS_MVPD_PDR_CORE | RMRK_SCAN_BY_QME        }, // 154
-+    {ec_l3_gptr             , "ec_l3_gptr"              , 0x20030202, EQ::ec_l3_gptr                , EQ_TYPE   , RMRK_ROOT | RCLS_EKB_MVPD_PDG_OVLY | RMRK_SCAN_BY_QME    }, // 155
-+    {ec_l3_repr             , "ec_l3_repr"              , 0x20030206, EQ::ec_l3_repr                , EQ_TYPE   , RMRK_ROOT | RCLS_MVPD_PDR_CORE | RMRK_SCAN_BY_QME        }, // 156
-+    {ec_l3_time             , "ec_l3_time"              , 0x20030207, EQ::ec_l3_time                , EQ_TYPE   , RMRK_ROOT | RCLS_MVPD_PDG_TIME | RMRK_SCAN_BY_QME        }, // 157
-+    {ec1_l3_repr            , "ec1_l3_repr"             , 0x20030106, EQ::ec1_l3_repr               , EQ_TYPE   , RMRK_ROOT | RCLS_MVPD_PDR_CORE | RMRK_SCAN_BY_QME        }, // 158
-+    {ec2_l3_repr            , "ec2_l3_repr"             , 0x20030086, EQ::ec2_l3_repr               , EQ_TYPE   , RMRK_ROOT | RCLS_MVPD_PDR_CORE | RMRK_SCAN_BY_QME        }, // 159
-+    {ec3_l3_repr            , "ec3_l3_repr"             , 0x20030046, EQ::ec3_l3_repr               , EQ_TYPE   , RMRK_ROOT | RCLS_MVPD_PDR_CORE | RMRK_SCAN_BY_QME        }, // 160
- 
-     // EKB Rings:
--    {"perv_fure"               , 0x0103410F, PERV::perv_fure               , PERV_TYPE , RMRK_ROOT | RCLS_EKB_RINGS                             }, // 161
--    {"sbe_fure"                , 0x0103200F, PERV::sbe_fure                , PERV_TYPE , RMRK_ROOT | RCLS_EKB_RINGS                             }, // 162
--    {"occ_fure"                , 0x0103080F, PERV::occ_fure                , PERV_TYPE , RMRK_ROOT | RCLS_EKB_RINGS                             }, // 163
--    {"perv_dpll_func"          , 0x01030060, PERV::perv_dpll_func          , PERV_TYPE , RMRK_ROOT | RCLS_EKB_RINGS                             }, // 164
--    {"perv_dpll_bndy"          , 0x01030068, PERV::perv_dpll_bndy          , PERV_TYPE , RMRK_ROOT | RCLS_EKB_RINGS                             }, // 165
--    {"perv_dpll_time"          , 0x01030067, PERV::perv_dpll_time          , PERV_TYPE , RMRK_ROOT | RCLS_EKB_RINGS                             }, // 166
--    {"perv_pll_func"           , 0x01030010, PERV::perv_pll_func           , PERV_TYPE , RMRK_ROOT | RCLS_EKB_RINGS                             }, // 167
--    {"perv_pll_bndy"           , 0x01030018, PERV::perv_pll_bndy           , PERV_TYPE , RMRK_ROOT | RCLS_EKB_RINGS                             }, // 168
--    {"n0_fure"                 , 0x0203640F, N0::n0_fure                   , N0_TYPE   , RMRK_ROOT | RCLS_EKB_RINGS                             }, // 169
--    {"n1_fure"                 , 0x0303540F, N1::n1_fure                   , N1_TYPE   , RMRK_ROOT | RCLS_EKB_RINGS                             }, // 170
--    {"n1_nmmu1_fure"           , 0x0303020F, N1::n1_nmmu1_fure             , N1_TYPE   , RMRK_ROOT | RCLS_EKB_RINGS                             }, // 171
--    {"pci_fure"                , 0x08037F8F, PCI::pci_fure                 , PCI_TYPE  , RMRK_ROOT | RCLS_EKB_RINGS                             }, // 172
--    {"pci_pll_func"            , 0x08030010, PCI::pci_pll_func             , PCI_TYPE  , RMRK_ROOT | RCLS_EKB_RINGS                             }, // 173
--    {"pci_pll_bndy"            , 0x08030018, PCI::pci_pll_bndy             , PCI_TYPE  , RMRK_ROOT | RCLS_EKB_RINGS                             }, // 174
--    {"mc_fure"                 , 0x0C036F0F, MC::mc_fure                   , MC_TYPE   , RMRK_ROOT | RCLS_EKB_RINGS                             }, // 175
--    {"mc_pll_func"             , 0x0C030010, MC::mc_pll_func               , MC_TYPE   , RMRK_ROOT | RCLS_EKB_RINGS                             }, // 176
--    {"mc_pll_bndy"             , 0x0C030018, MC::mc_pll_bndy               , MC_TYPE   , RMRK_ROOT | RMRK_HAS_DERIVS | RCLS_EKB_RINGS             }, // 177
--    {"mc_pll_bndy_bucket_0"    , 0x0C030018, MC::mc_pll_bndy_bucket_0      , MC_TYPE   , RCLS_EKB_RINGS                                       }, // 178
--    {"mc_pll_bndy_bucket_1"    , 0x0C030018, MC::mc_pll_bndy_bucket_1      , MC_TYPE   , RCLS_EKB_RINGS                                       }, // 179
--    {"mc_pll_bndy_bucket_2"    , 0x0C030018, MC::mc_pll_bndy_bucket_2      , MC_TYPE   , RCLS_EKB_RINGS                                       }, // 180
--    {"mc_pll_bndy_bucket_3"    , 0x0C030018, MC::mc_pll_bndy_bucket_3      , MC_TYPE   , RCLS_EKB_RINGS                                       }, // 181
--    {"mc_pll_bndy_bucket_4"    , 0x0C030018, MC::mc_pll_bndy_bucket_4      , MC_TYPE   , RCLS_EKB_RINGS                                       }, // 182
--    {"pau0_fure"               , 0x1003430F, PAU0::pau0_fure               , PAU0_TYPE , RMRK_ROOT | RCLS_EKB_RINGS                             }, // 183
--    {"pau0_pau0_fure"          , 0x1003200F, PAU0::pau0_pau0_fure          , PAU0_TYPE , RMRK_ROOT | RCLS_EKB_RINGS                             }, // 184
--    {"pau1_fure"               , 0x1103430F, PAU1::pau1_fure               , PAU1_TYPE , RMRK_ROOT | RCLS_EKB_RINGS                             }, // 185
--    {"pau1_pau3_fure"          , 0x1103200F, PAU1::pau1_pau3_fure          , PAU1_TYPE , RMRK_ROOT | RCLS_EKB_RINGS                             }, // 186
--    {"pau2_fure"               , 0x1203430F, PAU2::pau2_fure               , PAU2_TYPE , RMRK_ROOT | RCLS_EKB_RINGS                             }, // 187
--    {"pau2_pau4_fure"          , 0x1203200F, PAU2::pau2_pau4_fure          , PAU2_TYPE , RMRK_ROOT | RCLS_EKB_RINGS                             }, // 188
--    {"pau2_pau5_fure"          , 0x1203100F, PAU2::pau2_pau5_fure          , PAU2_TYPE , RMRK_ROOT | RCLS_EKB_RINGS                             }, // 189
--    {"pau3_fure"               , 0x1303430F, PAU3::pau3_fure               , PAU3_TYPE , RMRK_ROOT | RCLS_EKB_RINGS                             }, // 190
--    {"pau3_pau6_fure"          , 0x1303200F, PAU3::pau3_pau6_fure          , PAU3_TYPE , RMRK_ROOT | RCLS_EKB_RINGS                             }, // 191
--    {"pau3_pau7_fure"          , 0x1303100F, PAU3::pau3_pau7_fure          , PAU3_TYPE , RMRK_ROOT | RCLS_EKB_RINGS                             }, // 192
--    {"iohs0_fure"              , 0x1803600F, AXON0::iohs0_fure             , AXON0_TYPE, RMRK_ROOT | RCLS_EKB_RINGS                             }, // 193
--    {"iohs0_ndl_fure"          , 0x1803040F, AXON0::iohs0_ndl_fure         , AXON0_TYPE, RMRK_ROOT | RCLS_EKB_RINGS                             }, // 194
--    {"iohs0_pdl_fure"          , 0x1803020F, AXON0::iohs0_pdl_fure         , AXON0_TYPE, RMRK_ROOT | RCLS_EKB_RINGS                             }, // 195
--    {"iohs0_pll_func"          , 0x18030010, AXON0::iohs0_pll_func         , AXON0_TYPE, RMRK_ROOT | RCLS_EKB_RINGS                             }, // 196
--    {"iohs0_pll_bndy"          , 0x18030018, AXON0::iohs0_pll_bndy         , AXON0_TYPE, RMRK_ROOT | RMRK_HAS_DERIVS | RCLS_EKB_RINGS             }, // 197
--    {"iohs0_pll_bndy_bucket_0" , 0x18030018, AXON0::iohs0_pll_bndy_bucket_0, AXON0_TYPE, RCLS_EKB_RINGS                                       }, // 198
--    {"iohs0_pll_bndy_bucket_1" , 0x18030018, AXON0::iohs0_pll_bndy_bucket_1, AXON0_TYPE, RCLS_EKB_RINGS                                       }, // 199
--    {"iohs0_pll_bndy_bucket_2" , 0x18030018, AXON0::iohs0_pll_bndy_bucket_2, AXON0_TYPE, RCLS_EKB_RINGS                                       }, // 200
--    {"iohs0_pll_bndy_bucket_3" , 0x18030018, AXON0::iohs0_pll_bndy_bucket_3, AXON0_TYPE, RCLS_EKB_RINGS                                       }, // 201
--    {"iohs0_pll_bndy_bucket_4" , 0x18030018, AXON0::iohs0_pll_bndy_bucket_4, AXON0_TYPE, RCLS_EKB_RINGS                                       }, // 202
--    {"iohs0_pll_bndy_bucket_5" , 0x18030018, AXON0::iohs0_pll_bndy_bucket_5, AXON0_TYPE, RCLS_EKB_RINGS                                       }, // 203
--    {"iohs0_pll_bndy_bucket_6" , 0x18030018, AXON0::iohs0_pll_bndy_bucket_6, AXON0_TYPE, RCLS_EKB_RINGS                                       }, // 204
--    {"iohs0_pll_bndy_bucket_7" , 0x18030018, AXON0::iohs0_pll_bndy_bucket_7, AXON0_TYPE, RCLS_EKB_RINGS                                       }, // 205
--    {"iohs1_fure"              , 0x1903600F, AXON1::iohs1_fure             , AXON1_TYPE, RMRK_ROOT | RCLS_EKB_RINGS                             }, // 206
--    {"iohs1_ndl_fure"          , 0x1903040F, AXON1::iohs1_ndl_fure         , AXON1_TYPE, RMRK_ROOT | RCLS_EKB_RINGS                             }, // 207
--    {"iohs1_pdl_fure"          , 0x1903020F, AXON1::iohs1_pdl_fure         , AXON1_TYPE, RMRK_ROOT | RCLS_EKB_RINGS                             }, // 208
--    {"iohs1_pll_func"          , 0x19030010, AXON1::iohs1_pll_func         , AXON1_TYPE, RMRK_ROOT | RCLS_EKB_RINGS                             }, // 209
--    {"iohs2_fure"              , 0x1A03600F, AXON2::iohs2_fure             , AXON2_TYPE, RMRK_ROOT | RCLS_EKB_RINGS                             }, // 210
--    {"iohs2_ndl_fure"          , 0x1A03040F, AXON2::iohs2_ndl_fure         , AXON2_TYPE, RMRK_ROOT | RCLS_EKB_RINGS                             }, // 211
--    {"iohs2_pdl_fure"          , 0x1A03020F, AXON2::iohs2_pdl_fure         , AXON2_TYPE, RMRK_ROOT | RCLS_EKB_RINGS                             }, // 212
--    {"iohs2_pll_func"          , 0x1A030010, AXON2::iohs2_pll_func         , AXON2_TYPE, RMRK_ROOT | RCLS_EKB_RINGS                             }, // 213
--    {"iohs3_fure"              , 0x1B03600F, AXON3::iohs3_fure             , AXON3_TYPE, RMRK_ROOT | RCLS_EKB_RINGS                             }, // 214
--    {"iohs3_ndl_fure"          , 0x1B03040F, AXON3::iohs3_ndl_fure         , AXON3_TYPE, RMRK_ROOT | RCLS_EKB_RINGS                             }, // 215
--    {"iohs3_pdl_fure"          , 0x1B03020F, AXON3::iohs3_pdl_fure         , AXON3_TYPE, RMRK_ROOT | RCLS_EKB_RINGS                             }, // 216
--    {"iohs3_pll_func"          , 0x1B030010, AXON3::iohs3_pll_func         , AXON3_TYPE, RMRK_ROOT | RCLS_EKB_RINGS                             }, // 217
--    {"iohs4_fure"              , 0x1C03600F, AXON4::iohs4_fure             , AXON4_TYPE, RMRK_ROOT | RCLS_EKB_RINGS                             }, // 218
--    {"iohs4_ndl_fure"          , 0x1C03040F, AXON4::iohs4_ndl_fure         , AXON4_TYPE, RMRK_ROOT | RCLS_EKB_RINGS                             }, // 219
--    {"iohs4_pdl_fure"          , 0x1C03020F, AXON4::iohs4_pdl_fure         , AXON4_TYPE, RMRK_ROOT | RCLS_EKB_RINGS                             }, // 220
--    {"iohs4_pll_func"          , 0x1C030010, AXON4::iohs4_pll_func         , AXON4_TYPE, RMRK_ROOT | RCLS_EKB_RINGS                             }, // 221
--    {"iohs5_fure"              , 0x1D03600F, AXON5::iohs5_fure             , AXON5_TYPE, RMRK_ROOT | RCLS_EKB_RINGS                             }, // 222
--    {"iohs5_ndl_fure"          , 0x1D03040F, AXON5::iohs5_ndl_fure         , AXON5_TYPE, RMRK_ROOT | RCLS_EKB_RINGS                             }, // 223
--    {"iohs5_pdl_fure"          , 0x1D03020F, AXON5::iohs5_pdl_fure         , AXON5_TYPE, RMRK_ROOT | RCLS_EKB_RINGS                             }, // 224
--    {"iohs5_pll_func"          , 0x1D030010, AXON5::iohs5_pll_func         , AXON5_TYPE, RMRK_ROOT | RCLS_EKB_RINGS                             }, // 225
--    {"iohs6_fure"              , 0x1E03600F, AXON6::iohs6_fure             , AXON6_TYPE, RMRK_ROOT | RCLS_EKB_RINGS                             }, // 226
--    {"iohs6_ndl_fure"          , 0x1E03040F, AXON6::iohs6_ndl_fure         , AXON6_TYPE, RMRK_ROOT | RCLS_EKB_RINGS                             }, // 227
--    {"iohs6_pdl_fure"          , 0x1E03020F, AXON6::iohs6_pdl_fure         , AXON6_TYPE, RMRK_ROOT | RCLS_EKB_RINGS                             }, // 228
--    {"iohs6_pll_func"          , 0x1E030010, AXON6::iohs6_pll_func         , AXON6_TYPE, RMRK_ROOT | RCLS_EKB_RINGS                             }, // 229
--    {"iohs7_fure"              , 0x1F03600F, AXON7::iohs7_fure             , AXON7_TYPE, RMRK_ROOT | RCLS_EKB_RINGS                             }, // 230
--    {"iohs7_ndl_fure"          , 0x1F03040F, AXON7::iohs7_ndl_fure         , AXON7_TYPE, RMRK_ROOT | RCLS_EKB_RINGS                             }, // 231
--    {"iohs7_pdl_fure"          , 0x1F03020F, AXON7::iohs7_pdl_fure         , AXON7_TYPE, RMRK_ROOT | RCLS_EKB_RINGS                             }, // 232
--    {"iohs7_pll_func"          , 0x1F030010, AXON7::iohs7_pll_func         , AXON7_TYPE, RMRK_ROOT | RCLS_EKB_RINGS                             }, // 233
--    {"eq_fure"                 , 0x2003402F, EQ::eq_fure                   , EQ_TYPE   , RMRK_ROOT | RCLS_EKB_RINGS                             }, // 234
--    {"eq_cmsk"                 , 0x2003402A, EQ::eq_cmsk                   , EQ_TYPE   , RMRK_ROOT | RCLS_EKB_RINGS                             }, // 235
--    {"eq_inex"                 , 0x2003402B, EQ::eq_inex                   , EQ_TYPE   , RMRK_ROOT | RCLS_EKB_RINGS                             }, // 236
--    {"eq_mode"                 , 0x20034021, EQ::eq_mode                   , EQ_TYPE   , RMRK_ROOT | RCLS_EKB_RINGS                             }, // 237
--    {"eq_clkadj_fure"          , 0x2003001F, EQ::eq_clkadj_fure            , EQ_TYPE   , RMRK_ROOT | RCLS_EKB_RINGS                             }, // 238
--    {"eq_clkadj_cmsk"          , 0x2003001A, EQ::eq_clkadj_cmsk            , EQ_TYPE   , RMRK_ROOT | RCLS_EKB_RINGS                             }, // 239
--    {"eq_clkadj_inex"          , 0x2003001B, EQ::eq_clkadj_inex            , EQ_TYPE   , RMRK_ROOT | RCLS_EKB_RINGS                             }, // 240
--    {"eq_clkadj_mode"          , 0x20030011, EQ::eq_clkadj_mode            , EQ_TYPE   , RMRK_ROOT | RCLS_EKB_RINGS                             }, // 241
--    {"ec_cl2_fure"             , 0x2003200F, EQ::ec_cl2_fure               , EQ_TYPE   , RMRK_ROOT | RCLS_EKB_RINGS | RMRK_SCAN_BY_QME            }, // 242
--    {"ec_cl2_cmsk"             , 0x2003200A, EQ::ec_cl2_cmsk               , EQ_TYPE   , RMRK_ROOT | RCLS_EKB_RINGS | RMRK_SCAN_BY_QME            }, // 243
--    {"ec_cl2_inex"             , 0x2003200B, EQ::ec_cl2_inex               , EQ_TYPE   , RMRK_ROOT | RCLS_EKB_RINGS | RMRK_SCAN_BY_QME            }, // 244
--    {"ec_cl2_mode"             , 0x20032001, EQ::ec_cl2_mode               , EQ_TYPE   , RMRK_ROOT | RCLS_EKB_RINGS | RMRK_SCAN_BY_QME            }, // 245
--    {"ec_mma_fure"             , 0x2083000F, EQ::ec_mma_fure               , EQ_TYPE   , RMRK_ROOT | RCLS_EKB_RINGS | RMRK_SCAN_BY_QME            }, // 246
--    {"ec_mma_cmsk"             , 0x2083000A, EQ::ec_mma_cmsk               , EQ_TYPE   , RMRK_ROOT | RCLS_EKB_RINGS | RMRK_SCAN_BY_QME            }, // 247
--    {"ec_mma_inex"             , 0x2083000B, EQ::ec_mma_inex               , EQ_TYPE   , RMRK_ROOT | RCLS_EKB_RINGS | RMRK_SCAN_BY_QME            }, // 248
--    {"ec_l3_fure"              , 0x2003020F, EQ::ec_l3_fure                , EQ_TYPE   , RMRK_ROOT | RCLS_EKB_RINGS | RMRK_SCAN_BY_QME            }, // 249
--    {"ec_l3_cmsk"              , 0x2003020A, EQ::ec_l3_cmsk                , EQ_TYPE   , RMRK_ROOT | RCLS_EKB_RINGS | RMRK_SCAN_BY_QME            }, // 250
--    {"ec_l3_inex"              , 0x2003020B, EQ::ec_l3_inex                , EQ_TYPE   , RMRK_ROOT | RCLS_EKB_RINGS | RMRK_SCAN_BY_QME            }, // 251
--    {"ec_l3_mode"              , 0x20030201, EQ::ec_l3_mode                , EQ_TYPE   , RMRK_ROOT | RCLS_EKB_RINGS | RMRK_SCAN_BY_QME            }, // 252
--    {"n0_abst"                 , 0x02036405, N0::n0_abst                   , N0_TYPE   , RMRK_ROOT | RCLS_EKB_RINGS                           }, // 253
--    {"n1_abst"                 , 0x03035405, N1::n1_abst                   , N1_TYPE   , RMRK_ROOT | RCLS_EKB_RINGS                           }, // 254
--    {"n1_nmmu1_abst"           , 0x03030205, N1::n1_nmmu1_abst             , N1_TYPE   , RMRK_ROOT | RCLS_EKB_RINGS                           }, // 255
--    {"ec_cl2_abst"             , 0x20032005, EQ::ec_cl2_abst               , EQ_TYPE   , RMRK_ROOT | RCLS_EKB_RINGS                           }, // 256
--    {"ec_mma_abst"             , 0x20830005, EQ::ec_mma_abst               , EQ_TYPE   , RMRK_ROOT | RCLS_EKB_RINGS                           }, // 257
-+    {perv_fure              , "perv_fure"               , 0x0103410F, PERV::perv_fure               , PERV_TYPE , RMRK_ROOT | RCLS_EKB_RINGS                             }, // 256
-+    {sbe_fure               , "sbe_fure"                , 0x0103200F, PERV::sbe_fure                , PERV_TYPE , RMRK_ROOT | RCLS_EKB_RINGS                             }, // 257
-+    {occ_fure               , "occ_fure"                , 0x0103080F, PERV::occ_fure                , PERV_TYPE , RMRK_ROOT | RCLS_EKB_RINGS                             }, // 258
-+    {perv_dpll_func         , "perv_dpll_func"          , 0x01030060, PERV::perv_dpll_func          , PERV_TYPE , RMRK_ROOT | RCLS_EKB_RINGS                             }, // 259
-+    {perv_dpll_bndy         , "perv_dpll_bndy"          , 0x01030068, PERV::perv_dpll_bndy          , PERV_TYPE , RMRK_ROOT | RCLS_EKB_RINGS                             }, // 260
-+    {perv_dpll_time         , "perv_dpll_time"          , 0x01030067, PERV::perv_dpll_time          , PERV_TYPE , RMRK_ROOT | RCLS_EKB_RINGS                             }, // 261
-+    {perv_pll_func          , "perv_pll_func"           , 0x01030010, PERV::perv_pll_func           , PERV_TYPE , RMRK_ROOT | RCLS_EKB_RINGS                             }, // 262
-+    {perv_pll_bndy          , "perv_pll_bndy"           , 0x01030018, PERV::perv_pll_bndy           , PERV_TYPE , RMRK_ROOT | RCLS_EKB_RINGS                             }, // 263
-+    {n0_fure                , "n0_fure"                 , 0x0203640F, N0::n0_fure                   , N0_TYPE   , RMRK_ROOT | RCLS_EKB_RINGS                             }, // 264
-+    {n1_fure                , "n1_fure"                 , 0x0303540F, N1::n1_fure                   , N1_TYPE   , RMRK_ROOT | RCLS_EKB_RINGS                             }, // 265
-+    {n1_nmmu1_fure          , "n1_nmmu1_fure"           , 0x0303020F, N1::n1_nmmu1_fure             , N1_TYPE   , RMRK_ROOT | RCLS_EKB_RINGS                             }, // 266
-+    {pci_fure               , "pci_fure"                , 0x08037F8F, PCI::pci_fure                 , PCI_TYPE  , RMRK_ROOT | RCLS_EKB_RINGS                             }, // 267
-+    {pci_pll_func           , "pci_pll_func"            , 0x08030010, PCI::pci_pll_func             , PCI_TYPE  , RMRK_ROOT | RCLS_EKB_RINGS                             }, // 268
-+    {pci_pll_bndy           , "pci_pll_bndy"            , 0x08030018, PCI::pci_pll_bndy             , PCI_TYPE  , RMRK_ROOT | RCLS_EKB_RINGS                             }, // 269
-+    {mc_fure                , "mc_fure"                 , 0x0C036F0F, MC::mc_fure                   , MC_TYPE   , RMRK_ROOT | RCLS_EKB_RINGS                             }, // 270
-+    {mc_pll_func            , "mc_pll_func"             , 0x0C030010, MC::mc_pll_func               , MC_TYPE   , RMRK_ROOT | RCLS_EKB_RINGS                             }, // 271
-+    {mc_pll_bndy            , "mc_pll_bndy"             , 0x0C030018, MC::mc_pll_bndy               , MC_TYPE   , RMRK_ROOT | RMRK_HAS_DERIVS | RCLS_EKB_RINGS             }, // 272
-+    {mc_pll_bndy_bucket_0   , "mc_pll_bndy_bucket_0"    , 0x0C030018, MC::mc_pll_bndy_bucket_0      , MC_TYPE   , RCLS_EKB_RINGS                                       }, // 273
-+    {mc_pll_bndy_bucket_1   , "mc_pll_bndy_bucket_1"    , 0x0C030018, MC::mc_pll_bndy_bucket_1      , MC_TYPE   , RCLS_EKB_RINGS                                       }, // 274
-+    {mc_pll_bndy_bucket_2   , "mc_pll_bndy_bucket_2"    , 0x0C030018, MC::mc_pll_bndy_bucket_2      , MC_TYPE   , RCLS_EKB_RINGS                                       }, // 275
-+    {mc_pll_bndy_bucket_3   , "mc_pll_bndy_bucket_3"    , 0x0C030018, MC::mc_pll_bndy_bucket_3      , MC_TYPE   , RCLS_EKB_RINGS                                       }, // 276
-+    {mc_pll_bndy_bucket_4   , "mc_pll_bndy_bucket_4"    , 0x0C030018, MC::mc_pll_bndy_bucket_4      , MC_TYPE   , RCLS_EKB_RINGS                                       }, // 277
-+    {pau0_fure              , "pau0_fure"               , 0x1003430F, PAU0::pau0_fure               , PAU0_TYPE , RMRK_ROOT | RCLS_EKB_RINGS                             }, // 278
-+    {pau0_pau0_fure         , "pau0_pau0_fure"          , 0x1003200F, PAU0::pau0_pau0_fure          , PAU0_TYPE , RMRK_ROOT | RCLS_EKB_RINGS                             }, // 279
-+    {pau1_fure              , "pau1_fure"               , 0x1103430F, PAU1::pau1_fure               , PAU1_TYPE , RMRK_ROOT | RCLS_EKB_RINGS                             }, // 280
-+    {pau1_pau3_fure         , "pau1_pau3_fure"          , 0x1103200F, PAU1::pau1_pau3_fure          , PAU1_TYPE , RMRK_ROOT | RCLS_EKB_RINGS                             }, // 281
-+    {pau2_fure              , "pau2_fure"               , 0x1203430F, PAU2::pau2_fure               , PAU2_TYPE , RMRK_ROOT | RCLS_EKB_RINGS                             }, // 282
-+    {pau2_pau4_fure         , "pau2_pau4_fure"          , 0x1203200F, PAU2::pau2_pau4_fure          , PAU2_TYPE , RMRK_ROOT | RCLS_EKB_RINGS                             }, // 283
-+    {pau2_pau5_fure         , "pau2_pau5_fure"          , 0x1203100F, PAU2::pau2_pau5_fure          , PAU2_TYPE , RMRK_ROOT | RCLS_EKB_RINGS                             }, // 284
-+    {pau3_fure              , "pau3_fure"               , 0x1303430F, PAU3::pau3_fure               , PAU3_TYPE , RMRK_ROOT | RCLS_EKB_RINGS                             }, // 285
-+    {pau3_pau6_fure         , "pau3_pau6_fure"          , 0x1303200F, PAU3::pau3_pau6_fure          , PAU3_TYPE , RMRK_ROOT | RCLS_EKB_RINGS                             }, // 286
-+    {pau3_pau7_fure         , "pau3_pau7_fure"          , 0x1303100F, PAU3::pau3_pau7_fure          , PAU3_TYPE , RMRK_ROOT | RCLS_EKB_RINGS                             }, // 287
-+    {iohs0_fure             , "iohs0_fure"              , 0x1803600F, AXON0::iohs0_fure             , AXON0_TYPE, RMRK_ROOT | RCLS_EKB_RINGS                             }, // 288
-+    {iohs0_ndl_fure         , "iohs0_ndl_fure"          , 0x1803040F, AXON0::iohs0_ndl_fure         , AXON0_TYPE, RMRK_ROOT | RCLS_EKB_RINGS                             }, // 289
-+    {iohs0_pdl_fure         , "iohs0_pdl_fure"          , 0x1803020F, AXON0::iohs0_pdl_fure         , AXON0_TYPE, RMRK_ROOT | RCLS_EKB_RINGS                             }, // 290
-+    {iohs0_pll_func         , "iohs0_pll_func"          , 0x18030010, AXON0::iohs0_pll_func         , AXON0_TYPE, RMRK_ROOT | RCLS_EKB_RINGS                             }, // 291
-+    {iohs0_pll_bndy         , "iohs0_pll_bndy"          , 0x18030018, AXON0::iohs0_pll_bndy         , AXON0_TYPE, RMRK_ROOT | RMRK_HAS_DERIVS | RCLS_EKB_RINGS             }, // 292
-+    {iohs0_pll_bndy_bucket_0, "iohs0_pll_bndy_bucket_0" , 0x18030018, AXON0::iohs0_pll_bndy_bucket_0, AXON0_TYPE, RCLS_EKB_RINGS                                       }, // 293
-+    {iohs0_pll_bndy_bucket_1, "iohs0_pll_bndy_bucket_1" , 0x18030018, AXON0::iohs0_pll_bndy_bucket_1, AXON0_TYPE, RCLS_EKB_RINGS                                       }, // 294
-+    {iohs0_pll_bndy_bucket_2, "iohs0_pll_bndy_bucket_2" , 0x18030018, AXON0::iohs0_pll_bndy_bucket_2, AXON0_TYPE, RCLS_EKB_RINGS                                       }, // 295
-+    {iohs0_pll_bndy_bucket_3, "iohs0_pll_bndy_bucket_3" , 0x18030018, AXON0::iohs0_pll_bndy_bucket_3, AXON0_TYPE, RCLS_EKB_RINGS                                       }, // 296
-+    {iohs0_pll_bndy_bucket_4, "iohs0_pll_bndy_bucket_4" , 0x18030018, AXON0::iohs0_pll_bndy_bucket_4, AXON0_TYPE, RCLS_EKB_RINGS                                       }, // 297
-+    {iohs0_pll_bndy_bucket_5, "iohs0_pll_bndy_bucket_5" , 0x18030018, AXON0::iohs0_pll_bndy_bucket_5, AXON0_TYPE, RCLS_EKB_RINGS                                       }, // 298
-+    {iohs0_pll_bndy_bucket_6, "iohs0_pll_bndy_bucket_6" , 0x18030018, AXON0::iohs0_pll_bndy_bucket_6, AXON0_TYPE, RCLS_EKB_RINGS                                       }, // 299
-+    {iohs0_pll_bndy_bucket_7, "iohs0_pll_bndy_bucket_7" , 0x18030018, AXON0::iohs0_pll_bndy_bucket_7, AXON0_TYPE, RCLS_EKB_RINGS                                       }, // 300
-+    {iohs1_fure             , "iohs1_fure"              , 0x1903600F, AXON1::iohs1_fure             , AXON1_TYPE, RMRK_ROOT | RCLS_EKB_RINGS                             }, // 301
-+    {iohs1_ndl_fure         , "iohs1_ndl_fure"          , 0x1903040F, AXON1::iohs1_ndl_fure         , AXON1_TYPE, RMRK_ROOT | RCLS_EKB_RINGS                             }, // 302
-+    {iohs1_pdl_fure         , "iohs1_pdl_fure"          , 0x1903020F, AXON1::iohs1_pdl_fure         , AXON1_TYPE, RMRK_ROOT | RCLS_EKB_RINGS                             }, // 303
-+    {iohs1_pll_func         , "iohs1_pll_func"          , 0x19030010, AXON1::iohs1_pll_func         , AXON1_TYPE, RMRK_ROOT | RCLS_EKB_RINGS                             }, // 304
-+    {iohs2_fure             , "iohs2_fure"              , 0x1A03600F, AXON2::iohs2_fure             , AXON2_TYPE, RMRK_ROOT | RCLS_EKB_RINGS                             }, // 305
-+    {iohs2_ndl_fure         , "iohs2_ndl_fure"          , 0x1A03040F, AXON2::iohs2_ndl_fure         , AXON2_TYPE, RMRK_ROOT | RCLS_EKB_RINGS                             }, // 306
-+    {iohs2_pdl_fure         , "iohs2_pdl_fure"          , 0x1A03020F, AXON2::iohs2_pdl_fure         , AXON2_TYPE, RMRK_ROOT | RCLS_EKB_RINGS                             }, // 307
-+    {iohs2_pll_func         , "iohs2_pll_func"          , 0x1A030010, AXON2::iohs2_pll_func         , AXON2_TYPE, RMRK_ROOT | RCLS_EKB_RINGS                             }, // 308
-+    {iohs3_fure             , "iohs3_fure"              , 0x1B03600F, AXON3::iohs3_fure             , AXON3_TYPE, RMRK_ROOT | RCLS_EKB_RINGS                             }, // 309
-+    {iohs3_ndl_fure         , "iohs3_ndl_fure"          , 0x1B03040F, AXON3::iohs3_ndl_fure         , AXON3_TYPE, RMRK_ROOT | RCLS_EKB_RINGS                             }, // 310
-+    {iohs3_pdl_fure         , "iohs3_pdl_fure"          , 0x1B03020F, AXON3::iohs3_pdl_fure         , AXON3_TYPE, RMRK_ROOT | RCLS_EKB_RINGS                             }, // 311
-+    {iohs3_pll_func         , "iohs3_pll_func"          , 0x1B030010, AXON3::iohs3_pll_func         , AXON3_TYPE, RMRK_ROOT | RCLS_EKB_RINGS                             }, // 312
-+    {iohs4_fure             , "iohs4_fure"              , 0x1C03600F, AXON4::iohs4_fure             , AXON4_TYPE, RMRK_ROOT | RCLS_EKB_RINGS                             }, // 313
-+    {iohs4_ndl_fure         , "iohs4_ndl_fure"          , 0x1C03040F, AXON4::iohs4_ndl_fure         , AXON4_TYPE, RMRK_ROOT | RCLS_EKB_RINGS                             }, // 314
-+    {iohs4_pdl_fure         , "iohs4_pdl_fure"          , 0x1C03020F, AXON4::iohs4_pdl_fure         , AXON4_TYPE, RMRK_ROOT | RCLS_EKB_RINGS                             }, // 315
-+    {iohs4_pll_func         , "iohs4_pll_func"          , 0x1C030010, AXON4::iohs4_pll_func         , AXON4_TYPE, RMRK_ROOT | RCLS_EKB_RINGS                             }, // 316
-+    {iohs5_fure             , "iohs5_fure"              , 0x1D03600F, AXON5::iohs5_fure             , AXON5_TYPE, RMRK_ROOT | RCLS_EKB_RINGS                             }, // 317
-+    {iohs5_ndl_fure         , "iohs5_ndl_fure"          , 0x1D03040F, AXON5::iohs5_ndl_fure         , AXON5_TYPE, RMRK_ROOT | RCLS_EKB_RINGS                             }, // 318
-+    {iohs5_pdl_fure         , "iohs5_pdl_fure"          , 0x1D03020F, AXON5::iohs5_pdl_fure         , AXON5_TYPE, RMRK_ROOT | RCLS_EKB_RINGS                             }, // 319
-+    {iohs5_pll_func         , "iohs5_pll_func"          , 0x1D030010, AXON5::iohs5_pll_func         , AXON5_TYPE, RMRK_ROOT | RCLS_EKB_RINGS                             }, // 320
-+    {iohs6_fure             , "iohs6_fure"              , 0x1E03600F, AXON6::iohs6_fure             , AXON6_TYPE, RMRK_ROOT | RCLS_EKB_RINGS                             }, // 321
-+    {iohs6_ndl_fure         , "iohs6_ndl_fure"          , 0x1E03040F, AXON6::iohs6_ndl_fure         , AXON6_TYPE, RMRK_ROOT | RCLS_EKB_RINGS                             }, // 322
-+    {iohs6_pdl_fure         , "iohs6_pdl_fure"          , 0x1E03020F, AXON6::iohs6_pdl_fure         , AXON6_TYPE, RMRK_ROOT | RCLS_EKB_RINGS                             }, // 323
-+    {iohs6_pll_func         , "iohs6_pll_func"          , 0x1E030010, AXON6::iohs6_pll_func         , AXON6_TYPE, RMRK_ROOT | RCLS_EKB_RINGS                             }, // 324
-+    {iohs7_fure             , "iohs7_fure"              , 0x1F03600F, AXON7::iohs7_fure             , AXON7_TYPE, RMRK_ROOT | RCLS_EKB_RINGS                             }, // 325
-+    {iohs7_ndl_fure         , "iohs7_ndl_fure"          , 0x1F03040F, AXON7::iohs7_ndl_fure         , AXON7_TYPE, RMRK_ROOT | RCLS_EKB_RINGS                             }, // 326
-+    {iohs7_pdl_fure         , "iohs7_pdl_fure"          , 0x1F03020F, AXON7::iohs7_pdl_fure         , AXON7_TYPE, RMRK_ROOT | RCLS_EKB_RINGS                             }, // 327
-+    {iohs7_pll_func         , "iohs7_pll_func"          , 0x1F030010, AXON7::iohs7_pll_func         , AXON7_TYPE, RMRK_ROOT | RCLS_EKB_RINGS                             }, // 328
-+    {eq_fure                , "eq_fure"                 , 0x2003402F, EQ::eq_fure                   , EQ_TYPE   , RMRK_ROOT | RCLS_EKB_RINGS                             }, // 329
-+    {eq_cmsk                , "eq_cmsk"                 , 0x2003402A, EQ::eq_cmsk                   , EQ_TYPE   , RMRK_ROOT | RCLS_EKB_RINGS                             }, // 330
-+    {eq_inex                , "eq_inex"                 , 0x2003402B, EQ::eq_inex                   , EQ_TYPE   , RMRK_ROOT | RCLS_EKB_RINGS                             }, // 331
-+    {eq_mode                , "eq_mode"                 , 0x20034021, EQ::eq_mode                   , EQ_TYPE   , RMRK_ROOT | RCLS_EKB_RINGS                             }, // 332
-+    {eq_clkadj_fure         , "eq_clkadj_fure"          , 0x2003001F, EQ::eq_clkadj_fure            , EQ_TYPE   , RMRK_ROOT | RCLS_EKB_RINGS                             }, // 333
-+    {eq_clkadj_cmsk         , "eq_clkadj_cmsk"          , 0x2003001A, EQ::eq_clkadj_cmsk            , EQ_TYPE   , RMRK_ROOT | RCLS_EKB_RINGS                             }, // 334
-+    {eq_clkadj_inex         , "eq_clkadj_inex"          , 0x2003001B, EQ::eq_clkadj_inex            , EQ_TYPE   , RMRK_ROOT | RCLS_EKB_RINGS                             }, // 335
-+    {eq_clkadj_mode         , "eq_clkadj_mode"          , 0x20030011, EQ::eq_clkadj_mode            , EQ_TYPE   , RMRK_ROOT | RCLS_EKB_RINGS                             }, // 336
-+    {ec_cl2_fure            , "ec_cl2_fure"             , 0x2003200F, EQ::ec_cl2_fure               , EQ_TYPE   , RMRK_ROOT | RCLS_EKB_RINGS | RMRK_SCAN_BY_QME            }, // 337
-+    {ec_cl2_cmsk            , "ec_cl2_cmsk"             , 0x2003200A, EQ::ec_cl2_cmsk               , EQ_TYPE   , RMRK_ROOT | RCLS_EKB_RINGS | RMRK_SCAN_BY_QME            }, // 338
-+    {ec_cl2_inex            , "ec_cl2_inex"             , 0x2003200B, EQ::ec_cl2_inex               , EQ_TYPE   , RMRK_ROOT | RCLS_EKB_RINGS | RMRK_SCAN_BY_QME            }, // 339
-+    {ec_cl2_mode            , "ec_cl2_mode"             , 0x20032001, EQ::ec_cl2_mode               , EQ_TYPE   , RMRK_ROOT | RCLS_EKB_RINGS | RMRK_SCAN_BY_QME            }, // 340
-+    {ec_mma_fure            , "ec_mma_fure"             , 0x2083000F, EQ::ec_mma_fure               , EQ_TYPE   , RMRK_ROOT | RCLS_EKB_RINGS | RMRK_SCAN_BY_QME            }, // 341
-+    {ec_mma_cmsk            , "ec_mma_cmsk"             , 0x2083000A, EQ::ec_mma_cmsk               , EQ_TYPE   , RMRK_ROOT | RCLS_EKB_RINGS | RMRK_SCAN_BY_QME            }, // 342
-+    {ec_mma_inex            , "ec_mma_inex"             , 0x2083000B, EQ::ec_mma_inex               , EQ_TYPE   , RMRK_ROOT | RCLS_EKB_RINGS | RMRK_SCAN_BY_QME            }, // 343
-+    {ec_l3_fure             , "ec_l3_fure"              , 0x2003020F, EQ::ec_l3_fure                , EQ_TYPE   , RMRK_ROOT | RCLS_EKB_RINGS | RMRK_SCAN_BY_QME            }, // 344
-+    {ec_l3_cmsk             , "ec_l3_cmsk"              , 0x2003020A, EQ::ec_l3_cmsk                , EQ_TYPE   , RMRK_ROOT | RCLS_EKB_RINGS | RMRK_SCAN_BY_QME            }, // 345
-+    {ec_l3_inex             , "ec_l3_inex"              , 0x2003020B, EQ::ec_l3_inex                , EQ_TYPE   , RMRK_ROOT | RCLS_EKB_RINGS | RMRK_SCAN_BY_QME            }, // 346
-+    {ec_l3_mode             , "ec_l3_mode"              , 0x20030201, EQ::ec_l3_mode                , EQ_TYPE   , RMRK_ROOT | RCLS_EKB_RINGS | RMRK_SCAN_BY_QME            }, // 347
-+    {n0_abst                , "n0_abst"                 , 0x02036405, N0::n0_abst                   , N0_TYPE   , RMRK_ROOT | RCLS_EKB_RINGS                               }, // 348
-+    {n1_abst                , "n1_abst"                 , 0x03035405, N1::n1_abst                   , N1_TYPE   , RMRK_ROOT | RCLS_EKB_RINGS                               }, // 349
-+    {n1_nmmu1_abst          , "n1_nmmu1_abst"           , 0x03030205, N1::n1_nmmu1_abst             , N1_TYPE   , RMRK_ROOT | RCLS_EKB_RINGS                               }, // 350
-+    {ec_cl2_abst            , "ec_cl2_abst"             , 0x20032005, EQ::ec_cl2_abst               , EQ_TYPE   , RMRK_ROOT | RCLS_EKB_RINGS                               }, // 351
-+    {ec_mma_abst            , "ec_mma_abst"             , 0x20830005, EQ::ec_mma_abst               , EQ_TYPE   , RMRK_ROOT | RCLS_EKB_RINGS                               }, // 352
- };
- #endif
- 
-@@ -1030,103 +1039,103 @@ static const RingProperties_t RING_PROPERTIES[NUM_RING_IDS] =
-     {EQ::ec3_l3_repr               , EQ_TYPE   }, // 160
- 
-     // EKB Rings:
--    {PERV::perv_fure               , PERV_TYPE }, // 161
--    {PERV::sbe_fure                , PERV_TYPE }, // 162
--    {PERV::occ_fure                , PERV_TYPE }, // 163
--    {PERV::perv_dpll_func          , PERV_TYPE }, // 164
--    {PERV::perv_dpll_bndy          , PERV_TYPE }, // 165
--    {PERV::perv_dpll_time          , PERV_TYPE }, // 166
--    {PERV::perv_pll_func           , PERV_TYPE }, // 167
--    {PERV::perv_pll_bndy           , PERV_TYPE }, // 168
--    {N0::n0_fure                   , N0_TYPE   }, // 169
--    {N1::n1_fure                   , N1_TYPE   }, // 170
--    {N1::n1_nmmu1_fure             , N1_TYPE   }, // 171
--    {PCI::pci_fure                 , PCI_TYPE  }, // 172
--    {PCI::pci_pll_func             , PCI_TYPE  }, // 173
--    {PCI::pci_pll_bndy             , PCI_TYPE  }, // 174
--    {MC::mc_fure                   , MC_TYPE   }, // 175
--    {MC::mc_pll_func               , MC_TYPE   }, // 176
--    {MC::mc_pll_bndy               , MC_TYPE   }, // 177
--    {MC::mc_pll_bndy_bucket_0      , MC_TYPE   }, // 178
--    {MC::mc_pll_bndy_bucket_1      , MC_TYPE   }, // 179
--    {MC::mc_pll_bndy_bucket_2      , MC_TYPE   }, // 180
--    {MC::mc_pll_bndy_bucket_3      , MC_TYPE   }, // 181
--    {MC::mc_pll_bndy_bucket_4      , MC_TYPE   }, // 182
--    {PAU0::pau0_fure               , PAU0_TYPE }, // 183
--    {PAU0::pau0_pau0_fure          , PAU0_TYPE }, // 184
--    {PAU1::pau1_fure               , PAU1_TYPE }, // 185
--    {PAU1::pau1_pau3_fure          , PAU1_TYPE }, // 186
--    {PAU2::pau2_fure               , PAU2_TYPE }, // 187
--    {PAU2::pau2_pau4_fure          , PAU2_TYPE }, // 188
--    {PAU2::pau2_pau5_fure          , PAU2_TYPE }, // 189
--    {PAU3::pau3_fure               , PAU3_TYPE }, // 190
--    {PAU3::pau3_pau6_fure          , PAU3_TYPE }, // 191
--    {PAU3::pau3_pau7_fure          , PAU3_TYPE }, // 192
--    {AXON0::iohs0_fure             , AXON0_TYPE}, // 193
--    {AXON0::iohs0_ndl_fure         , AXON0_TYPE}, // 194
--    {AXON0::iohs0_pdl_fure         , AXON0_TYPE}, // 195
--    {AXON0::iohs0_pll_func         , AXON0_TYPE}, // 196
--    {AXON0::iohs0_pll_bndy         , AXON0_TYPE}, // 197
--    {AXON0::iohs0_pll_bndy_bucket_0, AXON0_TYPE}, // 198
--    {AXON0::iohs0_pll_bndy_bucket_1, AXON0_TYPE}, // 199
--    {AXON0::iohs0_pll_bndy_bucket_2, AXON0_TYPE}, // 200
--    {AXON0::iohs0_pll_bndy_bucket_3, AXON0_TYPE}, // 201
--    {AXON0::iohs0_pll_bndy_bucket_4, AXON0_TYPE}, // 202
--    {AXON0::iohs0_pll_bndy_bucket_5, AXON0_TYPE}, // 203
--    {AXON0::iohs0_pll_bndy_bucket_6, AXON0_TYPE}, // 204
--    {AXON0::iohs0_pll_bndy_bucket_7, AXON0_TYPE}, // 205
--    {AXON1::iohs1_fure             , AXON1_TYPE}, // 206
--    {AXON1::iohs1_ndl_fure         , AXON1_TYPE}, // 207
--    {AXON1::iohs1_pdl_fure         , AXON1_TYPE}, // 208
--    {AXON1::iohs1_pll_func         , AXON1_TYPE}, // 209
--    {AXON2::iohs2_fure             , AXON2_TYPE}, // 210
--    {AXON2::iohs2_ndl_fure         , AXON2_TYPE}, // 211
--    {AXON2::iohs2_pdl_fure         , AXON2_TYPE}, // 212
--    {AXON2::iohs2_pll_func         , AXON2_TYPE}, // 213
--    {AXON3::iohs3_fure             , AXON3_TYPE}, // 214
--    {AXON3::iohs3_ndl_fure         , AXON3_TYPE}, // 215
--    {AXON3::iohs3_pdl_fure         , AXON3_TYPE}, // 216
--    {AXON3::iohs3_pll_func         , AXON3_TYPE}, // 217
--    {AXON4::iohs4_fure             , AXON4_TYPE}, // 218
--    {AXON4::iohs4_ndl_fure         , AXON4_TYPE}, // 219
--    {AXON4::iohs4_pdl_fure         , AXON4_TYPE}, // 220
--    {AXON4::iohs4_pll_func         , AXON4_TYPE}, // 221
--    {AXON5::iohs5_fure             , AXON5_TYPE}, // 222
--    {AXON5::iohs5_ndl_fure         , AXON5_TYPE}, // 223
--    {AXON5::iohs5_pdl_fure         , AXON5_TYPE}, // 224
--    {AXON5::iohs5_pll_func         , AXON5_TYPE}, // 225
--    {AXON6::iohs6_fure             , AXON6_TYPE}, // 226
--    {AXON6::iohs6_ndl_fure         , AXON6_TYPE}, // 227
--    {AXON6::iohs6_pdl_fure         , AXON6_TYPE}, // 228
--    {AXON6::iohs6_pll_func         , AXON6_TYPE}, // 229
--    {AXON7::iohs7_fure             , AXON7_TYPE}, // 230
--    {AXON7::iohs7_ndl_fure         , AXON7_TYPE}, // 231
--    {AXON7::iohs7_pdl_fure         , AXON7_TYPE}, // 232
--    {AXON7::iohs7_pll_func         , AXON7_TYPE}, // 233
--    {EQ::eq_fure                   , EQ_TYPE   }, // 234
--    {EQ::eq_cmsk                   , EQ_TYPE   }, // 235
--    {EQ::eq_inex                   , EQ_TYPE   }, // 236
--    {EQ::eq_mode                   , EQ_TYPE   }, // 237
--    {EQ::eq_clkadj_fure            , EQ_TYPE   }, // 238
--    {EQ::eq_clkadj_cmsk            , EQ_TYPE   }, // 239
--    {EQ::eq_clkadj_inex            , EQ_TYPE   }, // 240
--    {EQ::eq_clkadj_mode            , EQ_TYPE   }, // 241
--    {EQ::ec_cl2_fure               , EQ_TYPE   }, // 242
--    {EQ::ec_cl2_cmsk               , EQ_TYPE   }, // 243
--    {EQ::ec_cl2_inex               , EQ_TYPE   }, // 244
--    {EQ::ec_cl2_mode               , EQ_TYPE   }, // 245
--    {EQ::ec_mma_fure               , EQ_TYPE   }, // 246
--    {EQ::ec_mma_cmsk               , EQ_TYPE   }, // 247
--    {EQ::ec_mma_inex               , EQ_TYPE   }, // 248
--    {EQ::ec_l3_fure                , EQ_TYPE   }, // 249
--    {EQ::ec_l3_cmsk                , EQ_TYPE   }, // 250
--    {EQ::ec_l3_inex                , EQ_TYPE   }, // 251
--    {EQ::ec_l3_mode                , EQ_TYPE   }, // 252
--    {N0::n0_abst                   , N0_TYPE   }, // 253
--    {N1::n1_abst                   , N1_TYPE   }, // 254
--    {N1::n1_nmmu1_abst             , N1_TYPE   }, // 255
--    {EQ::ec_cl2_abst               , EQ_TYPE   }, // 256
--    {EQ::ec_mma_abst               , EQ_TYPE   }, // 257
-+    {PERV::perv_fure               , PERV_TYPE }, // 256
-+    {PERV::sbe_fure                , PERV_TYPE }, // 257
-+    {PERV::occ_fure                , PERV_TYPE }, // 258
-+    {PERV::perv_dpll_func          , PERV_TYPE }, // 259
-+    {PERV::perv_dpll_bndy          , PERV_TYPE }, // 260
-+    {PERV::perv_dpll_time          , PERV_TYPE }, // 261
-+    {PERV::perv_pll_func           , PERV_TYPE }, // 262
-+    {PERV::perv_pll_bndy           , PERV_TYPE }, // 263
-+    {N0::n0_fure                   , N0_TYPE   }, // 264
-+    {N1::n1_fure                   , N1_TYPE   }, // 265
-+    {N1::n1_nmmu1_fure             , N1_TYPE   }, // 266
-+    {PCI::pci_fure                 , PCI_TYPE  }, // 267
-+    {PCI::pci_pll_func             , PCI_TYPE  }, // 268
-+    {PCI::pci_pll_bndy             , PCI_TYPE  }, // 269
-+    {MC::mc_fure                   , MC_TYPE   }, // 270
-+    {MC::mc_pll_func               , MC_TYPE   }, // 271
-+    {MC::mc_pll_bndy               , MC_TYPE   }, // 272
-+    {MC::mc_pll_bndy_bucket_0      , MC_TYPE   }, // 273
-+    {MC::mc_pll_bndy_bucket_1      , MC_TYPE   }, // 274
-+    {MC::mc_pll_bndy_bucket_2      , MC_TYPE   }, // 275
-+    {MC::mc_pll_bndy_bucket_3      , MC_TYPE   }, // 276
-+    {MC::mc_pll_bndy_bucket_4      , MC_TYPE   }, // 277
-+    {PAU0::pau0_fure               , PAU0_TYPE }, // 278
-+    {PAU0::pau0_pau0_fure          , PAU0_TYPE }, // 279
-+    {PAU1::pau1_fure               , PAU1_TYPE }, // 280
-+    {PAU1::pau1_pau3_fure          , PAU1_TYPE }, // 281
-+    {PAU2::pau2_fure               , PAU2_TYPE }, // 282
-+    {PAU2::pau2_pau4_fure          , PAU2_TYPE }, // 283
-+    {PAU2::pau2_pau5_fure          , PAU2_TYPE }, // 284
-+    {PAU3::pau3_fure               , PAU3_TYPE }, // 285
-+    {PAU3::pau3_pau6_fure          , PAU3_TYPE }, // 286
-+    {PAU3::pau3_pau7_fure          , PAU3_TYPE }, // 287
-+    {AXON0::iohs0_fure             , AXON0_TYPE}, // 288
-+    {AXON0::iohs0_ndl_fure         , AXON0_TYPE}, // 289
-+    {AXON0::iohs0_pdl_fure         , AXON0_TYPE}, // 290
-+    {AXON0::iohs0_pll_func         , AXON0_TYPE}, // 291
-+    {AXON0::iohs0_pll_bndy         , AXON0_TYPE}, // 292
-+    {AXON0::iohs0_pll_bndy_bucket_0, AXON0_TYPE}, // 293
-+    {AXON0::iohs0_pll_bndy_bucket_1, AXON0_TYPE}, // 294
-+    {AXON0::iohs0_pll_bndy_bucket_2, AXON0_TYPE}, // 295
-+    {AXON0::iohs0_pll_bndy_bucket_3, AXON0_TYPE}, // 296
-+    {AXON0::iohs0_pll_bndy_bucket_4, AXON0_TYPE}, // 297
-+    {AXON0::iohs0_pll_bndy_bucket_5, AXON0_TYPE}, // 298
-+    {AXON0::iohs0_pll_bndy_bucket_6, AXON0_TYPE}, // 299
-+    {AXON0::iohs0_pll_bndy_bucket_7, AXON0_TYPE}, // 300
-+    {AXON1::iohs1_fure             , AXON1_TYPE}, // 301
-+    {AXON1::iohs1_ndl_fure         , AXON1_TYPE}, // 302
-+    {AXON1::iohs1_pdl_fure         , AXON1_TYPE}, // 303
-+    {AXON1::iohs1_pll_func         , AXON1_TYPE}, // 304
-+    {AXON2::iohs2_fure             , AXON2_TYPE}, // 305
-+    {AXON2::iohs2_ndl_fure         , AXON2_TYPE}, // 306
-+    {AXON2::iohs2_pdl_fure         , AXON2_TYPE}, // 307
-+    {AXON2::iohs2_pll_func         , AXON2_TYPE}, // 308
-+    {AXON3::iohs3_fure             , AXON3_TYPE}, // 309
-+    {AXON3::iohs3_ndl_fure         , AXON3_TYPE}, // 310
-+    {AXON3::iohs3_pdl_fure         , AXON3_TYPE}, // 311
-+    {AXON3::iohs3_pll_func         , AXON3_TYPE}, // 312
-+    {AXON4::iohs4_fure             , AXON4_TYPE}, // 313
-+    {AXON4::iohs4_ndl_fure         , AXON4_TYPE}, // 314
-+    {AXON4::iohs4_pdl_fure         , AXON4_TYPE}, // 315
-+    {AXON4::iohs4_pll_func         , AXON4_TYPE}, // 316
-+    {AXON5::iohs5_fure             , AXON5_TYPE}, // 317
-+    {AXON5::iohs5_ndl_fure         , AXON5_TYPE}, // 318
-+    {AXON5::iohs5_pdl_fure         , AXON5_TYPE}, // 319
-+    {AXON5::iohs5_pll_func         , AXON5_TYPE}, // 320
-+    {AXON6::iohs6_fure             , AXON6_TYPE}, // 321
-+    {AXON6::iohs6_ndl_fure         , AXON6_TYPE}, // 322
-+    {AXON6::iohs6_pdl_fure         , AXON6_TYPE}, // 323
-+    {AXON6::iohs6_pll_func         , AXON6_TYPE}, // 324
-+    {AXON7::iohs7_fure             , AXON7_TYPE}, // 325
-+    {AXON7::iohs7_ndl_fure         , AXON7_TYPE}, // 326
-+    {AXON7::iohs7_pdl_fure         , AXON7_TYPE}, // 327
-+    {AXON7::iohs7_pll_func         , AXON7_TYPE}, // 328
-+    {EQ::eq_fure                   , EQ_TYPE   }, // 329
-+    {EQ::eq_cmsk                   , EQ_TYPE   }, // 330
-+    {EQ::eq_inex                   , EQ_TYPE   }, // 331
-+    {EQ::eq_mode                   , EQ_TYPE   }, // 332
-+    {EQ::eq_clkadj_fure            , EQ_TYPE   }, // 333
-+    {EQ::eq_clkadj_cmsk            , EQ_TYPE   }, // 334
-+    {EQ::eq_clkadj_inex            , EQ_TYPE   }, // 335
-+    {EQ::eq_clkadj_mode            , EQ_TYPE   }, // 336
-+    {EQ::ec_cl2_fure               , EQ_TYPE   }, // 337
-+    {EQ::ec_cl2_cmsk               , EQ_TYPE   }, // 338
-+    {EQ::ec_cl2_inex               , EQ_TYPE   }, // 339
-+    {EQ::ec_cl2_mode               , EQ_TYPE   }, // 340
-+    {EQ::ec_mma_fure               , EQ_TYPE   }, // 341
-+    {EQ::ec_mma_cmsk               , EQ_TYPE   }, // 342
-+    {EQ::ec_mma_inex               , EQ_TYPE   }, // 343
-+    {EQ::ec_l3_fure                , EQ_TYPE   }, // 344
-+    {EQ::ec_l3_cmsk                , EQ_TYPE   }, // 345
-+    {EQ::ec_l3_inex                , EQ_TYPE   }, // 346
-+    {EQ::ec_l3_mode                , EQ_TYPE   }, // 347
-+    {N0::n0_abst                   , N0_TYPE   }, // 348
-+    {N1::n1_abst                   , N1_TYPE   }, // 349
-+    {N1::n1_nmmu1_abst             , N1_TYPE   }, // 350
-+    {EQ::ec_cl2_abst               , EQ_TYPE   }, // 351
-+    {EQ::ec_mma_abst               , EQ_TYPE   }, // 352
- };
- #endif  // __PPE__
- 
-diff --git a/src/import/chips/p10/utils/imageProcs/p10_tor.C b/src/import/chips/p10/utils/imageProcs/p10_tor.C
-index 2a5009a..c89c707 100644
---- a/src/import/chips/p10/utils/imageProcs/p10_tor.C
-+++ b/src/import/chips/p10/utils/imageProcs/p10_tor.C
-@@ -60,6 +60,7 @@ int _tor_access_ring( void*          io_ringSection,   // Ring section ptr
-     TorOffset_t       ringOffset16; // Offset to actual ring container (for PUT operation)
-     uint32_t          torSlotNum; // TOR slot number (within a chiplet section)
-     uint32_t          rs4Size;    // Size of RS4 ring container/block.
-+    RingId_t          rpIndex = UNDEFINED_RING_ID;
-     RingId_t          numRings;
-     ChipletType_t     chipletType = UNDEFINED_CHIPLET_TYPE;
-     ChipletType_t     chipletIndex = UNDEFINED_CHIPLET_TYPE; // Effective chiplet index
-@@ -85,7 +86,13 @@ int _tor_access_ring( void*          io_ringSection,   // Ring section ptr
-         return rc;
-     }
- 
--    chipletType = ringProps[i_ringId].chipletType;
-+    // Get the ring properties (rp) index
-+    rpIndex = ringid_convert_ringId_to_rpIndex(i_ringId);
-+
-+    // Note:  Prior to entering _tor_access_ring(), we must call _tor_header_check()
-+    //        which also verifies valid ringId.  So no need to check ringId again.
-+
-+    chipletType = ringProps[rpIndex].chipletType;
- 
-     //
-     // Get all other metadata for the chipletType
-@@ -131,7 +138,7 @@ int _tor_access_ring( void*          io_ringSection,   // Ring section ptr
-     //
-     // Determine whether Common or Instance section based on the INSTANCE_RING_MARK
-     //
--    if ( ringProps[i_ringId].idxRing & INSTANCE_RING_MARK )
-+    if ( ringProps[rpIndex].idxRing & INSTANCE_RING_MARK )
-     {
-         bInstCase = 1;
-     }
-@@ -144,7 +151,7 @@ int _tor_access_ring( void*          io_ringSection,   // Ring section ptr
-                    chipletData->numInstanceRings :
-                    chipletData->numCommonRings;
- 
--    idxRingEff   = ringProps[i_ringId].idxRing & INSTANCE_RING_MASK; // Always safe
-+    idxRingEff   = ringProps[rpIndex].idxRing & INSTANCE_RING_MASK; // Always safe
- 
-     //
-     // Check that chipletId is within chiplet's range (Note that we care only about Instance
-@@ -371,18 +378,15 @@ int _tor_header_and_ring_check( void*           i_ringSection,  // Ring section
- 
-     if ( rc != TOR_SUCCESS )
-     {
--        if ( rc == TOR_HOLE_RING_ID )
--        {
--            // "hole" ring. Not an error. No info to retrieve.
--            return rc;
--        }
--        else if ( rc == TOR_INVALID_RING_ID || rc == TOR_INVALID_CHIP_ID )
-+        // Only trace out what we know could be an error.
-+        if ( rc == TOR_INVALID_CHIP_ID )
-         {
--            MY_ERR("ERROR: TOR ringId check: ringid_check_ringId() failed w/rc=0x%08x\n"
--                   " So either invalid ringId(=0x%x) or invalid chipId(=0x%x)\n",
--                   rc, i_ringId, torHeader->chipId);
--            return rc;
-+            MY_ERR("ERROR: TOR ringId check: ringid_check_ringId() failed w/rc=0x%08x"
-+                   " which is an invalid chipId(=0x%x)\n",
-+                   rc, torHeader->chipId);
-         }
-+
-+        return rc;
-     }
- 
-     // Check TOR header
-@@ -438,12 +442,18 @@ int tor_get_single_ring ( void*         i_ringSection,  // Ring section ptr
-                                      i_dbgl );
- 
-     // Explanation to the "list" of RCs that we exclude from tracing out:
--    // TOR_HOLE_RING_ID:   Normal scenario when rings are removed from the ring list
--    if ( rc &&
--         rc != TOR_HOLE_RING_ID )
-+    // TOR_HOLE_RING_ID:    Can happen if a ring has been removed from the ring list
-+    // TOR_INVALID_RING_ID: CAn happen if caller carelessly cycles through ringIds
-+    if ( rc )
-     {
--        MY_ERR("ERROR: tor_get_single_ring(): _tor_header_and_ring_check() failed w/rc=0x%08x\n",
--               rc);
-+        if ( rc != TOR_HOLE_RING_ID &&
-+             rc != TOR_INVALID_RING_ID )
-+        {
-+            MY_ERR("ERROR: tor_get_single_ring: _tor_header_and_ring_check() failed"
-+                   " w/rc=0x%08x\n",
-+                   rc);
-+        }
-+
-         return rc;
-     }
- 
-@@ -458,8 +468,6 @@ int tor_get_single_ring ( void*         i_ringSection,  // Ring section ptr
- 
-     // Explanation to the "list" of RCs that we exclude from tracing out:
-     // TOR_RING_IS_EMPTY:  Normal scenario (will occur frequently).
--    // TOR_HOLE_RING_ID:   Normal scenario when rings are removed from the ring list
--    //                     and leaves behind a "hole".
-     // TOR_RING_HAS_NO_TOR_SLOT:  Will be caused a lot by ipl_image_tool, but is an error if
-     //                     called by any other user.
-     // TOR_INVALID_CHIPLET_ID:  Not necessarily an error as a user may be sweeping through a
-@@ -472,13 +480,12 @@ int tor_get_single_ring ( void*         i_ringSection,  // Ring section ptr
-     //                     in both ipl_image_tool and ipl_customize (RT_QME phase).
-     if ( rc &&
-          rc != TOR_RING_IS_EMPTY &&
--         rc != TOR_HOLE_RING_ID &&
-          rc != TOR_RING_HAS_NO_TOR_SLOT &&
-          rc != TOR_INVALID_CHIPLET_ID &&
-          rc != TOR_INVALID_CHIPLET_TYPE )
-     {
--        MY_ERR("ERROR: tor_get_single_ring(): _tor_access_ring() failed w/rc=0x%08x\n", rc);
--
-+        MY_ERR("ERROR: tor_get_single_ring: _tor_access_ring() failed w/rc=0x%08x\n",
-+               rc);
-         return rc;
-     }
- 
-@@ -507,7 +514,7 @@ int tor_append_ring( void*           io_ringSection,       // Ring section ptr
- 
-     if (rc)
-     {
--        MY_ERR("ERROR: tor_append_ring(): _tor_header_and_ring_check() failed w/rc=0x%08x\n",
-+        MY_ERR("ERROR: tor_append_ring: _tor_header_and_ring_check() failed w/rc=0x%08x\n",
-                rc);
-         return rc;
-     }
-@@ -539,7 +546,7 @@ int tor_append_ring( void*           io_ringSection,       // Ring section ptr
-     if ( rc &&
-          rc != TOR_INVALID_CHIPLET_TYPE )
-     {
--        MY_ERR("ERROR: tor_append_ring(): _tor_access_ring() failed w/rc=0x%08x for"
-+        MY_ERR("ERROR: tor_append_ring: _tor_access_ring() failed w/rc=0x%08x for"
-                " ringId=0x%x\n",
-                rc, i_ringId);
-         return rc;
-@@ -768,19 +775,15 @@ int dyn_get_ring( void*          i_ringSection,
- 
-     if ( rc != TOR_SUCCESS )
-     {
--        if ( rc == TOR_HOLE_RING_ID )
-+        // Only trace out what we know could be an error.
-+        if ( rc == TOR_INVALID_CHIP_ID )
-         {
--            // "hole" ring. Not an error. No info to retrieve.
--            return rc;
-+            MY_ERR("ERROR: dyn_get_ring: ringid_check_ringId() failed w/rc=0x%08x"
-+                   " which is an invalid chipId(=0x%x)\n",
-+                   rc, torHeader->chipId);
-         }
--        else if ( rc == TOR_INVALID_RING_ID || rc == TOR_INVALID_CHIP_ID )
--        {
--            MY_ERR("ERROR: dyn_get_ring(): ringid_check_ringId() failed w/rc=0x%08x\n"
--                   " So either invalid ringId(=0x%x) or invalid chipId(=0x%x)\n",
--                   rc, i_ringId, torHeader->chipId);
- 
--            return rc;
--        }
-+        return rc;
-     }
- 
-     // TOR header check
-@@ -791,7 +794,7 @@ int dyn_get_ring( void*          i_ringSection,
-          torHeader->ddLevel != i_ddLevel ||
-          torHeader->rtVersion != RING_TABLE_VERSION_HWIMG )
-     {
--        MY_ERR("ERROR: dyn_get_ring(): TOR header check failed as follows:\n"
-+        MY_ERR("ERROR: dyn_get_ring: TOR header check failed as follows:\n"
-                " torHeader->magic(=0x%08x) != TOR_MAGIC_DYN(=0x%08x)\n"
-                " torHeader->version(=%u) != TOR_VERSION(=%u)\n"
-                " torHeader->ddLevel(=0x%02x) != i_ddLevel(=0x%02x)\n"
--- 
-1.8.2.2
-
diff --git a/openpower/package/hostboot-p10/Config.in b/openpower/package/hostboot-p10/Config.in
index 5c68031..a7de170 100644
--- a/openpower/package/hostboot-p10/Config.in
+++ b/openpower/package/hostboot-p10/Config.in
@@ -25,7 +25,7 @@
 
 config BR2_HOSTBOOT_P10_VERSION
 	string
-	default "0d960df7b71ac04870f5cdab061c42e7fa29f301" if BR2_HOSTBOOT_P10_LATEST_VERSION
+	default "34e514df68cc7c9d81132bf90d78b25ca83e4d9d" if BR2_HOSTBOOT_P10_LATEST_VERSION
 	default BR2_HOSTBOOT_P10_CUSTOM_VERSION_VALUE \
 		if BR2_HOSTBOOT_P10_CUSTOM_VERSION