summaryrefslogtreecommitdiffstats
path: root/src/usr
diff options
context:
space:
mode:
authorChristian Geddes <crgeddes@us.ibm.com>2018-01-24 17:06:34 -0600
committerDaniel M. Crowell <dcrowell@us.ibm.com>2018-02-01 09:19:06 -0500
commit02b1fd73c5682d64dfb4cd9cc9b1164ca6702f97 (patch)
tree7a4010d00d31f78d3f0304ebd979c862adee0ab2 /src/usr
parent8632294639a9d0a09ccc0a57656730e2e7b40205 (diff)
downloadtalos-hostboot-02b1fd73c5682d64dfb4cd9cc9b1164ca6702f97.tar.gz
talos-hostboot-02b1fd73c5682d64dfb4cd9cc9b1164ca6702f97.zip
Save away SBE FFDC and COMM area address in corresponding attrs
We set the SBE's FFDC and COMM area addresses in at least 2 points of the IPL. The first time we do (PSU chip op) we were sending the addr down to the SBE but we were not storing it in the platform attributes SBE_FFDC_ADDR and SBE_COMM_ADDR. This commit adds some code that will save off these values. Functionally this was correct before, but it might have been confusing to debug a problem when the SBE's FFDC area wasn't matching what attribute told us Change-Id: I5cd9d63bf8be26093a24f28ff82a05ac8321a338 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/52594 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Reviewed-by: Martin Gloff <mgloff@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: Matt Derksen <mderkse1@us.ibm.com> Reviewed-by: Roland Veloz <rveloz@us.ibm.com> Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src/usr')
-rw-r--r--src/usr/sbeio/sbe_psudd.C10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/usr/sbeio/sbe_psudd.C b/src/usr/sbeio/sbe_psudd.C
index d66e757b4..01fcb535e 100644
--- a/src/usr/sbeio/sbe_psudd.C
+++ b/src/usr/sbeio/sbe_psudd.C
@@ -668,7 +668,6 @@ errlHndl_t SbePsu::writeScom(TARGETING::Target * i_target,
errlHndl_t SbePsu::allocateFFDCBuffer(TARGETING::Target * i_target)
{
-
static mutex_t l_alloMux = MUTEX_INITIALIZER;
uint32_t l_bufSize = getSbeFFDCBufferSize();
@@ -684,13 +683,20 @@ errlHndl_t SbePsu::allocateFFDCBuffer(TARGETING::Target * i_target)
{
void * l_ffdcPtr = PageManager::allocatePage(ffdcPackageSize, true);
memset(l_ffdcPtr, 0x00, l_bufSize);
+ uint64_t l_phyAddr_ffdcPtr = mm_virt_to_phys(l_ffdcPtr);
errl = sendSetFFDCAddr(l_bufSize,
0,
- mm_virt_to_phys(l_ffdcPtr),
+ l_phyAddr_ffdcPtr,
0,
i_target);
+ //Make the corresponding platform attribute match what we sent to SBE
+ //Things will work without setting these attributes, just to reduce
+ //confusion during debug in the future we will set them here.
+ i_target->setAttr<TARGETING::ATTR_SBE_FFDC_ADDR>(l_phyAddr_ffdcPtr);
+ i_target->setAttr<TARGETING::ATTR_SBE_COMM_ADDR>(0);
+
if(errl)
{
PageManager::freePage(l_ffdcPtr);
OpenPOWER on IntegriCloud