summaryrefslogtreecommitdiffstats
path: root/src/sbefw
diff options
context:
space:
mode:
Diffstat (limited to 'src/sbefw')
-rw-r--r--src/sbefw/plugins/sbeUserDataParser.C8
-rw-r--r--src/sbefw/sbeFFDC.C6
-rw-r--r--src/sbefw/sbeFFDCType.H7
3 files changed, 19 insertions, 2 deletions
diff --git a/src/sbefw/plugins/sbeUserDataParser.C b/src/sbefw/plugins/sbeUserDataParser.C
index b1f010a5..fc6cff19 100644
--- a/src/sbefw/plugins/sbeUserDataParser.C
+++ b/src/sbefw/plugins/sbeUserDataParser.C
@@ -43,7 +43,7 @@
#define SBE_ATTR_DUMP_HEADLINE "SBE Attributes Dump"
#define P9_XIP_ATTR_CMD "-ifs attrdump"
#define SBE_STRING_FILE "sbeStringFile"
-#define SBE_SEEPROM_BIN "sbe_seeprom.bin"
+std::string SBE_SEEPROM_BIN = "sbe_seeprom_DD1.bin";
#define SBE_PARSER_MAX_LOCAL_BUFFER 8192
@@ -176,6 +176,10 @@ int parseSbeFFDC(ErrlUsrParser & i_parser, const void * i_pBuffer,
(uint16_t)l_pData.secondaryStatus);
i_parser.PrintNumber("FW Commit ID ", "0x%08X",
(uint32_t)l_pData.fwCommitID);
+ if(l_pData.ddLevel == SBE_FFDC_DD2)
+ {
+ SBE_SEEPROM_BIN = "sbe_seeprom_DD2.bin";
+ }
//loop through the number of fields configured
uint32_t l_dumpFields = l_pData.dumpFields.get();
while(l_dumpFields && !l_rc)
@@ -240,7 +244,7 @@ int parseSbeFFDC(ErrlUsrParser & i_parser, const void * i_pBuffer,
// -ifs attrdump <attr dump file> 2>&1
l_strCmd1 << findSbeFile(P9_XIP_TOOL)
<< " "
- << findSbeFile(SBE_SEEPROM_BIN)
+ << findSbeFile(SBE_SEEPROM_BIN.c_str())
<< " "
<< P9_XIP_ATTR_CMD
<< " "
diff --git a/src/sbefw/sbeFFDC.C b/src/sbefw/sbeFFDC.C
index 8bff48d5..09a381dd 100644
--- a/src/sbefw/sbeFFDC.C
+++ b/src/sbefw/sbeFFDC.C
@@ -101,6 +101,12 @@ uint32_t SbeFFDCPackage::sendOverFIFO(const sbeRespGenHdr_t &i_hdr,
iv_sbeFFDCDataHeader.primaryStatus = i_hdr.primaryStatus;
iv_sbeFFDCDataHeader.secondaryStatus = i_hdr.secondaryStatus;
iv_sbeFFDCDataHeader.fwCommitID = SBE_COMMIT_ID;
+#ifdef DD1
+ iv_sbeFFDCDataHeader.ddLevel = SBE_FFDC_DD1;
+#endif
+#ifdef DD2
+ iv_sbeFFDCDataHeader.ddLevel = SBE_FFDC_DD2;
+#endif
// Set failed command information
// Sequence Id is 0 by default for Fifo interface
iv_sbeFFDCHeader.setCmdInfo(0, i_hdr.cmdClass, i_hdr.command);
diff --git a/src/sbefw/sbeFFDCType.H b/src/sbefw/sbeFFDCType.H
index 8870d17f..38e277c8 100644
--- a/src/sbefw/sbeFFDCType.H
+++ b/src/sbefw/sbeFFDCType.H
@@ -30,6 +30,12 @@
#define SBE_FFDC_TRACE_DUMP 0x0002
#define SBE_FFDC_ALL_DUMP 0xFFFF
+enum SBE_FFDC_DD_LEVEL
+{
+ SBE_FFDC_DD1 = 0,
+ SBE_FFDC_DD2 = 1
+};
+
/* Structure indicating the contents of FFDC package
* value 'true' - field present;value 'false' - field not present
* bit_0 - attribute dump
@@ -96,6 +102,7 @@ typedef struct
uint32_t primaryStatus:16;//Chip Op Primary status
uint32_t secondaryStatus:16;//Chip Op Secondary status
uint32_t fwCommitID;// FW commit ID
+ uint32_t ddLevel;// DD level of the SBE
sbeFFDCDumpFields_t dumpFields;//bitmapped dumpFields
} sbeFFDCDataHeader_t;
OpenPOWER on IntegriCloud