summaryrefslogtreecommitdiffstats
path: root/src/include/runtime/interface.h
diff options
context:
space:
mode:
authorZane Shelley <zshelle@us.ibm.com>2016-05-11 13:39:22 -0500
committerWilliam G. Hoffa <wghoffa@us.ibm.com>2016-05-24 10:00:21 -0400
commitd36fdebd86df6f684aa9fecebf2008fd8715d697 (patch)
tree67388dc511c530f6bfd4e58093187fd30a98c43f /src/include/runtime/interface.h
parent3981721dbd1ad4e3f99dd84eccbd6b7a161ce60c (diff)
downloadtalos-hostboot-d36fdebd86df6f684aa9fecebf2008fd8715d697.tar.gz
talos-hostboot-d36fdebd86df6f684aa9fecebf2008fd8715d697.zip
PRD: updated memory_error HBRT interface for P9
Change-Id: I882379f4886e94cf14ebf1aede7f765527a49dc4 RTC: 153748 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/24386 Tested-by: Jenkins Server Tested-by: FSP CI Jenkins Reviewed-by: Caleb N. Palmer <cnpalmer@us.ibm.com> Reviewed-by: Benjamin J. Weisenbeck <bweisenb@us.ibm.com> Reviewed-by: Corey V. Swenson <cswenson@us.ibm.com> Reviewed-by: William G. Hoffa <wghoffa@us.ibm.com>
Diffstat (limited to 'src/include/runtime/interface.h')
-rw-r--r--src/include/runtime/interface.h63
1 files changed, 36 insertions, 27 deletions
diff --git a/src/include/runtime/interface.h b/src/include/runtime/interface.h
index 7ca04d733..4ea4b688c 100644
--- a/src/include/runtime/interface.h
+++ b/src/include/runtime/interface.h
@@ -51,21 +51,26 @@ enum MemoryError_t
{
/** Hardware has reported a solid memory CE that is correctable, but
* continues to report errors on subsequent reads. A second CE on that
- * cache line will result in memory UE. Therefore, it is advised to migrate
- * off of the address range as soon as possible. */
+ * cache line will result in memory UE. Therefore, it is advised to
+ * migrate off of the address range as soon as possible. */
MEMORY_ERROR_CE,
/** Hardware has reported an uncorrectable error in memory (memory UE,
- * channel failure, etc). The hypervisor should migrate any partitions off
- * this address range as soon as possible. Note that these kind of errors
- * will most likely result in partition failures. It is advised that the
- * hypervisor waits some time for PRD to handle hardware attentions so that
- * the hypervisor will know all areas of memory that are impacted by the
+ * channel failure, etc). The hypervisor should migrate any partitions
+ * off this address range as soon as possible. Note that these kind of
+ * errors will most likely result in persistent partition failures. It
+ * is advised that the hypervisor gives firmware some time after
+ * partition failures to handle the hardware attentions so that the
+ * hypervisor will know all areas of memory that are impacted by the
* failure. */
MEMORY_ERROR_UE,
-};
-
+ /** Firmware has predictively requested service on a part in the memory
+ * subsystem. The partitions may not have been affected, but it is
+ * advised to migrate off of the address range as soon as possible to
+ * avoid potential partition outages. */
+ MEMORY_ERROR_PREDICTIVE,
+};
/**
* I2C Master Description: chip, engine and port packed into
@@ -340,28 +345,32 @@ typedef struct hostInterfaces
void *rx_buf, size_t *rx_size);
/**
- * @brief Hardware has reported a memory error. This function requests
- * the hypervisor to remove the all addresses within the address
- * range given (including endpoints) from the available memory
- * space.
+ * @brief Hardware has reported a memory error. This function requests the
+ * hypervisor to dynamically remove all pages within the address
+ * range given (including endpoints) from the available memory space.
*
- * @note It is understood that the hypervisor may not be able to
- * immediately deallocate the memory because it may be in use
- * by a partition. Therefore, the hypervisor should cache all
- * requests and deallocate the memory once it has been freed.
+ * It is understood that the hypervisor may not be able to immediately
+ * deallocate the memory because it is in use by a partition. Therefore, the
+ * hypervisor should cache all requests and deallocate the memory once it
+ * has been freed.
*
- * @param i_startAddr The beginning address of the range.
- * @param i_endAddr The end address of the range.
- * @param i_errorType See enum MemoryError_t.
+ * Firmware does not know page boundaries so the addresses given could be
+ * any address within a page. In some cases, the start and end address may
+ * be the same address, indicating that only one page needs to be
+ * deallocated.
*
- * @return 0 if the request is successfully received. Any value other
- * than 0 on failure. The hypervisor should cache the request
- * and return immediately. It should not wait for the request
- * to be applied. See note above.
- * @platform FSP, OpenPOWER
+ * @param i_startAddr The beginning address of the range.
+ * @param i_endAddr The end address of the range.
+ * @param i_errorType See enum MemoryError_t.
+ *
+ * @return 0 if the request is successfully received. Any value other than 0
+ * on failure. The hypervisor should cache the request and return
+ * immediately. It should not wait for the request to be applied.
+ * See note above.
+ * @platform FSP, OpenPOWER
*/
- int32_t (*memory_error)(uint64_t i_startAddr, uint64_t i_endAddr,
- MemoryError_t i_errorType);
+ int (*memory_error)( uint64_t i_startAddr, uint64_t i_endAddr,
+ enum MemoryError_t i_errorType );
/**
* @brief Modify the SCOM restore section of the HCODE image with the
OpenPOWER on IntegriCloud