aboutsummaryrefslogtreecommitdiffstats
path: root/roms/skiboot/doc/opal-api/opal-pci-eeh-freeze-status-23.rst
diff options
context:
space:
mode:
Diffstat (limited to 'roms/skiboot/doc/opal-api/opal-pci-eeh-freeze-status-23.rst')
-rw-r--r--roms/skiboot/doc/opal-api/opal-pci-eeh-freeze-status-23.rst71
1 files changed, 71 insertions, 0 deletions
diff --git a/roms/skiboot/doc/opal-api/opal-pci-eeh-freeze-status-23.rst b/roms/skiboot/doc/opal-api/opal-pci-eeh-freeze-status-23.rst
new file mode 100644
index 000000000..94b7245b4
--- /dev/null
+++ b/roms/skiboot/doc/opal-api/opal-pci-eeh-freeze-status-23.rst
@@ -0,0 +1,71 @@
+.. _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.