aboutsummaryrefslogtreecommitdiff
path: root/doc/opal-api/opal-pci-reset-49.rst
blob: 85acc0bb7304be88fb23a76fe1d5a2cc388c8ec6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
.. _OPAL_PCI_RESET:

OPAL_PCI_RESET
==============

.. code-block:: c

   #define OPAL_PCI_RESET				49

   enum OpalPciResetScope {
	OPAL_RESET_PHB_COMPLETE		= 1,
	OPAL_RESET_PCI_LINK		= 2,
	OPAL_RESET_PHB_ERROR		= 3,
	OPAL_RESET_PCI_HOT		= 4,
	OPAL_RESET_PCI_FUNDAMENTAL	= 5,
	OPAL_RESET_PCI_IODA_TABLE	= 6
   };

   enum OpalPciResetState {
	OPAL_DEASSERT_RESET = 0,
	OPAL_ASSERT_RESET   = 1
   };

   int64_t opal_pci_reset(uint64_t id, uint8_t reset_scope, uint8_t assert_state);

Kick off the requested PCI reset operation. This starts a state machine off to
perform the requested operation. This call will return how many milliseconds to
wait before calling back into :ref:`OPAL_PCI_POLL`. An OS can
call :ref:`OPAL_PCI_POLL` earlier, but it is unlikely any progress will have
been made.


Returns
-------

:ref:`OPAL_PARAMETER`
     Invalid ``id``, ``reset_scope``, or ``assert_state``.
:ref:`OPAL_UNSUPPORTED`
     Operation is unsupported on ``id``.
value > 0
     How many ms to wait for the state machine to crank.
     Call :ref:`OPAL_PCI_POLL` to crank the state machine further.