diff --git a/openpower/package/hcode-p10/Config.in b/openpower/package/hcode-p10/Config.in
index 31a045b..7dc5c34 100644
--- a/openpower/package/hcode-p10/Config.in
+++ b/openpower/package/hcode-p10/Config.in
@@ -31,7 +31,7 @@
 
 config BR2_HCODE_P10_VERSION
 	string
-	default "hw051920a.opmst10" if BR2_HCODE_P10_LATEST_VERSION
+	default "hw052020a.opmst10" if BR2_HCODE_P10_LATEST_VERSION
 	default BR2_HCODE_P10_CUSTOM_VERSION_VALUE \
 		if BR2_HCODE_P10_CUSTOM_VERSION
 
diff --git a/openpower/package/hostboot-binaries/Config.in b/openpower/package/hostboot-binaries/Config.in
index 7df005f..a4fa210 100644
--- a/openpower/package/hostboot-binaries/Config.in
+++ b/openpower/package/hostboot-binaries/Config.in
@@ -24,7 +24,7 @@
 
 config BR2_HOSTBOOT_BINARIES_VERSION
 	string
-	default "hw051220a.opmst10" if BR2_HOSTBOOT_BINARIES_LATEST_VERSION
+	default "hw052020a.opmst10" if BR2_HOSTBOOT_BINARIES_LATEST_VERSION
 	default BR2_HOSTBOOT_BINARIES_CUSTOM_VERSION_VALUE \
 		if BR2_HOSTBOOT_BINARIES_CUSTOM_VERSION
 
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
new file mode 100644
index 0000000..97858a3
--- /dev/null
+++ b/openpower/package/hostboot-p10/0001-Mvpd-Ekb-ringId-gap-discontinuity-support.patch
@@ -0,0 +1,3494 @@
+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 5cc19af..5c68031 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 "4ce5a62b5d20f6038e46c6f168f33b7cbb60c1e7" if BR2_HOSTBOOT_P10_LATEST_VERSION
+	default "0d960df7b71ac04870f5cdab061c42e7fa29f301" if BR2_HOSTBOOT_P10_LATEST_VERSION
 	default BR2_HOSTBOOT_P10_CUSTOM_VERSION_VALUE \
 		if BR2_HOSTBOOT_P10_CUSTOM_VERSION
 
