summaryrefslogtreecommitdiffstats
path: root/src/include
diff options
context:
space:
mode:
authorIlya Smirnov <ismirno@us.ibm.com>2017-07-11 11:39:08 -0500
committerDaniel M. Crowell <dcrowell@us.ibm.com>2017-08-22 10:04:10 -0400
commit818acb95a2dc8ff8e94c652e0964f013c1bf34cb (patch)
tree58beb81f944d85df9a62a3e3efca278d890c0ab2 /src/include
parent8344a11d2ff2a23a83f2e78d139f5067544850d5 (diff)
downloadtalos-hostboot-818acb95a2dc8ff8e94c652e0964f013c1bf34cb.tar.gz
talos-hostboot-818acb95a2dc8ff8e94c652e0964f013c1bf34cb.zip
IPL Time Checkstop Analysis Part 1: Load OCC
First part of the IPL Time Checkstop Analysis story. The OCC image gets loaded from the PNOR directly into SRAM in istep 6.11. The OCC is reset in step 21.1 and the image is reloaded to HOMER. Change-Id: I73ce96b81b311d7ae54356c64aeec816d52fafbb RTC:155065 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/43574 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins OP HW <op-hw-jenkins+hostboot@us.ibm.com> Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Reviewed-by: Zane C. Shelley <zshelle@us.ibm.com> Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src/include')
-rw-r--r--src/include/usr/isteps/istep06list.H3
-rw-r--r--src/include/usr/isteps/istep14list.H1
-rw-r--r--src/include/usr/isteps/istep16list.H3
-rw-r--r--src/include/usr/isteps/pm/occCheckstop.H32
-rw-r--r--src/include/usr/util/utillidmgr.H1
5 files changed, 26 insertions, 14 deletions
diff --git a/src/include/usr/isteps/istep06list.H b/src/include/usr/isteps/istep06list.H
index 073093812..fb14022b3 100644
--- a/src/include/usr/isteps/istep06list.H
+++ b/src/include/usr/isteps/istep06list.H
@@ -236,9 +236,6 @@ const DepModInfo g_istep06Dependancies = {
DEP_LIB(libsbe.so),
DEP_LIB(libpm.so),
DEP_LIB(libp9_cpuWkup.so),
-#ifdef CONFIG_IPLTIME_CHECKSTOP_ANALYSIS
- DEP_LIB(libocc.so),
-#endif
NULL
}
};
diff --git a/src/include/usr/isteps/istep14list.H b/src/include/usr/isteps/istep14list.H
index 5c57dfa87..b8b80af9b 100644
--- a/src/include/usr/isteps/istep14list.H
+++ b/src/include/usr/isteps/istep14list.H
@@ -198,6 +198,7 @@ const DepModInfo g_istep14Dependancies = {
DEP_LIB(libistep14.so),
DEP_LIB(libdump.so),
DEP_LIB(libisteps_mss.so),
+ DEP_LIB(libpm.so),
NULL
}
};
diff --git a/src/include/usr/isteps/istep16list.H b/src/include/usr/isteps/istep16list.H
index bc7a05e0b..e11f02a5f 100644
--- a/src/include/usr/isteps/istep16list.H
+++ b/src/include/usr/isteps/istep16list.H
@@ -161,9 +161,6 @@ const DepModInfo g_istep16Dependancies = {
DEP_LIB(libp9_cpuWkup.so),
DEP_LIB(libisteps_mss.so),
DEP_LIB(libpm.so),
-#ifdef CONFIG_IPLTIME_CHECKSTOP_ANALYSIS
- DEP_LIB(libocc.so),
-#endif
NULL
}
};
diff --git a/src/include/usr/isteps/pm/occCheckstop.H b/src/include/usr/isteps/pm/occCheckstop.H
index 4fa55bfd4..10efd4897 100644
--- a/src/include/usr/isteps/pm/occCheckstop.H
+++ b/src/include/usr/isteps/pm/occCheckstop.H
@@ -47,17 +47,21 @@ namespace HBOCC
NOT_FIR_MASTER = 0x00000000,
IS_FIR_MASTER = 0x00000001,
- // SRAM Address for OCC Main App
- OCC_SRAM_ADDRESS = 0xFFF80000,
+ // SRAM Addresses for OCC Main App and GPE0 app
+ OCC_405_SRAM_ADDRESS = 0xFFF40000,
+ OCC_GPE0_SRAM_ADDRESS = 0xFFF01000,
+ OCC_GPE1_SRAM_ADDRESS = 0xFFF10000,
// SRAM Address and length for FIR HOMER data
- OCC_SRAM_FIR_DATA = 0xFFFF5000,
- OCC_SRAM_FIR_LENGTH = 0x1000,
+ OCC_SRAM_FIR_DATA = 0xFFFBA000,
+ OCC_SRAM_FIR_LENGTH = 0x3000,
// offsets for OCC loading during IPL
- OCC_OFFSET_LENGTH = 0x48,
- OCC_OFFSET_IPL_FLAG = 0x82,
- OCC_OFFSET_FREQ = 0x84,
+ OCC_OFFSET_LENGTH = 0x48,
+ OCC_OFFSET_GPE0_LENGTH = 0x64,
+ OCC_OFFSET_GPE1_LENGTH = 0x68,
+ OCC_OFFSET_IPL_FLAG = 0x92,
+ OCC_OFFSET_FREQ = 0x94,
};
@@ -92,6 +96,20 @@ namespace HBOCC
const PRDF::HwInitialized_t i_curHw = PRDF::ALL_HARDWARE);
#endif
+#ifdef CONFIG_IPLTIME_CHECKSTOP_ANALYSIS
+ /**
+ * @brief Loads the OCC image from PNOR to SRAM
+ *
+ * @param[in] i_target: the proc we're operating on (should be masterproc)
+ * @param[in] i_occVirtAddr: the address of the page allocated for OCC
+ * bootloader.
+ *
+ * @return errlHndl_t Error log if load fails
+ */
+ errlHndl_t loadOCCImageDuringIpl(TARGETING::Target* i_target,
+ void* i_occVirtAddr);
+#endif
+
/**
* @brief Execute procedures and steps required to load
* OCC data in a specified processor
diff --git a/src/include/usr/util/utillidmgr.H b/src/include/usr/util/utillidmgr.H
index 9939fbe64..cda762f66 100644
--- a/src/include/usr/util/utillidmgr.H
+++ b/src/include/usr/util/utillidmgr.H
@@ -191,7 +191,6 @@ class UtilLidMgr
*/
errlHndl_t releaseLidImage(void);
-// @todo RTC 155065 IPL Time Checkstop Analysis Enablement
#ifdef CONFIG_IPLTIME_CHECKSTOP_ANALYSIS
/**
* @brief Get lid managers' pointer to the lid vaddr.
OpenPOWER on IntegriCloud