diff options
Diffstat (limited to 'src/usr/diag')
-rw-r--r-- | src/usr/diag/prdf/common/plat/mem/prdfMemAddress.H | 2 | ||||
-rw-r--r-- | src/usr/diag/prdf/plat/mem/prdfMemDynDealloc.C | 10 |
2 files changed, 8 insertions, 4 deletions
diff --git a/src/usr/diag/prdf/common/plat/mem/prdfMemAddress.H b/src/usr/diag/prdf/common/plat/mem/prdfMemAddress.H index 788b0da43..142eac1ce 100644 --- a/src/usr/diag/prdf/common/plat/mem/prdfMemAddress.H +++ b/src/usr/diag/prdf/common/plat/mem/prdfMemAddress.H @@ -114,7 +114,7 @@ class MemAddr * @param i_rnk Rank See MemRank class * @param i_bnk Bank MBA (DDR4): bg1-bg0,b1-b0 (4-bit) * MBA (DDR3): b2-b0 (3-bit) - * MCBIST: bg0-bg1,b0-b2 (5-bit) + * MCBIST: b0-b2,bg0-bg1 (5-bit) * @param i_row Row MBA: r17-r0 (18-bit) * MCBIST: r0-r17 (18-bit) * @param i_col Column MBA: c13,c11,c9-c3 (9-bit) diff --git a/src/usr/diag/prdf/plat/mem/prdfMemDynDealloc.C b/src/usr/diag/prdf/plat/mem/prdfMemDynDealloc.C index b2a6c7521..7c2ce36aa 100644 --- a/src/usr/diag/prdf/plat/mem/prdfMemDynDealloc.C +++ b/src/usr/diag/prdf/plat/mem/prdfMemDynDealloc.C @@ -164,7 +164,9 @@ int32_t __getMcaPortAddr( ExtensibleChip * i_chip, MemAddr i_addr, if ( 0 == rnkBits ) { if ( twoDimmConfig ) // The DIMM select goes into part 3. + { rnk_pt3 = dslct; rnkBits_pt3 = 1; + } } else // At least one master or slave. { @@ -173,7 +175,9 @@ int32_t __getMcaPortAddr( ExtensibleChip * i_chip, MemAddr i_addr, rnk_pt2 = rnk >> 1; rnkBits_pt2 = rnkBits - 1; if ( twoDimmConfig ) // The DIMM select goes into part 1. + { rnk_pt1 = dslct; rnkBits_pt1 = 1; + } } // Split the row into its components. @@ -187,10 +191,10 @@ int32_t __getMcaPortAddr( ExtensibleChip * i_chip, MemAddr i_addr, uint64_t c3 = (col & 0x01); // Split the bank into its components. - uint64_t bg0_bg1 = (bnk & 0x18) >> 3; - uint64_t b0 = (bnk & 0x04) >> 2; - uint64_t b1 = (bnk & 0x02) >> 1; + uint64_t b0 = (bnk & 0x10) >> 4; + uint64_t b1 = (bnk & 0x08) >> 3; // NOTE: B2 is not supported on Nimbus. + uint64_t bg0_bg1 = (bnk & 0x03); // Now start building the flexible part of the address (bits 0-7,23-33). o_addr = (o_addr << rnkBits_pt1 ) | rnk_pt1; |