diff options
author | Zane Shelley <zshelle@us.ibm.com> | 2016-12-02 14:50:47 -0600 |
---|---|---|
committer | Zane C. Shelley <zshelle@us.ibm.com> | 2016-12-09 18:17:34 -0500 |
commit | 074d8aa2d032263ca5d65f187e59b01223bde97b (patch) | |
tree | adb613fd5e3080e0c837d6431f4d336bbb95765a /src | |
parent | cea5826bbee5882fde750220f3f10d589d269a61 (diff) | |
download | talos-hostboot-074d8aa2d032263ca5d65f187e59b01223bde97b.tar.gz talos-hostboot-074d8aa2d032263ca5d65f187e59b01223bde97b.zip |
PRD: enable error log parsing support for UE table
Change-Id: I5b61728c007463bb865cb8bd1466372468ef8a1d
RTC: 165374
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/33356
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Reviewed-by: Benjamin J. Weisenbeck <bweisenb@us.ibm.com>
Reviewed-by: Brian J. Stegmiller <bjs@us.ibm.com>
Reviewed-by: Caleb N. Palmer <cnpalmer@us.ibm.com>
Reviewed-by: Zane C. Shelley <zshelle@us.ibm.com>
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/33654
Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com>
Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/usr/diag/prdf/common/plugins/prdfLogParse_common.C | 2 | ||||
-rw-r--r-- | src/usr/diag/prdf/common/plugins/prdfMemLogParse.C | 50 |
2 files changed, 19 insertions, 33 deletions
diff --git a/src/usr/diag/prdf/common/plugins/prdfLogParse_common.C b/src/usr/diag/prdf/common/plugins/prdfLogParse_common.C index ef22338f1..ab02eed68 100644 --- a/src/usr/diag/prdf/common/plugins/prdfLogParse_common.C +++ b/src/usr/diag/prdf/common/plugins/prdfLogParse_common.C @@ -422,11 +422,11 @@ bool parseCaptureData( void * i_buffer, uint32_t i_buflen, { i_parser.PrintString( sigHeaderString, "No Data Found" ); } -/* TODO: RTC 136126 else if ( Util::hashString("MEM_UE_TABLE") == sigId ) { parseMemUeTable( sigData, sigDataSize, i_parser ); } +/* TODO: RTC 136126 else if ( Util::hashString("MEM_CE_TABLE") == sigId ) { parseMemCeTable( sigData, sigDataSize, i_parser ); diff --git a/src/usr/diag/prdf/common/plugins/prdfMemLogParse.C b/src/usr/diag/prdf/common/plugins/prdfMemLogParse.C index f70a55d9c..bb2ede2dd 100644 --- a/src/usr/diag/prdf/common/plugins/prdfMemLogParse.C +++ b/src/usr/diag/prdf/common/plugins/prdfMemLogParse.C @@ -2991,7 +2991,6 @@ void parseMemMruData( ErrlUsrParser & i_parser, //------------------------------------------------------------------------------ -/* TODO RTC 136126 bool parseMemUeTable( uint8_t * i_buffer, uint32_t i_buflen, ErrlUsrParser & i_parser ) { @@ -3016,23 +3015,21 @@ bool parseMemUeTable( uint8_t * i_buffer, uint32_t i_buflen, { uint32_t idx = i * ENTRY_SIZE; - uint32_t count = i_buffer[idx ]; // 8-bit - uint32_t type = i_buffer[idx+1] >> 4; // 4-bit - - uint32_t mrnk = (i_buffer[idx+2] >> 5) & 0x7; // 3-bit - uint32_t srnk = (i_buffer[idx+2] >> 2) & 0x7; // 3-bit - uint32_t svld = (i_buffer[idx+2] >> 1) & 0x1; // 1-bit - - uint32_t row0 = i_buffer[idx+2] & 0x1; - uint32_t row1_8 = i_buffer[idx+3]; - uint32_t row9_16 = i_buffer[idx+4]; - uint32_t row = (row0 << 16) | (row1_8 << 8) | row9_16; // 17-bit - - uint32_t bnk = i_buffer[idx+5] >> 4; // 4-bit - - uint32_t col0_3 = i_buffer[idx+5] & 0xf; - uint32_t col4_11 = i_buffer[idx+6]; - uint32_t col = (col0_3 << 8) | col4_11; // 12-bit + uint32_t count = i_buffer[idx ]; // 8-bit + uint32_t type = i_buffer[idx+1] >> 4; // 4-bit + // 4 spare bits // 4-bit + uint32_t mrnk = (i_buffer[idx+2] >> 5) & 0x7; // 3-bit + uint32_t srnk = (i_buffer[idx+2] >> 2) & 0x7; // 3-bit + uint32_t row0_1 = i_buffer[idx+2] & 0x3; // 2-bit + uint32_t row2_9 = i_buffer[idx+3]; // 8-bit + uint32_t row10_17 = i_buffer[idx+4]; // 8-bit + uint32_t bnk = (i_buffer[idx+5] >> 3) & 0x1f; // 5-bit + // 2 spare bits // 2-bit + uint32_t col0 = i_buffer[idx+5] & 0x1; // 1-bit + uint32_t col1_8 = i_buffer[idx+6]; // 8-bit + + uint32_t row = (row0_1 << 16) | (row2_9 << 8) | row10_17; + uint32_t col = (col0 << 8) | col1_8; const char * type_str = "UNKNOWN "; // 13 characters switch ( type ) @@ -3043,29 +3040,18 @@ bool parseMemUeTable( uint8_t * i_buffer, uint32_t i_buflen, case FETCH_UE: type_str = "FETCH_UE "; break; } - char rank_str[DATA_SIZE]; // 4 characters - if ( 1 == svld ) - { - snprintf( rank_str, DATA_SIZE, "m%ds%d", mrnk, srnk ); - } - else - { - snprintf( rank_str, DATA_SIZE, "m%d ", mrnk ); - } - char header[HEADER_SIZE] = { '\0' }; - snprintf( header, HEADER_SIZE, " 0x%02x %s", count, type_str ); + snprintf( header, HEADER_SIZE, " %3d %s", count, type_str ); char data[DATA_SIZE] = { '\0' }; - snprintf( data, DATA_SIZE, "%s 0x%01x 0x%05x 0x%03x", - rank_str, bnk, row, col ); + snprintf( data, DATA_SIZE, "m%ds%d 0x%02x 0x%05x 0x%03x", + mrnk, srnk, bnk, row, col ); i_parser.PrintString( header, data ); } return rc; } -*/ //------------------------------------------------------------------------------ |