[WIP][PDK-8726] Separate OSPI tests keeping memory cached/non-cached
[processor-sdk/pdk.git] / packages / ti / drv / spi / test / ospi_flash / am64x / non_cached / sysbios_r5f.cfg
1 /* =============================================================================
2  *   Copyright (c) Texas Instruments Incorporated 2019
3  *
4  *  Redistribution and use in source and binary forms, with or without
5  *  modification, are permitted provided that the following conditions
6  *  are met:
7  *
8  *    Redistributions of source code must retain the above copyright
9  *    notice, this list of conditions and the following disclaimer.
10  *
11  *    Redistributions in binary form must reproduce the above copyright
12  *    notice, this list of conditions and the following disclaimer in the
13  *    documentation and/or other materials provided with the
14  *    distribution.
15  *
16  *    Neither the name of Texas Instruments Incorporated nor the names of
17  *    its contributors may be used to endorse or promote products derived
18  *    from this software without specific prior written permission.
19  *
20  *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21  *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
22  *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
23  *  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
24  *  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
25  *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
26  *  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
27  *  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
28  *  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
29  *  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
30  *  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31  */
32 var Defaults = xdc.useModule('xdc.runtime.Defaults');
33 var Diags = xdc.useModule('xdc.runtime.Diags');
34 var Error = xdc.useModule('xdc.runtime.Error');
35 var Log = xdc.useModule('xdc.runtime.Log');
36 var LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf');
37 var Main = xdc.useModule('xdc.runtime.Main');
38 var Memory = xdc.useModule('xdc.runtime.Memory')
39 var System = xdc.useModule('xdc.runtime.System');
40 var Text = xdc.useModule('xdc.runtime.Text');
41 var Clock = xdc.useModule('ti.sysbios.knl.Clock');
42 var Task = xdc.useModule('ti.sysbios.knl.Task');
43 var Semaphore = xdc.useModule('ti.sysbios.knl.Semaphore');
44 var HeapBuf = xdc.useModule('ti.sysbios.heaps.HeapBuf');
45 var GateSwi = xdc.useModule('ti.sysbios.gates.GateSwi');
47 var BIOS = xdc.useModule('ti.sysbios.BIOS');
48 var Hwi = xdc.useModule('ti.sysbios.family.arm.v7r.keystone3.Hwi');
49 var Core = xdc.useModule('ti.sysbios.family.arm.v7r.keystone3.Core');
50 var HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');
51 var SysMin = xdc.useModule('xdc.runtime.SysMin');
53 /* System stack size (used by ISRs and Swis) */
54 Program.stack = 0x2000;
56 /* Place vector table in separate section - by default this goes to 0x0 which
57  * is reserved by SBL */
58 Program.sectMap[".vecs"] = "RESET_VECTORS";
60 var Task = xdc.useModule('ti.sysbios.knl.Task');
61 Task.defaultStackSize = 0x4000;
62 Task.common$.namedInstance = true;
63 Task.common$.namedModule = true;
65 /* Enable cache */
66 var Cache = xdc.useModule('ti.sysbios.family.arm.v7r.Cache');
67 Cache.enableCache = true;
69 /*
70  * Direct CIO to UART
71  */
72 /* System.SupportProxy = SysUart; */
73 System.SupportProxy = SysMin;
74 System.extendedFormats += "%f";
75 /*
76  * Program.argSize sets the size of the .args section.
77  * The examples don't use command line args so argSize is set to 0.
78  */
79 Program.argSize = 0x0;
81 /*
82  * Uncomment this line to globally disable Asserts.
83  * All modules inherit the default from the 'Defaults' module.  You
84  * can override these defaults on a per-module basis using Module.common$.
85  * Disabling Asserts will save code space and improve runtime performance.
86 Defaults.common$.diags_ASSERT = Diags.ALWAYS_OFF;
87  */
89 /*
90  * Uncomment this line to keep module names from being loaded on the target.
91  * The module name strings are placed in the .const section. Setting this
92  * parameter to false will save space in the .const section.  Error and
93  * Assert messages will contain an "unknown module" prefix instead
94  * of the actual module name.
95 Defaults.common$.namedModule = false;
96  */
98 /* Create default heap and hook it into Memory */
99 var heapMemParams = new HeapMem.Params;
100 heapMemParams.size = 16384*4;
101 var heap0 = HeapMem.create(heapMemParams);
103 Memory.defaultHeapInstance = heap0;
105 /*
106  * Minimize exit handler array in System.  The System module includes
107  * an array of functions that are registered with System_atexit() to be
108  * called by System_exit().
109  */
110 System.maxAtexitHandlers = 4;
112 /*
113  * Uncomment this line to disable the Error print function.
114  * We lose error information when this is disabled since the errors are
115  * not printed.  Disabling the raiseHook will save some code space if
116  * your app is not using System_printf() since the Error_print() function
117  * calls System_printf().
118 Error.raiseHook = null;
119  */
121 /*
122  * Uncomment this line to keep Error, Assert, and Log strings from being
123  * loaded on the target.  These strings are placed in the .const section.
124  * Setting this parameter to false will save space in the .const section.
125  * Error, Assert and Log message will print raw ids and args instead of
126  * a formatted message.
127 Text.isLoaded = false;
128  */
130 /*
131  * Uncomment this line to disable the output of characters by SysMin
132  * when the program exits.  SysMin writes characters to a circular buffer.
133  * This buffer can be viewed using the SysMin Output view in ROV.
134 SysMin.flushAtExit = false;
135  */
137 /*
138  * Create and install logger for the whole system
139  */
140 var loggerBufParams = new LoggerBuf.Params();
141 loggerBufParams.numEntries = 32;
142 var logger0 = LoggerBuf.create(loggerBufParams);
143 Defaults.common$.logger = logger0;
144 Main.common$.diags_INFO = Diags.ALWAYS_ON;
146 BIOS.libType = BIOS.LibType_Custom;
147 BIOS.cpuFreq.lo = 800000000;
148 BIOS.cpuFreq.hi = 0;
150 var coreId = java.lang.System.getenv("CORE");
152 var DMTimer = xdc.useModule('ti.sysbios.timers.dmtimer.Timer');
153 DMTimer.checkFrequency = false;
154 for (var i=0; i < DMTimer.numTimerDevices; i++) {
155     DMTimer.intFreqs[i].lo = 19200000;
156     DMTimer.intFreqs[i].hi = 0;
159 if(coreId=="mcu1_0")
161     Core.id = 0;
162     /* DM timer cfg */
163     Clock.timerId = 0;
165 if(coreId=="mcu1_1")
167     Core.id = 1;
168     /* DM timer cfg */
169     Clock.timerId = 1;
171 if(coreId=="mcu2_0")
173     Core.id = 0;
174     Clock.timerId = 2;
176 if(coreId=="mcu2_1")
178     Core.id = 1;
179     Clock.timerId = 3;
181 /* Sysbios supports workaround for Silicon issue https://jira.itg.ti.com/browse/K3_OPEN_SI-148
182  * Details of silicon issue : https://confluence.itg.ti.com/display/PROCIPDEV/%2310+The+same+interrupt+cannot+be+nested+back-2-back+within+another+interrupt
183  * Sysbios Requirement Details: https://jira.itg.ti.com/browse/SYSBIOS-1419
184  * Workaround requires use of a resevred dummyIRQ.
185  * Using DummyIRQ#179 as per cslr_intr_r5fss0.h it is a reserved interrupt not connected to any
186  * peripheral interrupt sources
187  */
188 Hwi.dummyIRQ                   = 179;
190 var Reset = xdc.useModule("xdc.runtime.Reset");
191 Reset.fxns[Reset.fxns.length++] = "&utilsCopyVecs2ATcm";
193 /*
194  * Initialize MPU and enable it
195  *
196  * Note: MPU must be enabled and properly configured for caching to work.
197  */
198 xdc.loadCapsule("r5_mpu.xs");
200 var Load = xdc.useModule('ti.sysbios.utils.Load');
202 /* load calculation related settings */
203 Load.swiEnabled   = true;
204 Load.hwiEnabled   = true;
205 Load.taskEnabled  = true;
206 Load.updateInIdle = false;
208 /* Check if application needs to update with custom configuration options */
209 /* Caution: This should be at the end of this file after all other common cfg */
210 var cfgUpdate = java.lang.System.getenv("XDC_CFG_UPDATE")
211 if ((cfgUpdate != '')&&(cfgUpdate != null))
213     xdc.print("Loading configuration update " + cfgUpdate);
214     xdc.loadCapsule(cfgUpdate);