| .. _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. |