summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCorey Swenson <cswenson@us.ibm.com>2019-06-03 13:15:10 -0500
committerDaniel M. Crowell <dcrowell@us.ibm.com>2019-06-04 09:36:50 -0500
commit20f6884ac8c615da75db885feae636ca60dc6f5a (patch)
tree58654e04b15b84e65a1aae1f88f61e5020a30e0b
parent3483624140e3f3da807a49d8ffb835813a093597 (diff)
downloadtalos-hostboot-20f6884ac8c615da75db885feae636ca60dc6f5a.tar.gz
talos-hostboot-20f6884ac8c615da75db885feae636ca60dc6f5a.zip
Add workaround to avoid DARN instruction at runtime
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>
-rw-r--r--src/usr/isteps/nvdimm/runtime/nvdimm_rt.C8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/usr/isteps/nvdimm/runtime/nvdimm_rt.C b/src/usr/isteps/nvdimm/runtime/nvdimm_rt.C
index 75515a761..7ab6a88d6 100644
--- a/src/usr/isteps/nvdimm/runtime/nvdimm_rt.C
+++ b/src/usr/isteps/nvdimm/runtime/nvdimm_rt.C
@@ -526,10 +526,16 @@ errlHndl_t nvdimm_getDarnNumber(size_t i_genSize, uint8_t* o_genData)
// Darn could return an error code
uint32_t l_darnErrors = 0;
+ // TODO RTC:210978 NVDIMM encryption remove DARN instruction workaround
+ // Darn instruction is not working, hardcode until it is fixed
+ uint64_t l_darnHack = 0x465a67b23c89d234ull;
+
while (l_darnErrors < MAX_DARN_ERRORS)
{
// Get a 64-bit random number with the darn instruction
- l_darnData[l_loop] = getDarn();
+ // TODO RTC:210978 NVDIMM encryption remove DARN instruction workaround
+ //l_darnData[l_loop] = getDarn();
+ l_darnData[l_loop] = l_darnHack;
if ( l_darnData[l_loop] != DARN_ERROR_CODE )
{
OpenPOWER on IntegriCloud