summaryrefslogtreecommitdiffstats
path: root/src/usr/fsi
diff options
context:
space:
mode:
authorDan Crowell <dcrowell@us.ibm.com>2014-04-14 14:44:21 -0500
committerA. Patrick Williams III <iawillia@us.ibm.com>2014-04-15 10:47:55 -0500
commit279d152e4d095884110de94e9510a8b7d86ced97 (patch)
tree81c9110fc66e08e655270122cb897b70ac2a5282 /src/usr/fsi
parent791c705e31529a345e4e01eb10a6326990de4acb (diff)
downloadtalos-hostboot-279d152e4d095884110de94e9510a8b7d86ced97.tar.gz
talos-hostboot-279d152e4d095884110de94e9510a8b7d86ced97.zip
Fix FSI MRW Parsing
Missed a case where the alt-master chip was pointing to the wrong master. Change-Id: I0e8010c5adb871344a7d1fd11fefd7f7f152ec72 Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/10529 Reviewed-by: Andrew J. Geissler <andrewg@us.ibm.com> Tested-by: Jenkins Server Reviewed-by: Michael Baiocchi <baiocchi@us.ibm.com> Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
Diffstat (limited to 'src/usr/fsi')
-rw-r--r--src/usr/fsi/fsidd.C34
1 files changed, 32 insertions, 2 deletions
diff --git a/src/usr/fsi/fsidd.C b/src/usr/fsi/fsidd.C
index 571daf448..f2af99d2e 100644
--- a/src/usr/fsi/fsidd.C
+++ b/src/usr/fsi/fsidd.C
@@ -498,14 +498,44 @@ errlHndl_t FsiDD::initializeHardware()
else
{
FsiChipInfo_t info2 = getFsiInfo(info.master);
- remote_cmfsi[info2.port][info.port].info = info;
- remote_cmfsi[info2.port][info.port].targ = *t_itr;
+ if( info2.master == NULL )
+ {
+ TRACFCOMP( g_trac_fsi, "Problem with attribute data for master %.8X for slave %.8X", TARGETING::get_huid(info.master), TARGETING::get_huid(*t_itr) );
+ /*@
+ * @errortype
+ * @moduleid FSI::MOD_FSIDD_INITIALIZEHARDWARE
+ * @reasoncode FSI::RC_BAD_ATTRIBUTES
+ * @userdata1[00:31] Slave HUID
+ * @userdata1[32:63] Slave FSI LinkId
+ * @userdata2[00:31] Master HUID
+ * @userdata2[32:63] Master FSI LinkId
+ * @devdesc FsiDD::initializeHardware>
+ * Unexpected attribute data for remote FSI link
+ */
+ l_err = new ERRORLOG::ErrlEntry(
+ ERRORLOG::ERRL_SEV_UNRECOVERABLE,
+ FSI::MOD_FSIDD_INITIALIZEHARDWARE,
+ FSI::RC_BAD_ATTRIBUTES,
+ TWO_UINT32_TO_UINT64(
+ TARGETING::get_huid(*t_itr),
+ info.linkid.id),
+ TWO_UINT32_TO_UINT64(
+ TARGETING::get_huid(info.master),
+ info2.linkid.id));
+ break;
+ }
+ else
+ {
+ remote_cmfsi[info2.port][info.port].info = info;
+ remote_cmfsi[info2.port][info.port].targ = *t_itr;
+ }
}
}
}
++t_itr;
}
+ if( l_err ) { break; }
// Cleanup any initial error states
l_err = resetPib2Opb( iv_master );
OpenPOWER on IntegriCloud