mvebu-io-win.rst 1.39 KB
Newer Older
1
Marvell IO WIN address decoding bindings
2
========================================
3
4
5
6
7
8
9
10

IO Window configration driver (2nd stage address translation) for Marvell Armada 8K and 8K+ SoCs.

The IO WIN includes a description of the address decoding configuration.

Transactions that are decoded by CCU windows as IO peripheral, have an additional
layer of decoding. This additional address decoding layer defines one of the
following targets:
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32

- **0x0** = BootRom
- **0x1** = STM (Serial Trace Macro-cell, a programmer's port into trace stream)
- **0x2** = SPI direct access
- **0x3** = PCIe registers
- **0x4** = MCI Port
- **0x5** = PCIe port

Mandatory functions
-------------------

- marvell_get_io_win_memory_map
    Returns the IO windows configuration and the number of windows of the
    specific AP.

Mandatory structures
--------------------

- io_win_memory_map
    Array that include the configuration of the windows. Every window/entry is
    a struct which has 3 parameters:

33
34
35
36
	  - Base address of the window
	  - Size of the window
	  - Target-ID of the window

37
38
39
40
41
Example
-------

.. code:: c

42
43
44
45
46
	struct addr_map_win io_win_memory_map[] = {
		{0x00000000fe000000,	0x000000001f00000,	PCIE_PORT_TID}, /* PCIe window 31Mb for PCIe port*/
		{0x00000000ffe00000,	0x000000000100000,	PCIE_REGS_TID}, /* PCI-REG window 64Kb for PCIe-reg*/
		{0x00000000f6000000,	0x000000000100000,	MCIPHY_TID},	/* MCI window  1Mb for PHY-reg*/
	};