diff options
author | Dan Crowell <dcrowell@us.ibm.com> | 2012-09-19 09:42:36 -0500 |
---|---|---|
committer | A. Patrick Williams III <iawillia@us.ibm.com> | 2012-09-26 11:43:15 -0500 |
commit | 202d92ba03e853f90dc56876c1937a49ce1501bf (patch) | |
tree | 23c7506ea609ac80af761ac19896710a5c3b347d /src | |
parent | caa52e035ffdba58b466936529909bad95daa30f (diff) | |
download | talos-hostboot-202d92ba03e853f90dc56876c1937a49ce1501bf.tar.gz talos-hostboot-202d92ba03e853f90dc56876c1937a49ce1501bf.zip |
Enable Legacy FSI Mode for Buf HW204566
Murano DD1.0 has a bug in the new 1:1 FSI clock logic that causes
the slave presence detection to lie. As a workaround we will
temporarily enable 4:1 mode to do the presence detect.
Change-Id: I828e52e5840b782d3ee894bcc0b3118a562c2af5
RTC: 48896
Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/1841
Tested-by: Jenkins Server
Reviewed-by: Thi N. Tran <thi@us.ibm.com>
Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/usr/fsi/fsidd.C | 57 | ||||
-rw-r--r-- | src/usr/fsi/fsipres.C | 65 |
2 files changed, 55 insertions, 67 deletions
diff --git a/src/usr/fsi/fsidd.C b/src/usr/fsi/fsidd.C index 021df633d..8d47c5e7b 100644 --- a/src/usr/fsi/fsidd.C +++ b/src/usr/fsi/fsidd.C @@ -1,26 +1,25 @@ -/* IBM_PROLOG_BEGIN_TAG - * This is an automatically generated prolog. - * - * $Source: src/usr/fsi/fsidd.C $ - * - * IBM CONFIDENTIAL - * - * COPYRIGHT International Business Machines Corp. 2011-2012 - * - * p1 - * - * Object Code Only (OCO) source materials - * Licensed Internal Code Source Materials - * IBM HostBoot Licensed Internal Code - * - * The source code for this program is not published or other- - * wise divested of its trade secrets, irrespective of what has - * been deposited with the U.S. Copyright Office. - * - * Origin: 30 - * - * IBM_PROLOG_END_TAG - */ +/* IBM_PROLOG_BEGIN_TAG */ +/* This is an automatically generated prolog. */ +/* */ +/* $Source: src/usr/fsi/fsidd.C $ */ +/* */ +/* IBM CONFIDENTIAL */ +/* */ +/* COPYRIGHT International Business Machines Corp. 2011,2012 */ +/* */ +/* p1 */ +/* */ +/* Object Code Only (OCO) source materials */ +/* Licensed Internal Code Source Materials */ +/* IBM HostBoot Licensed Internal Code */ +/* */ +/* The source code for this program is not published or otherwise */ +/* divested of its trade secrets, irrespective of what has been */ +/* deposited with the U.S. Copyright Office. */ +/* */ +/* Origin: 30 */ +/* */ +/* IBM_PROLOG_END_TAG */ /** * @file fsidd.C * @@ -1385,12 +1384,22 @@ errlHndl_t FsiDD::initMasterControl(const TARGETING::Target* i_master, if( l_err ) { break; } - //Set MMODE reg to enable HW recovery, parity checking, setup clock ratio + //Set MMODE reg to enable HW recovery, parity checking, + // setup clock ratio // 1= Enable hardware error recovery // 3= Enable parity checking // 4:13= FSI clock ratio 0 is 1:1 // 14:23= FSI clock ratio 1 is 4:1 databuf = 0x50040400; + //Hardware Bug HW204566 on Murano DD1.0 requires legacy + // mode to be enabled + if( (i_master->getAttr<TARGETING::ATTR_MODEL>() + == TARGETING::MODEL_MURANO) && + (i_master->getAttr<TARGETING::ATTR_EC>() == 0x10) ) + { + // 25=clock/4 mode + databuf |= 0x00000040; + } l_err = write( ctl_reg|FSI_MMODE_000, &databuf ); if( l_err ) { break; } } diff --git a/src/usr/fsi/fsipres.C b/src/usr/fsi/fsipres.C index 7332b09c3..7c4aff01c 100644 --- a/src/usr/fsi/fsipres.C +++ b/src/usr/fsi/fsipres.C @@ -1,26 +1,25 @@ -/* IBM_PROLOG_BEGIN_TAG - * This is an automatically generated prolog. - * - * $Source: src/usr/fsi/fsipres.C $ - * - * IBM CONFIDENTIAL - * - * COPYRIGHT International Business Machines Corp. 2011-2012 - * - * p1 - * - * Object Code Only (OCO) source materials - * Licensed Internal Code Source Materials - * IBM HostBoot Licensed Internal Code - * - * The source code for this program is not published or other- - * wise divested of its trade secrets, irrespective of what has - * been deposited with the U.S. Copyright Office. - * - * Origin: 30 - * - * IBM_PROLOG_END_TAG - */ +/* IBM_PROLOG_BEGIN_TAG */ +/* This is an automatically generated prolog. */ +/* */ +/* $Source: src/usr/fsi/fsipres.C $ */ +/* */ +/* IBM CONFIDENTIAL */ +/* */ +/* COPYRIGHT International Business Machines Corp. 2011,2012 */ +/* */ +/* p1 */ +/* */ +/* Object Code Only (OCO) source materials */ +/* Licensed Internal Code Source Materials */ +/* IBM HostBoot Licensed Internal Code */ +/* */ +/* The source code for this program is not published or otherwise */ +/* divested of its trade secrets, irrespective of what has been */ +/* deposited with the U.S. Copyright Office. */ +/* */ +/* Origin: 30 */ +/* */ +/* IBM_PROLOG_END_TAG */ #include <devicefw/driverif.H> #include <targeting/common/attributes.H> #include <fsi/fsiif.H> @@ -150,16 +149,6 @@ errlHndl_t procPresenceDetect(DeviceFW::OperationType i_opType, } } - //@fixme-RTC:35551 : FSI presence detection is wrong in VPO - // Force FSI to follow MVPD - if( (fsi_present != mvpd_present) && TARGETING::is_vpo() ) - { - TRACFCOMP(g_trac_fsi, - ERR_MRK "FSI::procPresenceDetect> Lying about FSI presence for %.8X", - TARGETING::get_huid(i_target)); - fsi_present = mvpd_present; - } - // Finally compare the 2 methods if( fsi_present != mvpd_present ) { @@ -294,16 +283,6 @@ errlHndl_t membPresenceDetect(DeviceFW::OperationType i_opType, } } - //@fixme-RTC:35551 : FSI presence detection is wrong in VPO - // Force FSI to follow VPD - if( (fsi_present != vpd_present) && TARGETING::is_vpo() ) - { - TRACFCOMP(g_trac_fsi, - ERR_MRK "FSI::membPresenceDetect> Lying about FSI presence for %.8X", - TARGETING::get_huid(i_target)); - fsi_present = vpd_present; - } - // Finally compare the 2 methods if( fsi_present != vpd_present ) { |