summaryrefslogtreecommitdiffstats
path: root/src/include/runtime
diff options
context:
space:
mode:
authorRick Ward <rward15@us.ibm.com>2018-04-25 08:52:31 -0500
committerWilliam G. Hoffa <wghoffa@us.ibm.com>2018-06-05 14:00:46 -0400
commitb364d7b062bfa33c715364eca9654c878c4f6a62 (patch)
treecbb6c7dec3bf50b27b8eba2ff499f14ecbc9a00d /src/include/runtime
parent41f3aa61a7e97de134cffd04ebbbbb286424c3cb (diff)
downloadtalos-hostboot-b364d7b062bfa33c715364eca9654c878c4f6a62.tar.gz
talos-hostboot-b364d7b062bfa33c715364eca9654c878c4f6a62.zip
Centaur Channel Checkstop (runtime)
This story covers when a DMI channel gets checkstopped at runtime and how to service the subsequent SCOM operations that PRD requests to diagnose the issue. At runtime, PRD makes all of its SCOM requests to HBRT which passes them on to PHYP for in-band access. The checkstop blocks in-band access, so HBRT must fail-over to messaging the FSP to do FSI accesses. To reduce the number of SCOM calls to the FSP, HBRT makes a "multi-SCOM read" call for all the common SCOMs that PRD will request after a checkstop, and caches the results. Two new calls (MBOX, generic messaging interface) to the FSP were added in a previous commit to allow FSI SCOM operations through the FSP: - MSG_SINGLE_SCOM_OP - MSG_MULTI_SCOM_OP Also, a new map, chnlFailScomList, was added in a previous commit. chnlFailScomList contains a list of target types and associated SCOM addresses that PRD is likely want to read after a checkstop. PRD is responsible for maintaining the contents. Change-Id: I829a72067007ac8a61d80caa690d8eedee0f08cc RTC:189294 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/59197 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Reviewed-by: Daniel M. Crowell <dcrowell@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: William G. Hoffa <wghoffa@us.ibm.com>
Diffstat (limited to 'src/include/runtime')
-rw-r--r--src/include/runtime/generic_hbrt_fsp_message.H5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/include/runtime/generic_hbrt_fsp_message.H b/src/include/runtime/generic_hbrt_fsp_message.H
index 6daff3cc2..30566290d 100644
--- a/src/include/runtime/generic_hbrt_fsp_message.H
+++ b/src/include/runtime/generic_hbrt_fsp_message.H
@@ -73,7 +73,7 @@ struct TargetDeconfigHbrtFspData_t
*/
struct SingleScomOpHbrtFspData_t
{
- uint8_t scom_op; // 0 == read, 1 == write
+ uint8_t scom_op; // DeviceFW::READ, DeviceFW::WRITE
uint32_t huid; // hardware target
uint64_t scom_addr;
uint64_t scom_data; // SCOM value read by FSP, or
@@ -92,11 +92,12 @@ struct MultiScomReadHbrtFspData_t
uint8_t scom_num; // number of SCOMs to read
uint64_t scom_data; // addresses of SCOMs to read, or
// values of SCOMs in FSP response
+ //
// ** if a SCOM cannot be read, its value **
// ** should be returned as DEADBEEF **
//
// placeholder that can be cast to an array
- // of values (or addresses)
+ // of SCOM addresses (or values)
// uint64_t* mydata =
// (uint64_t*)&(l_generic_msg.data);
// more than 8 bytes of data is possible
OpenPOWER on IntegriCloud