summaryrefslogtreecommitdiffstats
path: root/src/usr/isteps/nvdimm/nvdimm_update.C
Commit message (Collapse)AuthorAgeFilesLines
* Slot check after firmware updateMatt Derksen2019-11-051-6/+98
| | | | | | | | | | | | | | | | | | Verify every NVDIMM is running from slot 1 and is at the latest firmware version. Create a predictive error for those that are not running latest code level. Change-Id: I46766d267f4a1293739a49c989ef5ab7dde585b5 CQ:SW478561 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/85656 Reviewed-by: Corey V Swenson <cswenson@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: TSUNG K YEUNG <tyeung@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>
* NVDIMM FW update region write retryMatt Derksen2019-11-051-16/+48
| | | | | | | | | | | | | | | | | | Retry writing a region of code if the checksums do not match. Retry up to 3 times per region. Second of two commits for this defect. CQ:SW469894 Change-Id: Id3cbd71a2930a2dc19532b3b5c87f692dde447cd Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/80360 Reviewed-by: TSUNG K YEUNG <tyeung@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: Corey V Swenson <cswenson@us.ibm.com> Reviewed-by: Daniel M Crowell <dcrowell@us.ibm.com>
* NVDIMM update - Clear FW Ops Status verificationMatt Derksen2019-11-051-7/+112
| | | | | | | | | | | | | | | | | | | SMART is recommending after 0x41=0x02 (Clear FW Ops Status) that the IBM utility read 0x71 to verify that the OPS_SUCCESS and OPS_ERROR bits have been cleared and that only Bit 2 (FIRMWARE_UPDATE_MODE) is set. First of two fixes for SW469894 Change-Id: Id9e9d7fa5abd5bcd3bae806b27332513f48956b2 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/83946 Reviewed-by: TSUNG K YEUNG <tyeung@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: Corey V Swenson <cswenson@us.ibm.com> Reviewed-by: Daniel M Crowell <dcrowell@us.ibm.com>
* Prevent pre-3.0 level NVDIMMs from being in systemsMatt Derksen2019-10-091-3/+7
| | | | | | | | | | | | | | | Do not want these non-updateable NVDIMMs to be used. Change-Id: Ia045257d101fc249d65b2d0af6194f8f3aa1e9dc CQ: SW477628 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/84729 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Reviewed-by: Corey V Swenson <cswenson@us.ibm.com> Reviewed-by: TSUNG K YEUNG <tyeung@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>
* NVDIMM: FW_UPDATE: New FFDC for SECURITY_ERRORCorey Swenson2019-09-131-1/+12
| | | | | | | | | | | | | | | For any command error or timeout during FW_UPDATE add regs to error log. Registers specified in NVDIMM IPL Error Handling Document. CQ:SW473060 Change-Id: I3ca8933b9c62f0b12bebefbae06357400e8e436e Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/83590 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>
* Add vendor log data to FFDC for all NVDIMM HW errorsCorey Swenson2019-09-131-0/+13
| | | | | | | | | | | | | Read vendor log data from NVDIMM Do checksum compare Add to error log as string Change-Id: I41a295bf54d031c978b59fe1f59c98507fbeec81 CQ:SW473585 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/83383 Tested-by: Jenkins Server <pfd-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>
* NVDIMM: Additional FFDC for NVDIMM/BPM calloutsCorey Swenson2019-09-121-0/+12
| | | | | | | | | | | | Add page 4 SMART regs to error log FFDC for all NVDIMM HW errors. Add attribute to prevent recursively executing the function. Change-Id: I2cdd89436a2647c440f900a729596b522829aca6 CQ:SW470690 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/82599 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Reviewed-by: Daniel M Crowell <dcrowell@us.ibm.com>
* Fix NVDIMM update error log commentsCorey Swenson2019-08-201-17/+17
| | | | | | | | | | | | | | First line of error log comment must include /*@ or error log will not be documented. Also fixed in other HB files. Change-Id: Ifa5eba6d6abd7f8565a4cc8d62a25a2b833725f2 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/82497 Tested-by: Jenkins Server <pfd-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> Reviewed-by: Matt Derksen <mderkse1@us.ibm.com> Reviewed-by: Daniel M Crowell <dcrowell@us.ibm.com>
* Add code to run BPM update procedure from nvdimm_update.CMatthew Raybuck2019-08-191-18/+60
| | | | | | | | | | | | | | | | | Adds the necessary code to hook the existing BPM update code into istep 21. The BPM update will be called in nvdimm_update.C after the nvdimm updates have occurred. Change-Id: If968313433bfdfbbbb929874de6eb0bf4d21b241 RTC: 212448 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/79640 Reviewed-by: Christian R Geddes <crgeddes@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>
* NVDIMM: Fix issue where a deviceRead of a register is returning bad dataRoland Veloz2019-08-091-1/+1
| | | | | | | | | | | | | | | | | | | The reason the deviceRead is returning bad data, from an NVDIMM register, is because the register data is segmented across several pages. One must first set the page correctly before attempting to do a read of a register. This fix will set the page up correctly before doing a read/write to an NVDIMM register. Change-Id: Ic63c8671c0083f1ca243f255a29d1ef4606b7ce5 CQ: SW465917 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/81542 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> 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: Matt Derksen <mderkse1@us.ibm.com> Reviewed-by: Daniel M Crowell <dcrowell@us.ibm.com>
* Add BPM config update procedureMatthew Raybuck2019-08-091-2/+3
| | | | | | | | | | | | | | | | | | Adds the config portion of the BPM updates. This includes missing requirements from BSL version 1.4. Currently, only BSL 1.4 is supported by the BPM update procedure. If a BSL version is unsupported, then the update will be skipped. Change-Id: I063786bad0723441da52db95b815a32b6498df4c RTC: 212446 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/80925 Reviewed-by: Christian R Geddes <crgeddes@us.ibm.com> Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Reviewed-by: Roland Veloz <rveloz@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>
* Add BPM firmware update procedureMatthew Raybuck2019-07-231-0/+16
| | | | | | | | | | | | | | | | | | Adds the necessary code to update the firmware data of the BPM. This commit doesn't support the config data portion of the update. The BPM code hasn't been hooked into the existing NVDIMM code yet either. These things, along with error paths, will be added in future commits. Change-Id: I11aa8b8afda26a093682765e488a4de0e31c0f6c RTC:210367 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/79277 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Reviewed-by: Matt Derksen <mderkse1@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>
* Remove dependency on ATTR_NVDIMM_ENCRYPTION_ENABLE for unlockCorey Swenson2019-07-011-29/+1
| | | | | | | | | | | | | | | | | An eflash will set ATTR_NVDIMM_ENCRYPTION_ENABLE = 0, so only use HW encryption enabled to decide whether to unlock. Also need to unlock whenever the nvdimm controller is reset. Change-Id: I1505573283da5611354dcfb296b1cf488fa8aef9 CQ:SW469014 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/79674 Reviewed-by: Roland Veloz <rveloz@us.ibm.com> Reviewed-by: Matt Derksen <mderkse1@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>
* Fix memory leak in nvdimm_update.CMatthew Raybuck2019-06-251-0/+18
| | | | | | | | | | | | Change-Id: I9e5574680ec0e48df560a72844cab3a641e14dd1 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/79351 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Reviewed-by: Matt Derksen <mderkse1@us.ibm.com> Tested-by: Jenkins OP Build CI <op-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> Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
* Use i2c word write for NVDIMM updateMatt Derksen2019-06-121-1/+3
| | | | | | | | | | | | | | Trying to reduce the update time and this reduced teh time to about 12.3 minutes. Change-Id: I97cd29a8bcda58902089480f2cc0849381e7d2cf CQ:SW466226 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/78422 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>
* NVDIMM info logs around updateMatt Derksen2019-05-161-14/+108
| | | | | | | | | | | | | | Information error logs around the start/end of individual NVDIMM updates. Also add in a 30 second retry window to nvdimm reads. Change-Id: I8f3e76e7dc811aad2817fa8c0d210c283ac61bcf Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/75678 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>
* Enable 32GB NVDIMM updateMatt Derksen2019-05-151-11/+0
| | | | | | | | | | | | | | | Enable updating 32GB type NVDIMMs. Version 3.1 provided by SMART fixes the update issue found in previous versions. Change-Id: Ie2b0d3db1705f076d06d7fec8cd1ece5713de5f2 CMVC-Prereq: 1081102 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/75527 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>
* Allow update of zeroed NVDIMM levelMatt Derksen2019-04-121-3/+3
| | | | | | | | | | | | | | | Version 00 means the slot is blank, so a code update should be allowed. Change-Id: I0dc685ff72c699e1c3062a5b92e8679516305ca4 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/75889 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: TSUNG K. YEUNG <tyeung@us.ibm.com> Reviewed-by: Corey V. Swenson <cswenson@us.ibm.com> Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
* Small cleanup of NVDIMM updateMatt Derksen2019-04-041-39/+41
| | | | | | | | | | | | | | | | | | Changes made based on review comments. - Needed to make some errors purely software errors. - Removed error if running on non-FSP system. - Make it clear that writeCycleTime is NOT used. Change-Id: Iac4acdda46bfcdb35c8ce7f3a1d1541f8c560957 RTC:202536 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/75229 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: TSUNG K. YEUNG <tyeung@us.ibm.com> Reviewed-by: Corey V. Swenson <cswenson@us.ibm.com> Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
* NVDIMM update codeMatt Derksen2019-03-291-177/+1750
| | | | | | | | | | | | | | | | | This code does the actual NVDIMM update. Refer to JEDEC BAEBI spec for details https://www.jedec.org/standards-documents/docs/jesd245a Change-Id: I8ac6f7695b8a056bb6d8e627d89b4e5e06398f1d RTC:202536 CMVC-Prereq: 1080592 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/71680 Reviewed-by: TSUNG K. YEUNG <tyeung@us.ibm.com> Reviewed-by: Corey V. Swenson <cswenson@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>
* Use NVDIMM lids for updateMatt Derksen2019-03-011-13/+3
| | | | | | | | | | | | | | | | | This will enable grabbing NVDIMM images from lids. Change-Id: I7b8da696dd629ba41834a98e9e2cc1b9c0d872b4 CMVC-Prereq: 1075393 RTC: 201197 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/71045 Reviewed-by: Christian R. Geddes <crgeddes@us.ibm.com> Reviewed-by: Roland Veloz <rveloz@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>
* Framework for NVDIMM updateMatt Derksen2019-02-281-0/+544
This includes framework to update the firmware running on the NV controller. The controller requires 12V power to update, so this function in inside hostboot. Change-Id: I0733d83ff6ba2fc3f026d49c72784b1295bd3eed RTC:201197 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/69879 Reviewed-by: Roland Veloz <rveloz@us.ibm.com> Reviewed-by: Christian R. Geddes <crgeddes@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: Daniel M. Crowell <dcrowell@us.ibm.com>
OpenPOWER on IntegriCloud