summaryrefslogtreecommitdiffstats
path: root/src/kernel
diff options
context:
space:
mode:
authorBill Hoffa <wghoffa@us.ibm.com>2017-04-10 14:43:51 -0500
committerDaniel M. Crowell <dcrowell@us.ibm.com>2017-05-10 15:33:40 -0400
commit240f26001382001974fff7d62367e58df3f7b1db (patch)
tree482556bd955971c05b942b6a89639f8f187360a0 /src/kernel
parentb947a1a4119b06ee50287854e5ea974c0926226e (diff)
downloadtalos-hostboot-240f26001382001974fff7d62367e58df3f7b1db.tar.gz
talos-hostboot-240f26001382001974fff7d62367e58df3f7b1db.zip
Include HUID of failed Proc in TI data for certain SBE errors
- Include a generic error pipleline for other future error scenarios to leverage this functionality Change-Id: Icc1399ee93157c7106d394944a3355285a8cd830 RTC: 171865 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/39072 Reviewed-by: Martin Gloff <mgloff@us.ibm.com> Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com> Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Reviewed-by: Prachi Gupta <pragupta@us.ibm.com> Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src/kernel')
-rw-r--r--src/kernel/cpumgr.C4
-rw-r--r--src/kernel/misc.C5
-rw-r--r--src/kernel/syscall.C5
-rw-r--r--src/kernel/terminate.C7
4 files changed, 13 insertions, 8 deletions
diff --git a/src/kernel/cpumgr.C b/src/kernel/cpumgr.C
index f7cb25961..e6c8348f5 100644
--- a/src/kernel/cpumgr.C
+++ b/src/kernel/cpumgr.C
@@ -109,7 +109,7 @@ void CpuManager::init_slave_smp(cpu_t* cpu)
Singleton<CpuManager>::instance().startSlaveCPU(cpu);
}
-void CpuManager::requestShutdown(uint64_t i_status)
+void CpuManager::requestShutdown(uint64_t i_status, uint32_t i_error_data)
{
cv_shutdown_status = i_status;
__sync_synchronize();
@@ -129,7 +129,7 @@ void CpuManager::requestShutdown(uint64_t i_status)
}
else
{
- termWriteSRC(TI_SHUTDOWN,i_status, 0);
+ termWriteSRC(TI_SHUTDOWN,i_status, 0, i_error_data);
}
printk("TI initiated on all threads (shutdown)\n");
diff --git a/src/kernel/misc.C b/src/kernel/misc.C
index 9c7ec7883..963c0a75c 100644
--- a/src/kernel/misc.C
+++ b/src/kernel/misc.C
@@ -54,10 +54,11 @@ KernelIpc::start_payload_data_area_t KernelIpc::start_payload_data_area;
namespace KernelMisc
{
- uint64_t g_payload_base = 0;
+ uint64_t g_payload_base = 0;
uint64_t g_payload_entry = 0;
- uint64_t g_payload_data = 0;
+ uint64_t g_payload_data = 0;
uint64_t g_masterHBInstance = 0xfffffffffffffffful;
+ uint32_t g_error_data = 0;
void shutdown()
{
diff --git a/src/kernel/syscall.C b/src/kernel/syscall.C
index 44edff61a..adef18afe 100644
--- a/src/kernel/syscall.C
+++ b/src/kernel/syscall.C
@@ -5,7 +5,7 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
-/* Contributors Listed Below - COPYRIGHT 2010,2016 */
+/* Contributors Listed Below - COPYRIGHT 2010,2017 */
/* [+] International Business Machines Corp. */
/* */
/* */
@@ -690,7 +690,8 @@ namespace Systemcalls
KernelMisc::g_payload_entry = static_cast<uint64_t>(TASK_GETARG2(t));
KernelMisc::g_payload_data = static_cast<uint64_t>(TASK_GETARG3(t));
KernelMisc::g_masterHBInstance= static_cast<uint64_t>(TASK_GETARG4(t));
- CpuManager::requestShutdown(status);
+ KernelMisc::g_error_data= static_cast<uint32_t>(TASK_GETARG5(t));
+ CpuManager::requestShutdown(status, KernelMisc::g_error_data);
TASK_SETRTN(t, 0);
}
diff --git a/src/kernel/terminate.C b/src/kernel/terminate.C
index 9b3fb7278..c39f2924c 100644
--- a/src/kernel/terminate.C
+++ b/src/kernel/terminate.C
@@ -66,11 +66,14 @@ void termWritePlid(uint16_t i_source, uint32_t plid)
kernel_TIDataArea.plid = plid;
}
-void termWriteSRC(uint16_t i_source, uint16_t i_reasoncode,uint64_t i_failAddr)
+void termWriteSRC(uint16_t i_source, uint16_t i_reasoncode,uint64_t i_failAddr,
+ uint32_t i_error_data)
{
- // Update the TI structure with the type of TI and who called.
+ // Update the TI structure with the type of TI, who called,
+ // and extra error data (if applicable, otherwise 0)
kernel_TIDataArea.type = TI_WITH_SRC;
kernel_TIDataArea.source = i_source;
+ kernel_TIDataArea.error_data = i_error_data;
// Update TID data area with the SRC info we have avail
kernel_TIDataArea.src.ID = 0xBC;
OpenPOWER on IntegriCloud