xref: /rk3399_ARM-atf/docs/plat/marvell/armada/misc/mvebu-io-win.rst (revision a28471722afb3ae784d7bce2118c2ea703f8444c)
1*a2847172SGrzegorz JaszczykMarvell IO WIN address decoding bindings
2*a2847172SGrzegorz Jaszczyk========================================
3*a2847172SGrzegorz Jaszczyk
4*a2847172SGrzegorz JaszczykIO Window configration driver (2nd stage address translation) for Marvell Armada 8K and 8K+ SoCs.
5*a2847172SGrzegorz Jaszczyk
6*a2847172SGrzegorz JaszczykThe IO WIN includes a description of the address decoding configuration.
7*a2847172SGrzegorz Jaszczyk
8*a2847172SGrzegorz JaszczykTransactions that are decoded by CCU windows as IO peripheral, have an additional
9*a2847172SGrzegorz Jaszczyklayer of decoding. This additional address decoding layer defines one of the
10*a2847172SGrzegorz Jaszczykfollowing targets:
11*a2847172SGrzegorz Jaszczyk
12*a2847172SGrzegorz Jaszczyk- **0x0** = BootRom
13*a2847172SGrzegorz Jaszczyk- **0x1** = STM (Serial Trace Macro-cell, a programmer's port into trace stream)
14*a2847172SGrzegorz Jaszczyk- **0x2** = SPI direct access
15*a2847172SGrzegorz Jaszczyk- **0x3** = PCIe registers
16*a2847172SGrzegorz Jaszczyk- **0x4** = MCI Port
17*a2847172SGrzegorz Jaszczyk- **0x5** = PCIe port
18*a2847172SGrzegorz Jaszczyk
19*a2847172SGrzegorz JaszczykMandatory functions
20*a2847172SGrzegorz Jaszczyk-------------------
21*a2847172SGrzegorz Jaszczyk
22*a2847172SGrzegorz Jaszczyk- marvell_get_io_win_memory_map
23*a2847172SGrzegorz Jaszczyk    Returns the IO windows configuration and the number of windows of the
24*a2847172SGrzegorz Jaszczyk    specific AP.
25*a2847172SGrzegorz Jaszczyk
26*a2847172SGrzegorz JaszczykMandatory structures
27*a2847172SGrzegorz Jaszczyk--------------------
28*a2847172SGrzegorz Jaszczyk
29*a2847172SGrzegorz Jaszczyk- io_win_memory_map
30*a2847172SGrzegorz Jaszczyk    Array that include the configuration of the windows. Every window/entry is
31*a2847172SGrzegorz Jaszczyk    a struct which has 3 parameters:
32*a2847172SGrzegorz Jaszczyk
33*a2847172SGrzegorz Jaszczyk	  - Base address of the window
34*a2847172SGrzegorz Jaszczyk	  - Size of the window
35*a2847172SGrzegorz Jaszczyk	  - Target-ID of the window
36*a2847172SGrzegorz Jaszczyk
37*a2847172SGrzegorz JaszczykExample
38*a2847172SGrzegorz Jaszczyk-------
39*a2847172SGrzegorz Jaszczyk
40*a2847172SGrzegorz Jaszczyk.. code:: c
41*a2847172SGrzegorz Jaszczyk
42*a2847172SGrzegorz Jaszczyk	struct addr_map_win io_win_memory_map[] = {
43*a2847172SGrzegorz Jaszczyk		{0x00000000fe000000,	0x000000001f00000,	PCIE_PORT_TID}, /* PCIe window 31Mb for PCIe port*/
44*a2847172SGrzegorz Jaszczyk		{0x00000000ffe00000,	0x000000000100000,	PCIE_REGS_TID}, /* PCI-REG window 64Kb for PCIe-reg*/
45*a2847172SGrzegorz Jaszczyk		{0x00000000f6000000,	0x000000000100000,	MCIPHY_TID},	/* MCI window  1Mb for PHY-reg*/
46*a2847172SGrzegorz Jaszczyk	};
47