summaryrefslogtreecommitdiffstats
path: root/doc/opal-api/opal-pci-map-pe-dma-window-real-45.rst
blob: bc364dc4739e96b7742858f6056723804f004009 (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
OPAL_PCI_MAP_PE_DMA_WINDOW_REAL
===============================
::

   #define OPAL_PCI_MAP_PE_DMA_WINDOW_REAL		45

**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 initialize the specified DMA window for
untranslated DMA addresses. This allows a PE to DMA directly to system memory
without TCE translation. The DMA window PCI memory address is equal to the
system memory real address. The PHB passes PCI address bits 04:63 directly to
system real address bits 04:63 when PCI address bits 04:39 are within the
region specified by mem_addr t0 mem_addr + window_size.

The addresses must be 16MB aligned and a multiple of 16MB in size.

``phb_id``
  is the value from the PHB node ibm,opal-phbid property.

``dma_window_number``
  specifies the DMA window

For ibm,opal-ioda PHBs the dma_window_number is an index from 0 to the PHB
total number of windows minus 1. For ibm,opal-ioda2 PHBs the DMA window_number
is an index from 0 to n-1, where n is the number of windows per window set,
within the window set associated with the specified PE number.

``pe_number``
  is the index of the PE that is authorized to DMA to this window
  address space in PCI memory,

``mem_addr``
  is the starting 64-bit system real address mapped directly to the
  starting address in PCI memory. Addresses below 4GB are zero in bits above
  bit 32. This value must be aligned on a 16MB boundary; OPAL returns
  OPAL_PARAMETER for any value that is not a multiple of 16MB.

``window_size``
  is the size, in bytes, of the address range defined by this
  window. This value must be a multiple of 16MB; OPAL returns OPAL_PARAMETER
  for any value that is not a multiple of 16MB. A value of '0' indicates to
  disable this DMA window.
OpenPOWER on IntegriCloud