summaryrefslogtreecommitdiffstats
path: root/src/usr/isteps/nvdimm
Commit message (Collapse)AuthorAgeFilesLines
* Invalidate BAR during MPIPL NVDIMM restoreTsung Yeung2019-07-241-0/+45
| | | | | | | | | | | | | | | | This is a preventive measure to avoid access from the proc to step on the restore. Change-Id: I8d190f1cf2d49663ee40caaae56cb3b63e7b5d0c CQ:SW470208 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/80571 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: Corey V Swenson <cswenson@us.ibm.com> Reviewed-by: Daniel M Crowell <dcrowell@us.ibm.com>
* Add BPM firmware update procedureMatthew Raybuck2019-07-236-2/+1856
| | | | | | | | | | | | | | | | | | 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>
* Add option to factory reset nvdimmsDan Crowell2019-07-162-5/+113
| | | | | | | | | | | | | Added a factory reset function along with a overridable attribute (ATTR_FORCE_NVDIMM_RESET) to trigger the reset during boot. Change-Id: Ib39675e53d693ede897ace0f4432e104dcf8062e Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/80293 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>
* Double nvdimm ops timeout values to accommodate encryptionTsung Yeung2019-07-111-1/+6
| | | | | | | | | | | | | | | | Encryption requires additional time on certain ops which pushes the time required close to the timeout value. Double the timeout values for safety margins. Change-Id: Idcd147fe613059cb03592d46b36537e882b8e7f2 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/80242 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: Matt Derksen <mderkse1@us.ibm.com> Reviewed-by: Corey V. Swenson <cswenson@us.ibm.com> Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
* Deconfig dimms when nvdimm encryption unlock failsCorey Swenson2019-07-101-2/+6
| | | | | | | | | | | | | Change-Id: I7c9c7a9d7923f96816e4baf82443855fb64aaa03 CQ:SW469507 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/80164 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: Matt Derksen <mderkse1@us.ibm.com> Reviewed-by: Roland Veloz <rveloz@us.ibm.com> Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
* Move gen_keys and encrypt_unlock from istep 14 to 13Corey Swenson2019-07-101-0/+6
| | | | | | | | | | | | | | | Need to unlock nvdimm encryption before draminit. CQ:SW469239 Change-Id: Ib8d228470431082f3450cdeb52cfef1c7cff18dc Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/79873 Tested-by: Jenkins Server <pfd-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 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>
* Fix send_ATTR_NVDIMM_ARMED function to send armed attr to HWSVCorey Swenson2019-07-091-1/+1
| | | | | | | | | | | | | Change-Id: I1bac1d632a0d37f7c97ed5b54de28feac7ab5e4e CQ:SW469679 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/80083 Reviewed-by: Roland Veloz <rveloz@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: Dean Sanner <dsanner@us.ibm.com> Reviewed-by: William G. Hoffa <wghoffa@us.ibm.com>
* Change polling condition to avoid premature timeout errorTsung Yeung2019-07-021-1/+1
| | | | | | | | | | | | | Restore with encryption requires longer time and could be hitting timeout value. Modify the polling condition to allow one extra iteration as buffer. Change-Id: Ib69774a67062be7d9d57a6880b9a31155a84d11b Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/79876 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>
* Push ATTR_NVDIMM_ARMED down to FSP to handle MPIPL caseDan Crowell2019-07-011-5/+70
| | | | | | | | | | | | | | | If the NVDIMM is not armed when the save/flush call is made during a mpipl reboot, it will cause errors in the memory. To avoid this we need HBRT to push down the armed state to the FSP so that HWSV can skip the save call in the case where the NVDIMM is not armed. Change-Id: I16611e8fcb5274c3cb0aee6fec1300a95579b11b Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/79825 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>
* Turn off NVDIMM debug trace outputMatthew Raybuck2019-07-012-3/+3
| | | | | | | | | | | | Change-Id: I8b0e17cd2f7549b9372fd93feca9bcef4106aa33 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/79631 Reviewed-by: Corey V. Swenson <cswenson@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>
* Remove dependency on ATTR_NVDIMM_ENCRYPTION_ENABLE for unlockCorey Swenson2019-07-014-67/+66
| | | | | | | | | | | | | | | | | 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>
* Call notifyNvdimmProtectionChange function during IPLCorey Swenson2019-07-012-235/+240
| | | | | | | | | | | | | | | The function updates ATTR_NVDIMM_ARMED and ATTR_NV_STATUS_FLAG. These need to be kept up-to-date during IPL as well as runtime. Change-Id: If2e8ce9bcc78fb54a0852d3d42753898c199570f Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/79472 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: Matt Derksen <mderkse1@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>
* Move the NVDIMM_ARMED attribute from PROC to DIMM typeCorey Swenson2019-06-212-28/+7
| | | | | | | | | | | | | | | | The attribute holds status for armed/occ_active/errors. As DIMM type it will more accurately reflect nvdimm status. Removed the workaround using the scratch register. RTC:211510 Change-Id: I8a1c686773fc7d9ba4d2788dc788764f5170c136 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/79068 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>
* Handle unsupported status bit for NVDIMM Encrytion StatusDan Crowell2019-06-211-3/+9
| | | | | | | | | | | | | | | | | The new NVDIMM FW level added an additional bit to the status register. We don't care about this bit so added a check mask to ignore it when we check the status of the encryption operations. Change-Id: I67ddd087ff8d04d7af81ee41549f1522f717d974 CQ: SW468004 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/79335 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> 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>
* Default NV state to Memory Not PreservedDan Crowell2019-06-211-1/+3
| | | | | | | | | | | | | | | During the restore portion of the IPL we will force NV_STATUS_FLAG to indicate 'memory will not persist' (bit 0) since the logic is not armed until later on. Change-Id: I3008053081ae4f9cfe0406ab226639737e38b785 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/79334 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> 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>
* Push NVDIMM attribute updates down to the FSPDan Crowell2019-06-211-11/+67
| | | | | | | | | | | | | | | | Added calls to send attributes down to HWSV whenever we update the KEYS or ENABLE values. RTC: 208343 Change-Id: I34f18e6b6c852aa673821853064d5126afdd840e Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/79082 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Reviewed-by: Corey V. Swenson <cswenson@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: 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>
* Handle NVDIMM encryption errorsCorey Swenson2019-06-183-143/+270
| | | | | | | | | | | | Update ATTR_NVDIMM_ARMED and ATTR_NV_STATUS_FLAG Update notifyNvdimmProtectionChange() Set encryption error and check before arm/disarm Change-Id: I1edf738af3460684ee93b02f06ff417c3e72d4e3 RTC:210689 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/78828 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
* Use i2c word write for NVDIMM updateMatt Derksen2019-06-122-40/+64
| | | | | | | | | | | | | | 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>
* Revert "Add workaround to avoid DARN instruction at runtime"Corey V. Swenson2019-06-101-7/+1
| | | | | | | | | | | | | | | This reverts commit 20f6884ac8c615da75db885feae636ca60dc6f5a. Change-Id: I083743def26e5ae8679db22e64f11fcd796ee803 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/78470 Reviewed-by: Matt Derksen <mderkse1@us.ibm.com> Reviewed-by: Nicholas E. Bofferding <bofferdn@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>
* Add workaround to avoid DARN instruction at runtimeCorey Swenson2019-06-041-1/+7
| | | | | | | | | | | | | | | The DARN instruction caused the HBRT adjunct to crash. Use hardcoded workaround until the problem is resolved. Change-Id: I34887b03fc3ef9634d75eb1adc9c6a77f2eea217 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/78260 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> Reviewed-by: Matt Derksen <mderkse1@us.ibm.com> Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
* NVDIMM encryption HW function supportCorey Swenson2019-06-033-300/+1558
| | | | | | | | | | | | | | | | | | Update random number generation, IPL and runtime. Write encryption regs to enable nvdimm encryption, crypto-erase, disable encryption. Read config-status reg to verify encryption state. Change-Id: I25625b53f90eeb542767fa729ebb47f8f8455a4b RTC:201474 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/77321 Reviewed-by: Nicholas E. Bofferding <bofferdn@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>
* NVDIMM info logs around updateMatt Derksen2019-05-162-68/+136
| | | | | | | | | | | | | | 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>
* Add back nvdimm_gen_keys functionCorey Swenson2019-05-131-0/+179
| | | | | | | | | | Function lost during ekb merge. Change-Id: I132991ac8516e864057da3528085cae13b67bf23 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/77315 Reviewed-by: Ilya Smirnov <ismirno@us.ibm.com> Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
* Fixed the ccs port merge conflicts and added lab codeMatthew Hickman2019-05-131-179/+2
| | | | | | | | | | | | | | | | | | Change-Id: I665ea2460a5ace289b17ae868b07a8876b65a0c8 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/75236 Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Dev-Ready: STEPHEN GLANCY <sglancy@us.ibm.com> Tested-by: PPE CI <ppe-ci+hostboot@us.ibm.com> Reviewed-by: Louis Stermole <stermole@us.ibm.com> Tested-by: HWSV CI <hwsv-ci+hostboot@us.ibm.com> Reviewed-by: Mark Pizzutillo <mark.pizzutillo@ibm.com> Tested-by: Hostboot CI <hostboot-ci+hostboot@us.ibm.com> Reviewed-by: Jennifer A. Stofer <stofer@us.ibm.com> Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/76885 Reviewed-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com> Tested-by: Daniel M. Crowell <dcrowell@us.ibm.com>
* Add NVDIMM key attributes and generate keysCorey Swenson2019-05-111-1/+179
| | | | | | | | | | | | | | | | 3 keys, 32 bytes each, random numbers generated by TPM hardware. 2 attributes for keys, 1 stored in FW 1 stored in anchor card. 1 attribute for enable/disable encryption. Change-Id: Ie3c258f06204e68c2d65b8d5fea294da5264d597 RTC:208342 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/76126 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: 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 Change Polling OrderTsung Yeung2019-04-171-1/+2
| | | | | | | | | | | | | | | Change ops status read to after wait to avoid status checking timing out too soon. Change-Id: I71bd7242e1a6d2d9dc5674d3fcd0c2c3447f0697 CQ:SW462191 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/75637 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>
* 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>
* HB Improvements: Fix compiler warnings on modern compilersLuis Fernandez2019-04-051-1/+1
| | | | | | | | | | | | | | | | Resolve warnings when compiling with gcc 4.8. Compiled with GCC 7.3, no more compile errors/warnings; build ends with caught exception from linker. This commit compiles with GCC 8.2, no more error/warnings; except for a linking warning. Change-Id: Ib5d7c2b5bd350edc76ee2c7de96896154cd44420 RTC: 202716 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/72271 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> Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@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 - erase after arm to prevent stale image getting restored on next bootTsung Yeung2019-04-041-0/+29
| | | | | | | | | | | | | Change-Id: I44626ab7d2c9cb10eac0a2ae2aa3d2217d307d69 CQ:SW459987 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/75472 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: Corey V. Swenson <cswenson@us.ibm.com> Reviewed-by: Matt Derksen <mderkse1@us.ibm.com> Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
* Adds HWP call to set up CCS for EPOWTsung Yeung2019-04-041-0/+56
| | | | | | | | | | | | | Change-Id: Idf457ec19eea1101cb7ac2627b16d446641581fb CQ:SW458983 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/75176 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: Corey V. Swenson <cswenson@us.ibm.com> Reviewed-by: Matt Derksen <mderkse1@us.ibm.com> Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
* Add part callout for the Backup Power ModuleCorey Swenson2019-04-032-0/+6
| | | | | | | | | | | | | | | Callouts were previously added for the NVDIMM controller and the BPM cable. This callout handles the BPM itself. Change-Id: I4ad680a1434ed7d3680f14f6081e456c07239c36 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/75254 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: 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: William G. Hoffa <wghoffa@us.ibm.com>
* Hostboot Memory HWP include updateCaleb Palmer2019-04-011-0/+1
| | | | | | | | | | | | | | Change-Id: Iecaaf2846ef8be48fcbd00766d78cb3eb32c5bdf Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/74971 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: Brian J. Stegmiller <bjs@us.ibm.com> Reviewed-by: Benjamen G. Tyner <ben.tyner@ibm.com> Reviewed-by: Caleb N. Palmer <cnpalmer@us.ibm.com> Reviewed-by: Paul Greenwood <paul.greenwood@ibm.com> Reviewed-by: Zane C. Shelley <zshelle@us.ibm.com>
* NVDIMM update codeMatt Derksen2019-03-296-227/+1978
| | | | | | | | | | | | | | | | | 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>
* Add callouts for NVDIMM errorsCorey Swenson2019-03-113-39/+55
| | | | | | | | | | | | | | | | | | - Add part callout for NVDIMM controller - Add part callout for Backup Power Module - Call new procedure for NVDIMM errors Change-Id: I33d14b8e4220ced3c632c8174eaed5faca4f088d RTC:199645 CMVC-Prereq:1077602 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/71977 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: Matt Derksen <mderkse1@us.ibm.com> Reviewed-by: TSUNG K. YEUNG <tyeung@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-283-0/+832
| | | | | | | | | | | | | | | | | 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>
* Disable NVDIMM Trigger Before Draminit and Deassert DDR_RESETn During MPIPLTsung Yeung2019-02-123-279/+725
| | | | | | | | | | | | | | | | | | | | - Per the JEDEC spec, DDR_RESETn is masked from the DRAM when the NVDIMM is armed. This could cause the training to fail if the trigger is not disabled before training. Two scenarios where this can happen are warm reboot and cold boot before the backup power module can deplete the charge - Deassert DDR_RESETn in MPIPL before triggering the restore. - Fix the config flag to enable NVDIMM code Change-Id: I9d25c2f653fc54d379f0dbab49218f5b59a407a0 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/70035 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>
* Inform PHYP of NVDIMM protection by OCCMatt Derksen2019-01-244-152/+449
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The OCC is responsible for detecting the EPOW signal and triggering the save operation on the NVDIMM. Therefore, if the OCC is not running we are unprotected from a poweroff event. PHYP needs to inform the LPARs using the NV (non-volatile) memory of this state so they can behave accordingly. HBRT is responsible for telling PHYP when we get into this state. There are two ways we can detect this state: a) HBRT explicitly puts the PM complex into reset b) PRD detects a specific FIR bit The message should include this data: - what state we are in (protected or unprotected) - which processor is affected Work for this story will include: - Definition of the new message - Creating a utility function to send the message - Calling utility function to send 'unprotected' message inside of all pm reset paths at runtime Change-Id: Ib015d001d47883a247faedabedb0705ba0f1b215 RTC:201181 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/68870 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: TSUNG K. YEUNG <tyeung@us.ibm.com> Reviewed-by: Roland Veloz <rveloz@us.ibm.com> Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
* Move NVDIMM operations under NVDIMM modulesMatt Derksen2019-01-2113-3/+2343
| | | | | | | | | | | | | | | Makes it easier to find and include NVDIMM operations. Also makes it easier to exclude from non-nvdimm supported systems. Change-Id: I870c2246e1bb9201e6e8032f1868e6e4e6a2b91a Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/70489 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: Christian R. Geddes <crgeddes@us.ibm.com> Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
* Move NVDIMM Erase and Arm to RuntimeTsung Yeung2019-01-094-94/+88
| | | | | | | | | | | -Move erase and arm to after OCC has started -Address several TODOs in I2d68123ceb0b8e7a33b54f9acad0968670a67ea9 -Combine arm and erase into an atomic operation with ATOMIC_SAVE_AND_ERASE Change-Id: Iad06f6fe7128df3defc4ded57b0151f9c4b9d15e Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/68197 Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com> Tested-by: Daniel M. Crowell <dcrowell@us.ibm.com>
* Adds NVDIMM IPL Support on ZZTsung Yeung2018-10-303-0/+1639
-New NVDIMM functions to support restore and trigger setup -Includes NVDIMM step in call_mss_power_cleanup after mss_power_cleanup HWP -Fixes attribute NV_STATUS_FLAG to match HDAT spec Change-Id: I2d68123ceb0b8e7a33b54f9acad0968670a67ea9 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/63948 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> Reviewed-by: Christian R. Geddes <crgeddes@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