summaryrefslogtreecommitdiffstats
path: root/src/include/usr
diff options
context:
space:
mode:
authorDoug Gilbert <dgilbert@us.ibm.com>2013-10-15 13:55:28 -0500
committerA. Patrick Williams III <iawillia@us.ibm.com>2013-11-13 14:49:38 -0600
commitdd2a474b7fc3a8937f45d1278e887b370ad81192 (patch)
tree00595698a572529ddcd00fc3c975b588b4ea67dc /src/include/usr
parent1aa8f7551005dd48078b91be173e8bcc7e339061 (diff)
downloadtalos-hostboot-dd2a474b7fc3a8937f45d1278e887b370ad81192.tar.gz
talos-hostboot-dd2a474b7fc3a8937f45d1278e887b370ad81192.zip
Add VPD support to HBRT
RTC: 79419 Change-Id: I6d00e52026084a68925691b96d7a491faaffb4ef Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/7004 Tested-by: Jenkins Server Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com> Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
Diffstat (limited to 'src/include/usr')
-rw-r--r--src/include/usr/devtree/devtree_reasoncodes.H2
-rw-r--r--src/include/usr/vmmconst.h18
-rw-r--r--src/include/usr/vpd/vpd_if.H35
-rw-r--r--src/include/usr/vpd/vpdreasoncodes.H13
4 files changed, 68 insertions, 0 deletions
diff --git a/src/include/usr/devtree/devtree_reasoncodes.H b/src/include/usr/devtree/devtree_reasoncodes.H
index c996ebca3..bbd44674d 100644
--- a/src/include/usr/devtree/devtree_reasoncodes.H
+++ b/src/include/usr/devtree/devtree_reasoncodes.H
@@ -31,12 +31,14 @@ namespace DEVTREE
{
MOD_DEVTREE_INVALID = 0x00, /**< Zero is invalid module id */
MOD_DEVTREE_BLD_MEM = 0x01,
+ MOD_BLD_VPD_IMAGE = 0x02,
};
enum DevtreeReasonCode
{
RC_ATTR_MEMSIZE_GET_FAIL = DEVTREE_COMP_ID | 0x01,
RC_ATTR_MEMBASE_GET_FAIL = DEVTREE_COMP_ID | 0x02,
+ RC_INSUFFICIENT_SPACE_FOR_RT_VPD = DEVTREE_COMP_ID | 0x03,
};
};
diff --git a/src/include/usr/vmmconst.h b/src/include/usr/vmmconst.h
index d1d0d38a8..c93e62148 100644
--- a/src/include/usr/vmmconst.h
+++ b/src/include/usr/vmmconst.h
@@ -140,6 +140,24 @@ enum BlockPriority
(VMM_OCC_COMMON_SIZE+VMM_HOMER_REGION_SIZE)
+/** Reserved runtime VPD sizes in bytes */
+// must be page aligned
+#define VMM_MODULE_VPD_SIZE 0x80000
+#define VMM_CENTAUR_VPD_SIZE 0x40000
+#define VMM_DIMM_JEDEC_VPD_SIZE 0x40000
+
+/** Total VPD image size */
+#define VMM_RT_VPD_SIZE (VMM_MODULE_VPD_SIZE + \
+ VMM_CENTAUR_VPD_SIZE + \
+ VMM_DIMM_JEDEC_VPD_SIZE)
+
+/** Memory offset for runtime VPD image */
+// Given value is number of bytes BELOW the top of memory to store
+// the runtime image(s) Currently below the OCC HOMER IMAGE
+#define VMM_RT_VPD_OFFSET (VMM_RT_VPD_SIZE + \
+ VMM_ALL_HOMER_OCC_MEMORY_SIZE)
+
+
/**
* Test Constants
*/
diff --git a/src/include/usr/vpd/vpd_if.H b/src/include/usr/vpd/vpd_if.H
new file mode 100644
index 000000000..184d84d40
--- /dev/null
+++ b/src/include/usr/vpd/vpd_if.H
@@ -0,0 +1,35 @@
+/* IBM_PROLOG_BEGIN_TAG */
+/* This is an automatically generated prolog. */
+/* */
+/* $Source: src/include/usr/vpd/vpd_if.H $ */
+/* */
+/* IBM CONFIDENTIAL */
+/* */
+/* COPYRIGHT International Business Machines Corp. 2013 */
+/* */
+/* p1 */
+/* */
+/* Object Code Only (OCO) source materials */
+/* Licensed Internal Code Source Materials */
+/* IBM HostBoot Licensed Internal Code */
+/* */
+/* The source code for this program is not published or otherwise */
+/* divested of its trade secrets, irrespective of what has been */
+/* deposited with the U.S. Copyright Office. */
+/* */
+/* Origin: 30 */
+/* */
+/* IBM_PROLOG_END_TAG */
+#if !defined(__VPD_IF_H)
+#define __VPD_IF_H
+
+namespace VPD
+{
+ /**
+ * Load the runtime VPD image into memory
+ * @param[out] The physical address of the VPD image
+ * @return error handle if there was an error
+ */
+ errlHndl_t vpd_load_rt_image(uint64_t & o_vpd_addr);
+};
+#endif
diff --git a/src/include/usr/vpd/vpdreasoncodes.H b/src/include/usr/vpd/vpdreasoncodes.H
index 20be0e0f6..ac1b13c56 100644
--- a/src/include/usr/vpd/vpdreasoncodes.H
+++ b/src/include/usr/vpd/vpdreasoncodes.H
@@ -70,6 +70,12 @@ enum vpdModuleId
// Centaur FRU VPD
+ // Runtime VPD
+ VPD_RT_GET_ADDR = 0x80,
+ VPD_RT_WRITE_PNOR = 0x81,
+ VPD_BLD_RT_IMAGE = 0x82,
+ VPD_SEND_MBOX_WRITE_MESSAGE = 0x83,
+
};
/**
@@ -102,6 +108,13 @@ enum vpdReasonCode
VPD_INVALID_WRITE_METHOD = VPD_COMP_ID | 0x13,
VPD_NULL_ENTRY = VPD_COMP_ID | 0x14,
VPD_UNSUPPORTED_WRITE = VPD_COMP_ID | 0x15,
+ VPD_RT_INVALID_TYPE = VPD_COMP_ID | 0x16,
+ VPD_RT_CALL_TO_HYPR_FAILED = VPD_COMP_ID | 0x17,
+ VPD_RT_WRITE_NOT_SUPPORTED = VPD_COMP_ID | 0x18,
+ VPD_RT_NOT_INITIALIZED = VPD_COMP_ID | 0x19,
+ VPD_RT_NULL_VPD_PTR = VPD_COMP_ID | 0x1a,
+ VPD_INSUFFICIENT_SPACE_FOR_IMAGE = VPD_COMP_ID | 0x1b,
+ VPD_MBOX_NOT_SUPPORTED_RT = VPD_COMP_ID | 0x1c,
};
}; // end MVPD
OpenPOWER on IntegriCloud