summaryrefslogtreecommitdiffstats
path: root/src/include
diff options
context:
space:
mode:
authorChristian Geddes <crgeddes@us.ibm.com>2019-07-03 15:37:35 -0500
committerDaniel M Crowell <dcrowell@us.ibm.com>2019-07-17 15:16:41 -0500
commit73acf956a1b5a8e3e22570ba927c6f89e8ad74f0 (patch)
tree4fb7aee59519b114bf3d868f95ee5d739363c5b4 /src/include
parente7f8781ee64c8758890e58967cc13532c3c477a8 (diff)
downloadtalos-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.H6
-rw-r--r--src/include/usr/vmmconst.h4
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.
OpenPOWER on IntegriCloud