54 lines
1.6 KiB
ReStructuredText
54 lines
1.6 KiB
ReStructuredText
.. _OPAL_PCI_ERR_INJECT:
|
|
|
|
OPAL_PCI_ERR_INJECT
|
|
===================
|
|
|
|
.. code-block:: c
|
|
|
|
#define OPAL_PCI_ERR_INJECT 96
|
|
|
|
enum OpalErrinjectType {
|
|
OPAL_ERR_INJECT_TYPE_IOA_BUS_ERR = 0,
|
|
OPAL_ERR_INJECT_TYPE_IOA_BUS_ERR64 = 1,
|
|
};
|
|
|
|
enum OpalErrinjectFunc {
|
|
/* IOA bus specific errors */
|
|
OPAL_ERR_INJECT_FUNC_IOA_LD_MEM_ADDR = 0,
|
|
OPAL_ERR_INJECT_FUNC_IOA_LD_MEM_DATA = 1,
|
|
OPAL_ERR_INJECT_FUNC_IOA_LD_IO_ADDR = 2,
|
|
OPAL_ERR_INJECT_FUNC_IOA_LD_IO_DATA = 3,
|
|
OPAL_ERR_INJECT_FUNC_IOA_LD_CFG_ADDR = 4,
|
|
OPAL_ERR_INJECT_FUNC_IOA_LD_CFG_DATA = 5,
|
|
OPAL_ERR_INJECT_FUNC_IOA_ST_MEM_ADDR = 6,
|
|
OPAL_ERR_INJECT_FUNC_IOA_ST_MEM_DATA = 7,
|
|
OPAL_ERR_INJECT_FUNC_IOA_ST_IO_ADDR = 8,
|
|
OPAL_ERR_INJECT_FUNC_IOA_ST_IO_DATA = 9,
|
|
OPAL_ERR_INJECT_FUNC_IOA_ST_CFG_ADDR = 10,
|
|
OPAL_ERR_INJECT_FUNC_IOA_ST_CFG_DATA = 11,
|
|
OPAL_ERR_INJECT_FUNC_IOA_DMA_RD_ADDR = 12,
|
|
OPAL_ERR_INJECT_FUNC_IOA_DMA_RD_DATA = 13,
|
|
OPAL_ERR_INJECT_FUNC_IOA_DMA_RD_MASTER = 14,
|
|
OPAL_ERR_INJECT_FUNC_IOA_DMA_RD_TARGET = 15,
|
|
OPAL_ERR_INJECT_FUNC_IOA_DMA_WR_ADDR = 16,
|
|
OPAL_ERR_INJECT_FUNC_IOA_DMA_WR_DATA = 17,
|
|
OPAL_ERR_INJECT_FUNC_IOA_DMA_WR_MASTER = 18,
|
|
OPAL_ERR_INJECT_FUNC_IOA_DMA_WR_TARGET = 19,
|
|
};
|
|
|
|
int64_t opal_pci_err_inject(uint64_t phb_id, uint64_t pe_number,
|
|
uint32_t type, uint32_t func,
|
|
uint64_t addr, uint64_t mask);
|
|
|
|
Inject an error, used to test OS and OPAL EEH handling.
|
|
|
|
Returns
|
|
-------
|
|
|
|
:ref:`OPAL_SUCCESS`
|
|
Error injected successfully.
|
|
:ref:`OPAL_PARAMETER`
|
|
Invalid argument.
|
|
:ref:`OPAL_UNSUPPORTED`
|
|
PHB doesn't support error injection or the specific error attempting to
|
|
be injected.
|