Skip to content

Commit

Permalink
p9_fbc_ioo_tdm_recovery -- post spare lane FIR after final FIR cleari…
Browse files Browse the repository at this point in the history
…ng, unmask

Existing code contains a hazard for PRD analysis -- as we retrain a cable
pair and encounter a lane spare (only on the half-link which is _not_ being
serviced), HWP code posts the lane spare into the FIR prior to the final
FIR cleanup and unmasking.  Depending on its processing speed, PRD can
see the FIR cleared before completing its analysis of the spare lane
condition.

Two major changes are introduced here to avoid this race condition:

1.  The initial masking of the DL FIR is extended to cover both
half-links, to prevent presentation of any errors which might be posted on the
half link which is left running throughout the retraining sequence

2.  Writing the DL FIR to indicate a spare lane has been deployed during
retraining is delayed until the DL FIR is cleared and its runtime mask settings
are restored at the end of the retraining sequence.  The spare lane information
is maintained in a newly created attribute ATTR_IO_OBUS_LINK_SPARE_MARK.

Change-Id: I3da134481d49ccfb486d275120f1c624a4598bcd
CQ: SW464245
Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/77298
Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Tested-by: Hostboot CI <hostboot-ci+hostboot@us.ibm.com>
Tested-by: HWSV CI <hwsv-ci+hostboot@us.ibm.com>
Reviewed-by: Jennifer A Stofer <stofer@us.ibm.com>
Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/77330
Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com>
Tested-by: Jenkins OP HW <op-hw-jenkins+hostboot@us.ibm.com>
Reviewed-by: Daniel M Crowell <dcrowell@us.ibm.com>
  • Loading branch information
jjmcgill authored and dcrowell77 committed Aug 6, 2019
1 parent 6c71284 commit bd473ad
Showing 1 changed file with 16 additions and 0 deletions.
Expand Up @@ -92,6 +92,22 @@
<initToZero/>
</attribute>
<!-- ********************************************************************** -->
<attribute>
<id>ATTR_IO_OBUS_LINK_SPARE_MARK</id>
<targetType>TARGET_TYPE_OBUS</targetType>
<description>
Used to save indication that a spare lane has been deployed during
runtime link recovery retrain sequence. This sparing will be posted
into the DL FIR after all other FIR clearing/unmasking has been
performed in the link recovery sequence. Index 0 tracks the even half
link, index 1 the odd half link.
</description>
<array>2</array>
<valueType>uint8</valueType>
<writeable/>
<initToZero/>
</attribute>
<!-- ********************************************************************** -->
<attribute>
<id>ATTR_IO_OBUS_LANE_PDWN</id>
<targetType>TARGET_TYPE_OBUS</targetType>
Expand Down

0 comments on commit bd473ad

Please sign in to comment.