blob: a84da18ddc4489316c3285a7d1a9eab20957b8e3 (
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
43
44
45
46
47
48
49
50
51
52
53
|
.. _OPAL_PCI_MAP_PE_MMIO_WINDOW:
OPAL_PCI_MAP_PE_MMIO_WINDOW
===========================
.. code-block:: c
#define OPAL_PCI_MAP_PE_MMIO_WINDOW 29
int64_t opal_pci_map_pe_mmio_window(uint64_t phb_id,
uint64_t pe_number,
uint16_t window_type,
uint16_t window_num,
uint16_t segment_num);
.. note:: Appears to be POWER7 p7ioc specific. Likely to be removed soon.
**WARNING:** following documentation is from old sources, and is possibly
not representative of OPALv3 as implemented by skiboot. This should be
used as a starting point for full documentation.
The host calls this function to map a segment of MMIO address space to a PE.
``phb_id``
is the value from the PHB node ibm,opal-phbid property.
``window_type``
specifies 32-bit or 64-bit PCI memory
'0' selects PCI IO Space. ibm,opal-ioda2 PHBs do not support IO space,
and OPAL returns opal_unsupported if called for IO windows.
'1' selects 32-bit PCI memory space
'2' selects 64 bit PCI memory space
``window_num``
is the MMIO window number within the specified PCI memory space
``segment_num``
is an index from 0 to the number of segments minus 1 defined
or this window, and selects a particular segment within the specified
window.
Return value:
.. code-block:: c
if (!phb)
return OPAL_PARAMETER;
if (!phb->ops->map_pe_mmio_window)
return OPAL_UNSUPPORTED;
|