diff options
author | Bill Hoffa <wghoffa@us.ibm.com> | 2017-04-10 14:43:51 -0500 |
---|---|---|
committer | Daniel M. Crowell <dcrowell@us.ibm.com> | 2017-05-10 15:33:40 -0400 |
commit | 240f26001382001974fff7d62367e58df3f7b1db (patch) | |
tree | 482556bd955971c05b942b6a89639f8f187360a0 /src/kernel | |
parent | b947a1a4119b06ee50287854e5ea974c0926226e (diff) | |
download | talos-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.C | 4 | ||||
-rw-r--r-- | src/kernel/misc.C | 5 | ||||
-rw-r--r-- | src/kernel/syscall.C | 5 | ||||
-rw-r--r-- | src/kernel/terminate.C | 7 |
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; |