OPAL_PCI_ERR_INJECT

#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

OPAL_SUCCESS

Error injected successfully.

OPAL_PARAMETER

Invalid argument.

OPAL_UNSUPPORTED

PHB doesn’t support error injection or the specific error attempting to be injected.