xref: /arm-trusted-firmware/docs/plat/marvell/armada/misc/mvebu-amb.rst (revision 91f16700b400a8c0651d24a598fc48ee2997a0d7)
1*91f16700SchasingluluAMB - AXI MBUS address decoding
2*91f16700Schasinglulu===============================
3*91f16700Schasinglulu
4*91f16700SchasingluluAXI to M-bridge decoding unit driver for Marvell Armada 8K and 8K+ SoCs.
5*91f16700Schasinglulu
6*91f16700SchasingluluThe Runit offers a second level of address windows lookup. It is used to map
7*91f16700Schasinglulutransaction towards the CD BootROM, SPI0, SPI1 and Device bus (NOR).
8*91f16700Schasinglulu
9*91f16700SchasingluluThe Runit contains eight configurable windows. Each window defines a contiguous,
10*91f16700Schasingluluaddress space and the properties associated with that address space.
11*91f16700Schasinglulu
12*91f16700Schasinglulu::
13*91f16700Schasinglulu
14*91f16700Schasinglulu  Unit        Bank         ATTR
15*91f16700Schasinglulu  Device-Bus  DEV_BOOT_CS  0x2F
16*91f16700Schasinglulu              DEV_CS0      0x3E
17*91f16700Schasinglulu              DEV_CS1      0x3D
18*91f16700Schasinglulu              DEV_CS2      0x3B
19*91f16700Schasinglulu              DEV_CS3      0x37
20*91f16700Schasinglulu  SPI-0       SPI_A_CS0    0x1E
21*91f16700Schasinglulu              SPI_A_CS1    0x5E
22*91f16700Schasinglulu              SPI_A_CS2    0x9E
23*91f16700Schasinglulu              SPI_A_CS3    0xDE
24*91f16700Schasinglulu              SPI_A_CS4    0x1F
25*91f16700Schasinglulu              SPI_A_CS5    0x5F
26*91f16700Schasinglulu              SPI_A_CS6    0x9F
27*91f16700Schasinglulu              SPI_A_CS7    0xDF
28*91f16700Schasinglulu  SPI         SPI_B_CS0    0x1A
29*91f16700Schasinglulu              SPI_B_CS1    0x5A
30*91f16700Schasinglulu              SPI_B_CS2    0x9A
31*91f16700Schasinglulu              SPI_B_CS3    0xDA
32*91f16700Schasinglulu  BOOT_ROM    BOOT_ROM     0x1D
33*91f16700Schasinglulu  UART        UART         0x01
34*91f16700Schasinglulu
35*91f16700SchasingluluMandatory functions
36*91f16700Schasinglulu-------------------
37*91f16700Schasinglulu
38*91f16700Schasinglulu- marvell_get_amb_memory_map
39*91f16700Schasinglulu    Returns the AMB windows configuration and the number of windows
40*91f16700Schasinglulu
41*91f16700SchasingluluMandatory structures
42*91f16700Schasinglulu--------------------
43*91f16700Schasinglulu
44*91f16700Schasinglulu- amb_memory_map
45*91f16700Schasinglulu    Array that include the configuration of the windows. Every window/entry is a
46*91f16700Schasinglulu    struct which has 2 parameters:
47*91f16700Schasinglulu
48*91f16700Schasinglulu      - Base address of the window
49*91f16700Schasinglulu      - Attribute of the window
50*91f16700Schasinglulu
51*91f16700SchasingluluExamples
52*91f16700Schasinglulu--------
53*91f16700Schasinglulu
54*91f16700Schasinglulu.. code:: c
55*91f16700Schasinglulu
56*91f16700Schasinglulu    struct addr_map_win amb_memory_map[] = {
57*91f16700Schasinglulu        {0xf900,	AMB_DEV_CS0_ID},
58*91f16700Schasinglulu    };
59