c4e15445d0f91d16eb9c3482bcf61d0625a39f30
[glsdk/dspdce.git] / platform / ti / dce / baseimage / dce_dsp.cfg
1 /*\r
2  * Copyright (c) 2011, Texas Instruments Incorporated\r
3  * All rights reserved.\r
4  *\r
5  * Redistribution and use in source and binary forms, with or without\r
6  * modification, are permitted provided that the following conditions\r
7  * are met:\r
8  *\r
9  * *  Redistributions of source code must retain the above copyright\r
10  *    notice, this list of conditions and the following disclaimer.\r
11  *\r
12  * *  Redistributions in binary form must reproduce the above copyright\r
13  *    notice, this list of conditions and the following disclaimer in the\r
14  *    documentation and/or other materials provided with the distribution.\r
15  *\r
16  * *  Neither the name of Texas Instruments Incorporated nor the names of\r
17  *    its contributors may be used to endorse or promote products derived\r
18  *    from this software without specific prior written permission.\r
19  *\r
20  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"\r
21  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,\r
22  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\r
23  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR\r
24  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,\r
25  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,\r
26  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;\r
27  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\r
28  * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR\r
29  * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\r
30  * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\r
31  */\r
32 \r
33 \r
34 var hw_OMAP4 = 0;\r
35 var hw_OMAP5 = 1;\r
36 var hw_VAYU = 2;\r
37 var VIRTIO = 0;\r
38 var ZEBU = 0;\r
39 var ES10 = 1;\r
40 var ES20 = 2;\r
41 \r
42 var Program                     = xdc.useModule('xdc.cfg.Program');\r
43 \r
44 var cfgArgs = prog.build.cfgArgs;\r
45 \r
46 Program.global.HwType = cfgArgs.HwType;\r
47 Program.global.enableSMP = cfgArgs.enableSMP;\r
48 Program.global.HwVer = cfgArgs.HwVer;\r
49 Program.global.coreName = "dsp";\r
50 \r
51 print("HwType = " + Program.global.HwType);\r
52 \r
53 if(Program.global.HwType == hw_VAYU)\r
54 {\r
55   //  xdc.loadCapsule("ti/configs/vayu/IpcCommon.cfg.xs");\r
56     xdc.includeFile("ti/configs/vayu/Dsp1.cfg");\r
57     \r
58 }\r
59 else\r
60 {\r
61   //  xdc.loadCapsule("ti/configs/omap54xx/IpcCommon.cfg.xs");\r
62     xdc.includeFile("ti/configs/omap54xx/Dsp.cfg");\r
63     xdc.includeFile("ti/configs/omap54xx/DspAmmu.cfg");\r
64 }\r
65 \r
66 xdc.loadPackage('ti.ipc.mm');\r
67 xdc.loadPackage('ti.ipc.ipcmgr');\r
68 xdc.loadPackage('ti.srvmgr');\r
69 xdc.loadPackage('ti.srvmgr.omaprpc');\r
70 \r
71 // Disabling default IpcCommon trace\r
72 var Registry = xdc.useModule('xdc.runtime.Registry');\r
73 var Diags = xdc.useModule('xdc.runtime.Diags');\r
74 var Task = xdc.useModule('ti.sysbios.knl.Task');\r
75 Task.common$.namedInstance = true;\r
76 \r
77 Registry.common$.diags_ENTRY = Diags.RUNTIME_OFF;\r
78 Registry.common$.diags_EXIT = Diags.RUNTIME_OFF;\r
79 Registry.common$.diags_USER1 = Diags.RUNTIME_OFF;\r
80 Registry.common$.diags_INFO = Diags.RUNTIME_OFF;\r
81 Registry.common$.diags_LIFECYCLE = Diags.ALWAYS_ON;\r
82 Registry.common$.diags_STATUS = Diags.ALWAYS_ON;\r
83 Diags.setMaskEnabled = true;\r
84 \r
85 var Memory                      = xdc.useModule('xdc.runtime.Memory');\r
86 var HeapMem                     = xdc.useModule('ti.sysbios.heaps.HeapMem');\r
87 var GateHwi                     = xdc.useModule('ti.sysbios.gates.GateHwi');\r
88 HeapMem.common$.gate = GateHwi.create();\r
89 \r
90 \r
91 var heapMemParams                       = new HeapMem.Params;\r
92 heapMemParams.size                      = 0x280000; // 2.5MB\r
93 heapMemParams.sectionName       = ".systemHeap";\r
94 var heap0                                       = HeapMem.create(heapMemParams);\r
95 Memory.defaultHeapInstance      = heap0;\r
96 Program.global.heap0            = heap0;\r
97 \r
98 /*\r
99  * Setup memory map.\r
100  */\r
101 \r
102 /* Mark heaps as NOINIT for optimizing boot-time */\r
103 Program.sectMap[".systemHeap"] = new Program.SectionSpec();\r
104 Program.sectMap[".systemHeap"].loadSegment = "EXT_HEAP";\r
105 Program.sectMap[".systemHeap"].type = "NOINIT";\r
106 \r
107 \r
108 /* ----------------------------- VERSION CONFIGURATION ---------------------*/\r
109 var commonBld = xdc.loadCapsule("build/common.bld");\r
110 commonBld.GetVersionTag();\r
111 \r
112 /*\r
113  *  ======== CODEC ENGINE configurations  ========\r
114  */\r
115 \r
116 var Global = xdc.useModule('ti.sdo.ce.osal.Global');\r
117 Global.runtimeEnv = Global.DSPBIOS;\r
118 \r
119 xdc.useModule('ti.sdo.ce.global.Settings').profile    = "debug";\r
120 xdc.loadPackage('ti.sdo.ce.video').profile            = "debug";\r
121 xdc.loadPackage('ti.sdo.ce.video3').profile           = "debug";\r
122 xdc.loadPackage('ti.sdo.ce.alg').profile              = "debug";\r
123 \r
124 var HeapBufMP                   = xdc.useModule('ti.sdo.ipc.heaps.HeapBufMP');\r
125 \r
126 var ipcSettings = xdc.useModule('ti.sdo.ce.ipc.Settings');\r
127 ipcSettings.ipc = xdc.useModule('ti.sdo.ce.ipc.bios.Ipc');\r
128 // set to true to enable debugging of codec engine\r
129 xdc.useModule('ti.sdo.ce.Settings').checked         = true;\r
130 \r
131 /* Enable Memory Translation module that operates on the BIOS Resource Table */\r
132 var Resource = xdc.useModule('ti.ipc.remoteproc.Resource');\r
133 Resource.customTable = true;\r
134 \r
135 // Load decoder/encoder APIs:\r
136 var VIDDEC2 = xdc.useModule('ti.sdo.ce.video2.IVIDDEC2');\r
137 var UNIVERSAL = xdc.useModule('ti.sdo.ce.universal.IUNIVERSAL');\r
138 \r
139 // load whatever codecs are available in the build\r
140 var codecs = [];\r
141 \r
142 function loadCodec(pkg, name)\r
143 {\r
144    try {\r
145                 var codec = xdc.useModule(pkg);\r
146                 print('loading: ' + name);\r
147                 codecs.push({ name: name, mod: codec, local: true });\r
148         } catch(e) {\r
149                 print('no package: ' + pkg);\r
150         }\r
151 }\r
152 \r
153 loadCodec('ti.sdo.codecs.universal.ce.UNIVERSAL', 'dsp_universalCopy');\r
154 \r
155 var engine         = xdc.useModule('ti.sdo.ce.Engine');\r
156 var myEngine       = engine.create("dsp_vidsvr", codecs);\r
157 \r
158 xdc.useModule('ti.sysbios.knl.Task');\r
159 var Task = xdc.useModule('ti.sysbios.knl.Task');\r
160 Task.defaultStackSize = 12 * 0x400;\r
161 \r
162 /* ----------------------------- Configure BIOS--------------------------------*/\r
163 \r
164 BIOS                = xdc.useModule('ti.sysbios.BIOS');\r
165 BIOS.addUserStartupFunction('&IpcMgr_rpmsgStartup');\r
166 \r
167 BIOS.clockEnabled   = true;\r
168 BIOS.libType = BIOS.LibType_Custom;\r
169 BIOS.smpEnabled = false;\r
170 \r
171 \r
172 var Timer = xdc.useModule('ti.sysbios.timers.dmtimer.Timer');\r
173 if(Program.global.HwType == hw_OMAP5 || Program.global.HwType == hw_VAYU)\r
174 {\r
175     /*\r
176     BIOS assumes that default frequency is 38.4 MHz. On OMAP5, SYS_CLK is used to source\r
177     Hence it is clocked at 19.2 MHz.\r
178 \r
179     Locally setting the BIOS configuration for GPT and CTM for OMAP5 till actual changes are\r
180     present in omap54xx/ipu/Platform.xdc\r
181     */\r
182     Timer.intFreq.hi = 0;\r
183     Timer.intFreq.lo = 19200000;\r
184     BIOS.cpuFreq.hi = 0;\r
185     BIOS.cpuFreq.lo = 600000000;\r
186 }\r
187 \r
188 Program.sectMap[".plt"] = "EXT_DATA";\r
189 \r
190 \r
191 /* IPC 3.x is no longer providing version capability. If needed, then IPC needs to implement it. */\r
192     /* Version module; this will produce a .version section with trees infos. Read\r
193      * with "readelf -p .version <base_image>" */\r
194 //    xdc.useModule('ti.utils.Version');\r
195 \r