Resources: Add DMM/TILER register space to Resource Table
[gstreamer-omap:sysbios-rpmsg.git] / src / ti / resources / IpcMemory.xdt
1 %%{
2 /*
3  * Copyright (c) 2011, Texas Instruments Incorporated
4  * All rights reserved.
5  *
6  * Redistribution and use in source and binary forms, with or without
7  * modification, are permitted provided that the following conditions
8  * are met:
9  *
10  * *  Redistributions of source code must retain the above copyright
11  *    notice, this list of conditions and the following disclaimer.
12  *
13  * *  Redistributions in binary form must reproduce the above copyright
14  *    notice, this list of conditions and the following disclaimer in the
15  *    documentation and/or other materials provided with the distribution.
16  *
17  * *  Neither the name of Texas Instruments Incorporated nor the names of
18  *    its contributors may be used to endorse or promote products derived
19  *    from this software without specific prior written permission.
20  *
21  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
22  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
23  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
24  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
25  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
26  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
27  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
28  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
29  * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
30  * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
31  * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32  */
33 %%}
34
35 %var MultiProc = xdc.module('ti.sdo.utils.MultiProc');
36 %if (MultiProc.id == MultiProc.getIdMeta("CORE0")) {
37
38 #include <xdc/runtime/System.h>
39 #include <ti/resources/rsc_table.h>
40
41
42 /* Ducati Memory Map: */
43 #define L4_44XX_BASE            0x4a000000
44
45 #define L4_PERIPHERAL_L4CFG     (L4_44XX_BASE)
46 #define IPU_PERIPHERAL_L4CFG    0xAA000000
47
48 #define L4_PERIPHERAL_L4PER     0x48000000
49 #define IPU_PERIPHERAL_L4PER    0xA8000000
50
51 #define L4_PERIPHERAL_L4EMU     0x54000000
52 #define IPU_PERIPHERAL_L4EMU    0xB4000000
53
54 #define L3_PERIPHERAL_DMM       0x4E000000
55 #define IPU_PERIPHERAL_DMM      0xAE000000
56
57 #define L3_IVAHD_CONFIG         0x5A000000
58 #define IPU_IVAHD_CONFIG        0xBA000000
59
60 #define L3_IVAHD_SL2            0x5B000000
61 #define IPU_IVAHD_SL2           0xBB000000
62
63 #define L3_TILER_MODE_0_1       0x60000000
64 #define IPU_TILER_MODE_0_1      0x60000000
65
66 #define L3_TILER_MODE_2         0x70000000
67 #define IPU_TILER_MODE_2        0x70000000
68
69 #define L3_TILER_MODE_3         0x78000000
70 #define IPU_TILER_MODE_3        0x78000000
71
72 #define L3_IVAHD_CONFIG         0x5A000000
73 #define IPU_IVAHD_CONFIG        0xBA000000
74
75 #define L3_IVAHD_SL2            0x5B000000
76 #define IPU_IVAHD_SL2           0xBB000000
77
78 #define IPU_MEM_TEXT            0x0
79 #define IPU_MEM_DATA            0x80000000
80 #define IPU_MEM_IOBUFS          0x88000000
81 #define IPU_MEM_IPC_VRING       0xA0000000
82 #define IPU_MEM_IPC_DATA        0x9F000000
83
84 /*
85  * Assign fixed RAM addresses to facilitate a fixed MMU table.
86  * PHYS_MEM_IPC_VRING & PHYS_MEM_IPC_DATA MUST be together.
87  */
88 #define PHYS_MEM_IPC_VRING      0xB3A00000
89 #define PHYS_MEM_IPC_DATA       0xB3B00000
90 #define PHYS_MEM_TEXT           0xB3C00000
91 #define PHYS_MEM_DATA           0xB4300000
92 #define PHYS_MEM_IOBUFS         0xBA300000
93
94 #pragma DATA_SECTION(resourcesLen, ".resource_size")
95 #pragma DATA_SECTION(resources, ".resource_table")
96
97 ti_resources_IpcMemory_Resource resources[] = {
98     { TYPE_TRACE, 0, 0, 0, 0, 0, 0, "0" },
99     { TYPE_TRACE, 1, 0, 0, 0, 0, 0, "1" },
100     { TYPE_ENTRYPOINT, 0, 0, 0, 0, 0, 0, "0" },
101     { TYPE_ENTRYPOINT, 1, 0, 0, 0, 0, 0, "1" },
102     { TYPE_CRASHDUMP, 0, 0, 0, 0, 0, 0, "0" },
103     { TYPE_CRASHDUMP, 1, 0, 0, 0, 0, 0, "1" },
104     { TYPE_DEVMEM, IPU_TILER_MODE_0_1, 0, L3_TILER_MODE_0_1, 0, SZ_256M,
105        0, "IPU_TILER_MODE_0_1" },
106     { TYPE_DEVMEM, IPU_TILER_MODE_2, 0, L3_TILER_MODE_2, 0, SZ_128M,
107        0, "IPU_TILER_MODE_2" },
108     { TYPE_DEVMEM, IPU_TILER_MODE_3, 0, L3_TILER_MODE_3, 0, SZ_128M,
109        0, "IPU_TILER_MODE_3" },
110     { TYPE_DEVMEM, IPU_PERIPHERAL_L4CFG, 0, L4_PERIPHERAL_L4CFG, 0, SZ_16M,
111        0, "IPU_PERIPHERAL_L4CFG" },
112     { TYPE_DEVMEM, IPU_PERIPHERAL_L4PER, 0, L4_PERIPHERAL_L4PER, 0, SZ_16M,
113        0,"IPU_PERIPHERAL_L4PER" },
114     { TYPE_DEVMEM, IPU_PERIPHERAL_DMM, 0, L3_PERIPHERAL_DMM, 0, SZ_1M,
115        0, "IPU_PERIPHERAL_DMM" },
116     { TYPE_DEVMEM, IPU_IVAHD_CONFIG, 0, L3_IVAHD_CONFIG, 0, SZ_16M,
117        0, "IPU_IVAHD_CONFIG" },
118     { TYPE_DEVMEM, IPU_IVAHD_SL2, 0, L3_IVAHD_SL2, 0, SZ_16M,
119        0, "IPU_IVAHD_SL2" },
120     /* IPU_MEM_IPC_VRING should be first irrespective of static or dynamic
121      * carveout. */
122     { TYPE_CARVEOUT, IPU_MEM_IPC_VRING, 0, PHYS_MEM_IPC_VRING, 0, SZ_1M,
123        0, "IPU_MEM_IPC_VRING" },
124     { TYPE_CARVEOUT, IPU_MEM_IPC_DATA, 0, PHYS_MEM_IPC_DATA, 0, SZ_1M,
125        0, "IPU_MEM_IPC_DATA" },
126     { TYPE_CARVEOUT, IPU_MEM_TEXT, 0, PHYS_MEM_TEXT, 0, SZ_1M * 6,
127        0, "IPU_MEM_TEXT" },
128     { TYPE_CARVEOUT, IPU_MEM_DATA, 0, PHYS_MEM_DATA, 0, SZ_1M * 96,
129        0, "IPU_MEM_DATA" },
130     { TYPE_CARVEOUT, IPU_MEM_IOBUFS, 0, PHYS_MEM_IOBUFS, 0, SZ_1M * 90,
131        0, "IPU_MEM_IOBUFS" },
132 };
133
134 UInt32 resourcesLen = sizeof(resources) / sizeof(*resources);
135 %}
136
137 Void ti_resources_IpcMemory_init__I()
138 {
139 %if (MultiProc.id == MultiProc.getIdMeta("CORE0")) {
140     xdc_runtime_System_printf("%x IpcMemory entries at %x\n",
141                               resourcesLen, resources);
142 %}
143
144     return;
145 }