diff options
author | Matt Derksen <mderkse1@us.ibm.com> | 2019-06-27 15:03:42 -0500 |
---|---|---|
committer | Daniel M Crowell <dcrowell@us.ibm.com> | 2020-01-20 10:23:06 -0600 |
commit | 829e56fb1456d699806f8e69ebddf7835c1ae633 (patch) | |
tree | 1b92407305312ea3983f817c45866e8d98755ec6 /src/usr/isteps/nvdimm/nvdimmdd.H | |
parent | 1cb00f7e0e9c6cd2646d7e0245a5f22ecf97ab0c (diff) | |
download | talos-hostboot-829e56fb1456d699806f8e69ebddf7835c1ae633.tar.gz talos-hostboot-829e56fb1456d699806f8e69ebddf7835c1ae633.zip |
NVDIMM: Use block write for nvdimm update
In an effort to speed up the nvdimm update, full 32-byte
blocks can now be sent via I2C SMBUS with no initial byte count byte.
Since a block write seems more prone to random system interrupt, this
code should be restricted to run on v3.A or beyond which has the
timeout increased to mitigate these interrupts.
Test results have shown about a 5 minute improvement per NVDIMM.
Change-Id: I040a5f2cc5afb76a73129ef9f6ac965cf36775f4
CQ: SW471053
Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/79678
Reviewed-by: Corey V Swenson <cswenson@us.ibm.com>
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Reviewed-by: TSUNG K YEUNG <tyeung@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>
Diffstat (limited to 'src/usr/isteps/nvdimm/nvdimmdd.H')
-rwxr-xr-x | src/usr/isteps/nvdimm/nvdimmdd.H | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/usr/isteps/nvdimm/nvdimmdd.H b/src/usr/isteps/nvdimm/nvdimmdd.H index 6a3f07be0..88bc388c0 100755 --- a/src/usr/isteps/nvdimm/nvdimmdd.H +++ b/src/usr/isteps/nvdimm/nvdimmdd.H @@ -5,7 +5,7 @@ /* */ /* OpenPOWER HostBoot Project */ /* */ -/* Contributors Listed Below - COPYRIGHT 2019 */ +/* Contributors Listed Below - COPYRIGHT 2019,2020 */ /* [+] International Business Machines Corp. */ /* */ /* */ @@ -69,6 +69,7 @@ struct nvdimm_addr_t uint64_t devSize_KB; // in kilobytes uint64_t chipCount; // number of chips making up nvdimm device uint64_t writeCycleTime; // in milliseconds + uint8_t blockSize; // size of write block supported for this nvdimm uint8_t i2cMuxBusSelector; TARGETING::EntityPath i2cMuxPath; @@ -86,6 +87,7 @@ struct nvdimm_addr_t devSize_KB(0), chipCount(0), writeCycleTime(0), + blockSize(0), i2cMuxBusSelector(I2C_MUX::NOT_APPLICABLE), i2cMuxPath() { |