diff options
author | Joe McGill <jmcgill@us.ibm.com> | 2019-05-13 11:08:34 -0400 |
---|---|---|
committer | Daniel M Crowell <dcrowell@us.ibm.com> | 2019-08-06 08:29:28 -0500 |
commit | bd473add80412494c65ac9c0fa51dfc065b43b7a (patch) | |
tree | 498daf68552066c2b11ba8cd844c8b7c46044ab4 /src/import/chips/p9/procedures/xml | |
parent | 6c712843a11dc5d1972c234a0ab9729fa8b70b31 (diff) | |
download | talos-hostboot-bd473add80412494c65ac9c0fa51dfc065b43b7a.tar.gz talos-hostboot-bd473add80412494c65ac9c0fa51dfc065b43b7a.zip |
p9_fbc_ioo_tdm_recovery -- post spare lane FIR after final FIR clearing, 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>
Diffstat (limited to 'src/import/chips/p9/procedures/xml')
-rw-r--r-- | src/import/chips/p9/procedures/xml/attribute_info/p9_io_obus_attributes.xml | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/import/chips/p9/procedures/xml/attribute_info/p9_io_obus_attributes.xml b/src/import/chips/p9/procedures/xml/attribute_info/p9_io_obus_attributes.xml index fc9efabf5..849270429 100644 --- a/src/import/chips/p9/procedures/xml/attribute_info/p9_io_obus_attributes.xml +++ b/src/import/chips/p9/procedures/xml/attribute_info/p9_io_obus_attributes.xml @@ -93,6 +93,22 @@ </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> <description> |