blob: 94b7245b47a96a11655082ff41e6b9eb1bb05ec4 [file] [log] [blame]
.. _OPAL_PCI_EEH_FREEZE_STATUS:
OPAL_PCI_EEH_FREEZE_STATUS
==========================
.. code-block:: c
#define OPAL_PCI_EEH_FREEZE_STATUS 23
enum OpalFreezeState {
OPAL_EEH_STOPPED_NOT_FROZEN = 0,
OPAL_EEH_STOPPED_MMIO_FREEZE = 1,
OPAL_EEH_STOPPED_DMA_FREEZE = 2,
OPAL_EEH_STOPPED_MMIO_DMA_FREEZE = 3,
OPAL_EEH_STOPPED_RESET = 4,
OPAL_EEH_STOPPED_TEMP_UNAVAIL = 5,
OPAL_EEH_STOPPED_PERM_UNAVAIL = 6
};
enum OpalPciStatusToken {
OPAL_EEH_NO_ERROR = 0,
OPAL_EEH_IOC_ERROR = 1,
OPAL_EEH_PHB_ERROR = 2,
OPAL_EEH_PE_ERROR = 3,
OPAL_EEH_PE_MMIO_ERROR = 4,
OPAL_EEH_PE_DMA_ERROR = 5
};
int64_t opal_pci_eeh_freeze_status(uint64_t phb_id, uint64_t pe_number,
uint8_t *freeze_state,
uint16_t *pci_error_type,
uint64_t *phb_status);
.. note:: The ``phb_status`` parameter is deprecated as
of :ref:`skiboot-6.3-rc1`. Linux only ever passed in NULL,
and this was safe. Supplying a pointer was previously *unsafe*.
Always pass NULL.
.. note:: There once was a :ref:`OPAL_PCI_EEH_FREEZE_STATUS2` call, but it
was introduced in firmware and never used by any OS, so it has since
been removed from OPAL.
Returns
-------
:ref:`OPAL_PARAMETER`
Invalid address or PHB.
:ref:`OPAL_UNSUPPORTED`
PHB does not support this operation.
:ref:`OPAL_HARDWARE`
Hardware prohibited getting status, OPAL maybe marked it as broken.
:ref:`OPAL_SUCCESS`
Retreived status.
.. _OPAL_PCI_EEH_FREEZE_STATUS2:
OPAL_PCI_EEH_FREEZE_STATUS2
===========================
.. code-block:: c
#define OPAL_PCI_EEH_FREEZE_STATUS2 61
Use :ref:`OPAL_PCI_EEH_FREEZE_STATUS` instead of this (removed) call.
While you'd think that a call introduced in the first public OPAL release would
have been used somewhere, it seems that all existing code has only ever used
:ref:`OPAL_PCI_EEH_FREEZE_STATUS` over :ref:`OPAL_PCI_EEH_FREEZE_STATUS2`.
This call has been removed as of :ref:`skiboot-6.4` as it has literally never
been used.