summaryrefslogtreecommitdiffstats
path: root/src/include/usr/i2c/i2creasoncodes.H
Commit message (Collapse)AuthorAgeFilesLines
* Handle bad PEC from UCD device opMatthew Raybuck2019-03-291-1/+2
| | | | | | | | | | | | | | | | The current UCD code doesn't have any error handling for a bad PEC byte instead it is just ignored. This will add the necessary error handling to the retry code for bad PEC bytes. Change-Id: I8d9960a203b5864812bcaa0019087bb3dcff0c53 RTC:205982 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/75174 Reviewed-by: Michael Baiocchi <mbaiocch@us.ibm.com> Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com> Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins OP HW <op-hw-jenkins+hostboot@us.ibm.com> Reviewed-by: Nicholas E. Bofferding <bofferdn@us.ibm.com>
* UCD Flash Update: Support I2C SMBUS operations for UCD flash updateNick Bofferding2019-03-081-24/+29
| | | | | | | | | | | | | | | | | - Adds I2C SMBUS operations for UCD flash update - Creates UCD component ID + trace name - Creates stub for UCD flash update entry point Change-Id: Id75cdd137b5a4924998c04bdbdce9218610a4906 RTC: 201992 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/72229 Reviewed-by: Ilya Smirnov <ismirno@us.ibm.com> Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com> Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins OP HW <op-hw-jenkins+hostboot@us.ibm.com> Reviewed-by: Matthew Raybuck <matthew.raybuck@ibm.com> Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
* Add new path in EEPROM device op to allow reading from new EECACHEChristian Geddes2019-02-161-7/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | Recently a new EECACHE section was introduced to Hostboot. This section gets populated with a copy of every PRIMARY_VPD eeprom (someday could contain other eeprom roles also) during host_discover_targets. This commit add support to allow users to select where they want to perform their EEPROM device operation. If they pass CACHE to the deviceOp macro then a read will come from the pnor cache, writes will write to pnor cache and then also write to the eeprom HW. If HARDWARE is passed in then reads and writes will be directly done on the eeprom hardware. If AUTOSELECT is passed the code will check our cache to see if we have a copy of the eeprom in question, if we have a copy we will go the CACHE path, if no copy exists we will go the HARDWARE path. Along with this change some reorganization was done w/ the eeprom related files. RTC: 196805 Change-Id: If2c4e5d3e338a1a10780740c1a019eb4af003b73 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/70822 Reviewed-by: Matt Derksen <mderkse1@us.ibm.com> Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com> Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Reviewed-by: Roland Veloz <rveloz@us.ibm.com> Tested-by: Jenkins OP HW <op-hw-jenkins+hostboot@us.ibm.com> Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
* Add EEPROM caching device opChristian Geddes2019-02-131-1/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | This commit introduces a new EEPROM_CACHE deviceOp and registers the OCMB_CHIP, PROC, and DIMM targets to it. This is part of the larger effort to transition for a "VPD" cache to an "EEPROM" cache in pnor. The deviceOp is currently called in hwasPlat's platPresenceDetect if the target in question has a ATTR_EEPROM_VPD_PRIMARY_INFO associated with it. The layout for the new EECACHE section in pnor is defined in eepromCache_const.H. Essentially it is a header that contains an array of record headers that tell where in the EECACHE pnor section a given cached EEPROM can be found. All EEPROM targets will be allocated space in the EECACHE section but only present targets will have their cache filled in. RTC: 196805 Change-Id: I49c341c9784be04ddf0259bd444f06c9baf8c6f1 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/70520 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com> Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins OP HW <op-hw-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>
* Add presence detection for i2c mux targetsChristian Geddes2019-01-111-1/+4
| | | | | | | | | | | | | | | | | | | | | | | This commit removes the ddimm.C file that had the deviceFramework routing for OCMB presence detection and replaces it with a new file in src/usr/i2c/i2cTargetPres.C that is more generic for any target that has the FAPI_I2C_CONTROLLER_INFO attribute. The i2c_mux target also now uses this same code for its presence detection. As a result of this change the src/usr/i2c/mux_i2c.* files have also been removed. When getting rid of the ddimm.C file I had to put the IDEC device routing somewhere else so I moved it to the hwasPlat code where the other IDEC device routes are registered. RTC: 196805 Change-Id: I27e5e3e8d0fe107c3d44a450e20efa6f50fa0c5f Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/69944 Reviewed-by: Matt Derksen <mderkse1@us.ibm.com> Tested-by: Jenkins Server <pfd-jenkins+hostboot@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: Roland Veloz <rveloz@us.ibm.com> Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
* Driver changes to support i2c muxRoland Veloz2018-12-061-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | - Updated data structures gpioAddr_t, eeprom_addr_t, misc_args_t, nvdimm_addr_t and tpm_info_t with I2C MUX data members. Also added constructors to these structures to default there data members with the correct default info. - Updated macros DEVICE_I2C_PARMS, DEVICE_I2C_ADDRESS and DEVICE_I2C_ADDRESS_OFFSET to take the I2C MUX bus selector parameter and the I2C MUX entity path. - Added method i2cAccessMux to file i2c.H/.C that will setup the call for the I2C MUX. Method i2cCommonOP calls i2cAccessMux which then calls i2cCommonOp with appropriate parameters for the I2C MUX: i2cCommonOP -> i2cAccessMux -> i2cCommonOP. - Updated i2ctest.H with new I2C MUX params to get it to pass. RTC:191352 Change-Id: I6a70860eb2286bbd23d6157d72351b8adfa21aac Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/66651 Reviewed-by: Ilya Smirnov <ismirno@us.ibm.com> Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Reviewed-by: Nicholas E. Bofferding <bofferdn@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: Daniel M. Crowell <dcrowell@us.ibm.com>
* Support fapi2 i2c functionsMatt Derksen2018-09-201-20/+23
| | | | | | | | | | | | | | | | | New interface in fapi2 to perform i2c operations directly. This is needed for OCMB access before we get OMI bus running, specifically as part of a cmd/rsp protocol. Change-Id: I8b778f12f8c0c6820ceb51146f1e21d30891c964 RTC:197029 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/63919 Tested-by: Jenkins Server <pfd-jenkins+hostboot@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: Christian R. Geddes <crgeddes@us.ibm.com> Reviewed-by: Corey V. Swenson <cswenson@us.ibm.com> Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
* Optimize EEPROM page switching to remember current pageAndres Lugo-Reyes2016-04-211-1/+2
| | | | | | | | | | Change-Id: I8355693b0ee16dfbaef5361006b564c4b59b714d RTC:147385 ForwardPort: yes Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/22859 Tested-by: Jenkins Server Tested-by: FSP CI Jenkins Reviewed-by: Matthew A. Ploetz <maploetz@us.ibm.com>
* DDR4 - Allow SPD writesaalugore2016-04-211-1/+6
| | | | | | | | | | | | | | | | | | | -DDR4 has 512-byte EEPROM with 2 256-byte pages. This commit contains the necessary page switching logic to support this. Change-Id: Iaa8e3e344def98b71d6a9e9387c5e0d9137a0397 RTC:137707 ForwardPort: yes Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/797 Tested-by: Jenkins Server Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com> Tested-by: Jenkins OP Build CI Reviewed-by: William G. Hoffa <wghoffa@us.ibm.com> Tested-by: Jenkins OP HW Tested-by: FSP CI Jenkins Reviewed-by: Matthew A. Ploetz <maploetz@us.ibm.com> Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/871
* Fix I2C Reset to resolve I2C Bus Arbitration Lost ErrorsMike Baiocchi2015-04-091-0/+1
| | | | | | | | | | | | | | | | This commit fixes 2 bugs where the full "Force Reset and Unlock" I2C reset procedure used to both avoid and recover from I2C Bus Arbitration Lost errors was not being performed correctly on any ports but port 0. Change-Id: Ie967d81917e9b942d5cb516856075ebdb5029487 CQ: SW297864 Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/16842 Reviewed-by: WILLIAM G. HOFFA <wghoffa@us.ibm.com> Tested-by: Jenkins Server Reviewed-by: Nicholas E. Bofferding <bofferdn@us.ibm.com> Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com> Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
* Fix device address and offset for I2C runtimeCorey Swenson2015-03-261-0/+1
| | | | | | | | | | Change-Id: I8aae26f0e7d774059547b110c4bd643115570116 RTC: 125281 Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/16255 Tested-by: Jenkins Server Reviewed-by: Michael Baiocchi <baiocchi@us.ibm.com> Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com> Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
* HBRT Runtime VPD UpdatesCorey Swenson2015-02-181-0/+2
| | | | | | | | | | | | Enables writes to VPD and handles disabling PNOR cache in manufacturing mode Change-Id: I03d4246ceb91520939f8b04f3b3d2fc31c116079 RTC: 114911 Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/15462 Tested-by: Jenkins Server Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com> Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
* Update i2cSetupMasters() to support different inputsBill Schwartz2015-02-121-2/+2
| | | | | | | | | | | | Update i2cSetupMasters similar to i2cResetActiveMasters to accept a parameter to select procs and/or mem buffs and host and/or fsi engines. Change-Id: I943248e01acd3254acf5635a284a05c827645123 RTC: 115834 Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/15552 Tested-by: Jenkins Server Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com> Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
* Support for i2cResetMasters for all existing I2C MastersMike Baiocchi2014-12-181-0/+1
| | | | | | | | | | | | | | This change supports resetting any I2C Master of a processor or memory buffer that has a device off of one of its engines. Change-Id: I2849d3c3d1901489310547ad06ba568aaab32a60 RTC: 115834 Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/14967 Tested-by: Jenkins Server Reviewed-by: WILLIAM G. HOFFA <wghoffa@us.ibm.com> Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com> Reviewed-by: Andrew J. Geissler <andrewg@us.ibm.com> Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
* Sync I2C and EEPROM Attributes from MRWMike Baiocchi2014-12-031-2/+2
| | | | | | | | | | | | | This commit adds additional MRW parsing and a new I2C Bus attribute to pull the needed information from the MRWs for EEPROM and I2C operations. Change-Id: I28abec9a04fe27502cab02790c00b15329a8b364 RTC: 80614 Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/14298 Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com> Reviewed-by: Nicholas E. Bofferding <bofferdn@us.ibm.com> Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com> Tested-by: Jenkins Server
* Force I2C reset/unlockAni Bagepalli2014-10-221-1/+4
| | | | | | | | | | | | This commit add a method to manually toggle the clock and data lines to reset the I2C bus that is locked. This method will also reset the slave I2C chips. Change-Id: I6353dd24f86ca9b0a649875b11bae47035887c84 RTC:97439 Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/13659 Tested-by: Jenkins Server Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
* Change copyright prolog for all files to Apache.Patrick Williams2014-05-211-10/+10
| | | | | | | Change-Id: I5664587b4f889099290ef50d50fa9ce5e580e1eb Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/11167 Tested-by: Jenkins Server Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
* Add Callouts to I2C and VPD driversMike Baiocchi2014-01-151-0/+7
| | | | | | | | | | | | Callouts were added to I2C, EEPROM, MVPD and CVPD (via IPVPD code), and SPD code. Change-Id: Ibcb14ea3a228a5175b6faed06189286b0e0526bc RTC: 69113 Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/7966 Tested-by: Jenkins Server Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com> Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
* Update I2C and EEPROM Device Drivers Error PathsMike Baiocchi2014-01-091-2/+3
| | | | | | | | | | | | | This commit removes the retry path from the I2C Device Driver and adds two to the EEPROM Device Driver. This will provide more flexibility to I2C DD use in the future, while keeping the current level of EEPROM DD robustness. Change-Id: I2b2aa3ed83557a5f2d9523cd55a7486924205e2f RTC: 89667 Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/7508 Tested-by: Jenkins Server Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
* Add More Attribute Support for I2C and EEPROM DriversMike Baiocchi2013-10-101-1/+4
| | | | | | | | | | | | | This commit adds more attribute fields to be used in the EEPROM device drivers. The I2C device driver is also being updated so that it can eventually get the desired bus speed from an attribute, as well. Change-Id: I6b609cafdd7ea3b015a4f62009297e0149ba5b84 RTC: 72715 Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/6116 Tested-by: Jenkins Server Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
* Program I2C Bus Divisor ValueTerry J. Opie2012-12-131-22/+25
| | | | | | | | Change-Id: I784a6b598298fcd09dcd5c108e0a47f1e7daa544 RTC: 49136 Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/2440 Tested-by: Jenkins Server Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
* I2C Bad Machine Path and Cxx Testcases as well as the EEPROM device driver.Terry J. Opie2011-12-011-14/+5
| | | | | | | Change-Id: Ia89d3aecb3192a2f99ef9fbb5abe0ce1d528a481 Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/506 Tested-by: Jenkins Server Reviewed-by: Terry J. Opie <opiet@us.ibm.com>
* I2C Device Driver Good Machine PathTerry J. Opie2011-10-211-5/+26
| | | | | | | | Change-Id: I88bf5ce464cdeceb3e151bde72fb51295ede07c0 Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/428 Tested-by: Jenkins Server Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com> Reviewed-by: Terry J. Opie <opiet@us.ibm.com>
* Add copyright headers to all source files.Patrick Williams2011-08-241-0/+22
| | | | | | | Change-Id: I205f2409e56032cfc0aaf01d7e26d357f0b86373 Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/277 Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com> Tested-by: Jenkins Server
* I2C Device Driver SkeletonTerry J. Opie2011-08-151-0/+44
Change-Id: I0b092ea67e5bb8789378041c8c3a6a3f5cf3025e Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/242 Reviewed-by: Terry J. Opie <opiet@us.ibm.com> Tested-by: Jenkins Server
OpenPOWER on IntegriCloud