summaryrefslogtreecommitdiffstats
path: root/src/usr/isteps/ucd
Commit message (Collapse)AuthorAgeFilesLines
* Automatically include config.hDan Crowell2019-12-061-1/+0
| | | | | | | | | | | | | | | | | | Rather than having to remember to include config.h anywhere we reference a CONFIG variable (and usually forgetting), this adds it to the default compiler flags so that it gets included in every source file we build. Change-Id: I53622ab4d46c55d942e98cae6ec03049fd5b3d08 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/87475 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: Zachary Clark <zach@ibm.com> Reviewed-by: Roland Veloz <rveloz@us.ibm.com> Reviewed-by: Christian R Geddes <crgeddes@us.ibm.com> Reviewed-by: Nicholas E Bofferding <bofferdn@us.ibm.com>
* Fix UCD invalid command error for 0 byte block read SMBus requestsNick Bofferding2019-04-171-1/+1
| | | | | | | | | | | | | | | | | | | | | | If a UCD device had a legitimate 0-sized reponse to a block read request, this set off a bug in the code where the i2c driver would issue a 0 byte read request without a start, stop, or address bit, which causes the i2c engine to throw a command invalid error. This commit fixes the logic so that in that condition, the driver either skips the offending read (for cases where a PEC byte follows), or completes the transaction with a stop bit (for no PEC byte case) Change-Id: I64011b4e540120c8547fa3ca84a4dd68f45b479a CQ: SW462736 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/75940 Reviewed-by: Ilya Smirnov <ismirno@us.ibm.com> Reviewed-by: Matthew Raybuck <matthew.raybuck@ibm.com> 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: 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>
* Cleanup UCD Update Algorithm CodeMike Baiocchi2019-04-031-88/+239
| | | | | | | | | | | | | | | | | This commit converts previous asserts to valid error log calls while also updating some traces to the UCD update algorithm procedure. Change-Id: I4579d1eb602bbcb35ef9fd01131178d24007727a RTC:205979 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/75323 Reviewed-by: Matthew Raybuck <matthew.raybuck@ibm.com> Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Reviewed-by: Ilya Smirnov <ismirno@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>
* Fix UCD retry loop size bugMatthew Raybuck2019-03-301-1/+13
| | | | | | | | | | | | | | | | | There is a bug in the attemptDeviceOp code where an error during the deviceOp function will overwrite the io_bufferLength value causing the retry loop to fail permanently on subsequent retries. Change-Id: Ib525e60e1c6cca2604a279cc595946a92cd4f94d RTC: 205982 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/75243 Reviewed-by: Michael Baiocchi <mbaiocch@us.ibm.com> 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: Jenkins OP HW <op-hw-jenkins+hostboot@us.ibm.com> Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Reviewed-by: Nicholas E. Bofferding <bofferdn@us.ibm.com>
* Create Attribute to force UCD UpdatesMike Baiocchi2019-03-301-4/+26
| | | | | | | | | | | | | | | | This commit adds ATTR_UCD_MFR_REVISION_OVERRIDE such that a user can override the MFR_REVISION seen on a UCD device. This could then force a UCD flash update. Change-Id: I3d807b3ddf2c62752046953f0f3d1754d80da381 RTC:205982 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/75179 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: Ilya Smirnov <ismirno@us.ibm.com> Tested-by: Jenkins OP HW <op-hw-jenkins+hostboot@us.ibm.com> Reviewed-by: Nicholas E. Bofferding <bofferdn@us.ibm.com>
* Handle bad PEC from UCD device opMatthew Raybuck2019-03-291-40/+31
| | | | | | | | | | | | | | | | 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>
* Add retry loop to UCD deviceOpsMatthew Raybuck2019-03-291-71/+342
| | | | | | | | | | | | | | | | | | | The UCD requirements say that if a device operation fails to attempt a total of three times before giving up. This commit adds that functionality. Each deviceOp is attempted three times with the addition of the attemptDeviceOp function. Change-Id: I03874f66465960c672026fb42a8719e6b6aad7ec RTC:205982 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/75109 Reviewed-by: Nicholas E. Bofferding <bofferdn@us.ibm.com> Reviewed-by: Ilya Smirnov <ismirno@us.ibm.com> Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Reviewed-by: Michael Baiocchi <mbaiocch@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>
* Verify UCD update success at end of store to UCD flashNick Bofferding2019-03-291-0/+332
| | | | | | | | | | | | | | | | | | Implements manufacturer recommended verification procedure to determine if the UCD updates to data flash worked correctly. Verifies if the MFR_STATUS bit indicating flash update completed is set, then checks to see if the flash update error bit is confirmed not to be set. On any failure, calls out the UCD device as a predictive error. Change-Id: Ibe0e00029dbd41291f8651f083434ce059c2c37f RTC: 205979 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/75099 Reviewed-by: Matthew Raybuck <matthew.raybuck@ibm.com> 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> Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
* Invoke UCD Update Algorithm on UCD DevicesMike Baiocchi2019-03-261-5/+442
| | | | | | | | | | | | | | | | | | | This commit invokes the full UCD update algorithm on all UCD9090 and UCD90120A devices found in ZZ and Zeppelin systems. The algorithm is based on walking through a pre-processed update binary per UCD device and calling the appropriate SMBUS device operations. Change-Id: I626df3612260d505e65a22d0620b65216d00c65f RTC:205979 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/74887 Reviewed-by: Matthew Raybuck <matthew.raybuck@ibm.com> Reviewed-by: Ilya Smirnov <ismirno@us.ibm.com> Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Tested-by: FSP CI Jenkins <fsp-CI-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> Reviewed-by: Nicholas E. Bofferding <bofferdn@us.ibm.com>
* Add check to determine if a UCD's I2C Master is functionalMike Baiocchi2019-03-261-0/+15
| | | | | | | | | | | | | | | | | Inside the code that loops over all the supported UCD devices for possibly updating their flash image, a check was added to make sure that the UCD's I2C Master target is functional. Change-Id: Id03bf20f0295a27f67f9da8da207934af710630f CQ:SW460918 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/75002 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Reviewed-by: Matthew Raybuck <matthew.raybuck@ibm.com> Reviewed-by: Ilya Smirnov <ismirno@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> Reviewed-by: Nicholas E. Bofferding <bofferdn@us.ibm.com>
* Add minor tweaks to I2C Callouts for UCDMatthew Raybuck2019-03-221-0/+2
| | | | | | | | | | | | | | | Adds some comments and collects traces for Ucd Errors. Change-Id: I431684a2ff2f5466bd6f9f917e902ffc45809d7d RTC:205982 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/74854 Reviewed-by: Michael Baiocchi <mbaiocch@us.ibm.com> Reviewed-by: Glenn Miles <milesg@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: Daniel M. Crowell <dcrowell@us.ibm.com>
* Support UCD for I2C calloutsMatthew Raybuck2019-03-211-33/+56
| | | | | | | | | | | | | | | Adds in the necessary code to have UCDs in the current I2C callout API Change-Id: I505373da5b53c194270bf414f546877f6baee390 RTC:205982 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/73360 Reviewed-by: Michael Baiocchi <mbaiocch@us.ibm.com> Reviewed-by: Ilya Smirnov <ismirno@us.ibm.com> Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Tested-by: FSP CI Jenkins <fsp-CI-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> Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
* Update UCD class member variables and functionsMike Baiocchi2019-03-201-50/+74
| | | | | | | | | | | | | | | | | This commit makes Ucd class member variables to hold the I2C information stored in an attribute of the UCD. It also makes updateUcdFlash() a member function. Change-Id: I66221f0bd1b7dbe82ed4547c0635fbf99628471b RTC:205979 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/74674 Reviewed-by: Ilya Smirnov <ismirno@us.ibm.com> Reviewed-by: Matthew Raybuck <matthew.raybuck@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: Daniel M. Crowell <dcrowell@us.ibm.com>
* UCD flash update invokerNick Bofferding2019-03-201-21/+481
| | | | | | | | | | | | | | | | | | Implements the main algorithm for finding applicable UCDs to perform flash update on and walking the UCD flash image table of contents to find the image associated with a UCD. Also adds a check to skip the update if simics is running. RTC: 201991 Change-Id: Ib35abec2f0a2ed22ae8d41a2acecd146f699bc43 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/73484 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Reviewed-by: Ilya Smirnov <ismirno@us.ibm.com> Reviewed-by: Matthew Raybuck <matthew.raybuck@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> Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
* Add functions to get Device Id and MFR revision from UCDMatthew Raybuck2019-03-181-9/+324
| | | | | | | | | | | | | | | | This will add the necessary functions to properly read the Device Id and MFR revision from the UCD90* devices on a ZZ or Zeppelin system. Change-Id: I38ffdffb62bf1c1af8941819cdbd74458308879f RTC:205979 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/73185 Reviewed-by: Nicholas E. Bofferding <bofferdn@us.ibm.com> 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: 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>
* UCD Flash Update: Support I2C SMBUS operations for UCD flash updateNick Bofferding2019-03-082-0/+99
| | | | | | | | | | | | | | | | | - 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>
* Support reading UCD flash update LIDsNick Bofferding2019-02-181-0/+4
- Added support to read a single LID container and securely verify it - Added new compile flag CONFIG_UCD_FLASH_UPDATES to enable/disable future TI UCD9090/UCD90120A flash updates - Created shell function to hold the UCD flash update logic Change-Id: I94f3e43558af5d7951febdf6ff0685c120d2db0e RTC: 201992 CMVC-Prereq: 1076388 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/71945 Reviewed-by: Marshall J. Wilks <mjwilks@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> Reviewed-by: Ilya Smirnov <ismirno@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>
OpenPOWER on IntegriCloud