summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorspashabk-in <shakeebbk@in.ibm.com>2017-06-23 01:48:59 -0500
committerSachin Gupta <sgupta2m@in.ibm.com>2017-06-30 12:18:41 -0400
commitd9b5ac11981194f9b3eeb850e853762bdee5e739 (patch)
treeba8727809a3ba4c987396b093c86c52084186038 /src
parentec4e890770270ff25f2b29c4338ba1b5eade5e84 (diff)
downloadtalos-sbe-d9b5ac11981194f9b3eeb850e853762bdee5e739.tar.gz
talos-sbe-d9b5ac11981194f9b3eeb850e853762bdee5e739.zip
Install DD2 only changes and support DD2 attrdump
Get 'make install_DD2' working without making DD1 before hand cmvc-prereq:1027517 Change-Id: I5b64759bc3ffbe5ca16d677e28cb8f4433f4e700 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/42345 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Reviewed-by: Sachin Gupta <sgupta2m@in.ibm.com> Reviewed-by: RAJA DAS <rajadas2@in.ibm.com>
Diffstat (limited to 'src')
-rw-r--r--src/build/Makefile25
-rw-r--r--src/build/img_defs.mk4
-rw-r--r--src/sbefw/plugins/sbeUserDataParser.C8
-rw-r--r--src/sbefw/sbeFFDC.C6
-rw-r--r--src/sbefw/sbeFFDCType.H7
-rw-r--r--src/test/testcases/testSbeDump.py4
-rwxr-xr-xsrc/tools/utils/sbePrime.py5
7 files changed, 41 insertions, 18 deletions
diff --git a/src/build/Makefile b/src/build/Makefile
index b62287bb..f87c3aae 100644
--- a/src/build/Makefile
+++ b/src/build/Makefile
@@ -177,20 +177,19 @@ endif
install: all tar
tar:
-# TODO:Remove this line once Simics supports DD specific files
- @cp $(IMG_DIR)/sbe_seeprom_DD1.bin $(IMG_DIR)/sbe_seeprom.bin | true
- @cp $(IMG_DIR)/sbeStringFile_DD1 $(IMG_DIR)/sbeStringFile | true
+ @cp $(IMG_DIR)/sbe_seeprom_DD1.bin $(IMG_DIR)/sbe_seeprom.bin || true
+ @cp $(IMG_DIR)/$(SBE_SYMBOLS_NAME) $(IMG_DIR)/sbeStringFile || true
@echo "Installing simics.tar"
- @rm -rf $(OBJDIR)/simics-tar-dir
- @mkdir $(OBJDIR)/simics-tar-dir
- @mkdir $(OBJDIR)/simics-tar-dir/ppetracepp
- @mkdir $(OBJDIR)/simics-tar-dir/parserplugins
- @cp $(SIMICS_PPE_TAR_FILES) $(OBJDIR)/simics-tar-dir
- @cp $(SIMICS_BB_TAR_FILES) $(OBJDIR)/simics-tar-dir
- @cp $(SIMICS_PPETRACEPP_TAR_FILES) $(OBJDIR)/simics-tar-dir/ppetracepp
- @cp $(SIMICS_PARSERPLUGINS_TAR_FILES) $(OBJDIR)/simics-tar-dir/parserplugins
- @cd $(OBJDIR)/simics-tar-dir && tar -cvf simics.tar * && mv simics.tar $(IMG_DIR) && cd ..
- @rm -rf $(OBJDIR)/simics-tar-dir
+ @rm -rf $(TAR_OBJDIR)
+ @mkdir $(TAR_OBJDIR)
+ @mkdir $(TAR_OBJDIR)/ppetracepp
+ @mkdir $(TAR_OBJDIR)/parserplugins
+ @cp $(SIMICS_PPE_TAR_FILES) $(TAR_OBJDIR)
+ @cp $(SIMICS_BB_TAR_FILES) $(TAR_OBJDIR)
+ @cp $(SIMICS_PPETRACEPP_TAR_FILES) $(TAR_OBJDIR)/ppetracepp
+ @cp $(SIMICS_PARSERPLUGINS_TAR_FILES) $(TAR_OBJDIR)/parserplugins
+ @cd $(TAR_OBJDIR) && tar -cvf simics.tar * && mv simics.tar $(IMG_DIR) && cd ..
+ @rm -rf $(TAR_OBJDIR)
@echo "Generated simics.tar in Sbe images Directory"
.PHONY: all normalize defaultset appendloader add_LoaderAddr symbols report \
diff --git a/src/build/img_defs.mk b/src/build/img_defs.mk
index 220919a7..c56d321a 100644
--- a/src/build/img_defs.mk
+++ b/src/build/img_defs.mk
@@ -198,6 +198,10 @@ ifndef BASE_OBJDIR
export BASE_OBJDIR = $(SBE_ROOT_DIR)/obj/$(IMAGE_SUFFIX)
endif
+ifndef TAR_OBJDIR
+export TAR_OBJDIR = $(SBE_ROOT_DIR)/obj/simics-tar-dir
+endif
+
ifndef P9_XIP_SRCDIR
export P9_XIP_SRCDIR = $(IMPORT_SRCDIR)/chips/p9/xip
endif
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;
diff --git a/src/test/testcases/testSbeDump.py b/src/test/testcases/testSbeDump.py
index 180795f6..01ae81a7 100644
--- a/src/test/testcases/testSbeDump.py
+++ b/src/test/testcases/testSbeDump.py
@@ -76,6 +76,10 @@ def main():
print ("\ncommitID = " + str(hex(commitID)))
data = testUtil.readDsEntryReturnVal()
+ ddLevel = ((data[0] << 24) | (data[1] << 16) | (data[2] << 8) | data[3])
+ print ("\nddLevel = " + str(hex(ddLevel)))
+
+ data = testUtil.readDsEntryReturnVal()
header = ((data[0] << 24) | (data[1] << 16) | (data[2] << 8) | data[3])
print ("\nHeader = " + str(hex(header)))
diff --git a/src/tools/utils/sbePrime.py b/src/tools/utils/sbePrime.py
index 986a2733..1ee77c63 100755
--- a/src/tools/utils/sbePrime.py
+++ b/src/tools/utils/sbePrime.py
@@ -240,11 +240,10 @@ def main():
exit_main(rc_shell)
# Files to copy for sbe prime
- # TODO via RTC:168436 - remove sbe_seeprom.bin
if ddlevel == "None":
- PRIME_FILE_LIST ="sbe_sp_intf.H,simics.tar,sbe_seeprom.bin,sbe_seeprom_DD1.bin,sbe_seeprom_DD2.bin"
+ PRIME_FILE_LIST ="sbe_sp_intf.H,simics.tar,sbe_seeprom_DD1.bin,sbe_seeprom_DD2.bin"
else:
- PRIME_FILE_LIST ="sbe_sp_intf.H,simics.tar,sbe_seeprom.bin,sbe_seeprom_"+ddlevel+".bin"
+ PRIME_FILE_LIST ="sbe_sp_intf.H,simics.tar,sbe_seeprom_"+ddlevel+".bin"
#----------------------------------------
# 4) Copy the files from repo to sandbox
OpenPOWER on IntegriCloud