diff options
author | Christian Geddes <crgeddes@us.ibm.com> | 2019-07-03 15:37:35 -0500 |
---|---|---|
committer | Daniel M Crowell <dcrowell@us.ibm.com> | 2019-07-17 15:16:41 -0500 |
commit | 73acf956a1b5a8e3e22570ba927c6f89e8ad74f0 (patch) | |
tree | 4fb7aee59519b114bf3d868f95ee5d739363c5b4 /src/include | |
parent | e7f8781ee64c8758890e58967cc13532c3c477a8 (diff) | |
download | talos-hostboot-73acf956a1b5a8e3e22570ba927c6f89e8ad74f0.tar.gz talos-hostboot-73acf956a1b5a8e3e22570ba927c6f89e8ad74f0.zip |
Support reading from EECACHE during runtime
To support VPD accesses at runtime we had to add support to access
the information in the EECACHE section of pnor during runtime. To
do this we copy the contents of the EECACHE section into reserved
memory during the runtime setup steps of hostboot. Then when HBRT
is loaded we will process that EECACHE section and built up a map
that will allow read/write accesses to the eecache section just
like during the IPL.
Change-Id: I2d08c883e6c09c3194d85abe141c35bb2b76b126
RTC: 204341
Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/79985
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: Glenn Miles <milesg@ibm.com>
Reviewed-by: Daniel M Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src/include')
-rw-r--r-- | src/include/usr/i2c/eepromddreasoncodes.H | 6 | ||||
-rw-r--r-- | src/include/usr/vmmconst.h | 4 |
2 files changed, 10 insertions, 0 deletions
diff --git a/src/include/usr/i2c/eepromddreasoncodes.H b/src/include/usr/i2c/eepromddreasoncodes.H index c08935ab4..41de06dfa 100644 --- a/src/include/usr/i2c/eepromddreasoncodes.H +++ b/src/include/usr/i2c/eepromddreasoncodes.H @@ -58,6 +58,8 @@ enum eepromModuleId EEPROM_CLEAR_EECACHE = 0x08, EEPROM_CACHE_PERFORM_OP = 0x09, EEPROM_INVALIDATE_CACHE = 0x0A, + EEPROM_RESOLVE_SOURCE = 0x0B, + EEPROM_CACHE_INIT_RT = 0x0C, }; /** @@ -92,6 +94,10 @@ enum eepromReasonCode // what eeproms have been cached was not found EEPROM_CACHE_NOT_FOUND_IN_PNOR = EEPROM_COMP_ID | 0x10, // An entry we thought would be in the the EECACHE section of PNOR seems // to be missing + EEPROM_CACHE_NO_VPD_IN_RSV_MEM = EEPROM_COMP_ID | 0x11, // When looking up the VPD section in reserved memory no entry was found. + EEPROM_DUPLICATE_CACHE_ENTRY = EEPROM_COMP_ID | 0x12 // While parsing eecache found in reserved memory we found at least two + // cache entries that had identical "unique" identifiers + // (see structs defined in eeprom_const.H) }; enum UserDetailsTypes diff --git a/src/include/usr/vmmconst.h b/src/include/usr/vmmconst.h index b6841eea4..bd6a889c1 100644 --- a/src/include/usr/vmmconst.h +++ b/src/include/usr/vmmconst.h @@ -208,9 +208,13 @@ enum BlockPriority #define VMM_MODULE_VPD_SIZE (512*KILOBYTE) /* must be 64KB aligned */ #define VMM_CENTAUR_VPD_SIZE (256*KILOBYTE) /* must be 64KB aligned */ #define VMM_DIMM_JEDEC_VPD_SIZE (256*KILOBYTE) /* must be 64KB aligned */ +#ifndef CONFIG_SUPPORT_EEPROM_CACHING #define VMM_RT_VPD_SIZE ( VMM_MODULE_VPD_SIZE + \ VMM_CENTAUR_VPD_SIZE + \ VMM_DIMM_JEDEC_VPD_SIZE ) +#else +#define VMM_RT_VPD_SIZE (512*KILOBYTE) /* 64KB aligned (size EECACHE section size - ecc) */ +#endif /** Internode communication area outside of the HB image. |