configs: Pulled in the configs/omap54xx directory used by OMAP5 samples.
authorG Anthony <a0783926@ti.com>
Wed, 27 Feb 2013 03:02:55 +0000 (19:02 -0800)
committerG Anthony <a0783926@ti.com>
Wed, 27 Feb 2013 03:02:55 +0000 (19:02 -0800)
All the configuration for AMMU, MultiProc list, Idle functions are here.

Signed-off-by: G Anthony <a0783926@ti.com>
packages/ti/configs/omap54xx/Dsp.cfg [new file with mode: 0644]
packages/ti/configs/omap54xx/DspAmmu.cfg [new file with mode: 0644]
packages/ti/configs/omap54xx/IpcCommon.cfg.xs [new file with mode: 0644]
packages/ti/configs/omap54xx/IpuAmmu.cfg [new file with mode: 0644]
packages/ti/configs/omap54xx/IpuCore0.cfg [new file with mode: 0644]
packages/ti/configs/omap54xx/IpuCore1.cfg [new file with mode: 0644]
packages/ti/configs/omap54xx/IpuSmp.cfg [new file with mode: 0644]
packages/ti/configs/omap54xx/package.bld [new file with mode: 0644]
packages/ti/configs/omap54xx/package.xdc [new file with mode: 0644]

diff --git a/packages/ti/configs/omap54xx/Dsp.cfg b/packages/ti/configs/omap54xx/Dsp.cfg
new file mode 100644 (file)
index 0000000..66f25d0
--- /dev/null
@@ -0,0 +1,155 @@
+/*
+ * Copyright (c) 2012-2013, Texas Instruments Incorporated
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * *  Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *
+ * *  Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * *  Neither the name of Texas Instruments Incorporated nor the names of
+ *    its contributors may be used to endorse or promote products derived
+ *    from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/*
+ * The SysMin is used here instead of StdMin, as trace buffer address is
+ * required for Linux trace debug driver, plus provides better performance.
+ */
+var System      = xdc.useModule('xdc.runtime.System');
+var SysMin      = xdc.useModule('ti.trace.SysMin');
+System.SupportProxy = SysMin;
+SysMin.bufSize  = 0x8000;
+
+/* Define default memory heap properties */
+var Memory      = xdc.useModule('xdc.runtime.Memory');
+Memory.defaultHeapSize = 0x20000;
+
+/* Modules used in the virtqueue/MessageQCopy/ServiceMgr libraries: */
+var Semaphore   = xdc.useModule('ti.sysbios.knl.Semaphore');
+var BIOS        = xdc.useModule('ti.sysbios.BIOS');
+
+/* Reduces code size, by only pulling in modules explicitly referenced: */
+//BIOS.libType    = BIOS.LibType_Custom;
+
+/* Use LibType_Debug option for now to avoid linking error due to bug in BIOS */
+BIOS.libType    = BIOS.LibType_Debug;
+
+xdc.loadPackage('ti.ipc.rpmsg');
+xdc.loadPackage('ti.srvmgr');
+xdc.useModule('ti.srvmgr.omx.OmxSrvMgr');
+xdc.loadPackage('ti.resmgr');
+
+/* Enable Memory Translation module that operates on the BIOS Resource Table */
+var IpcMemory = xdc.useModule('ti.resources.IpcMemory');
+IpcMemory.loadSegment = "EXT_CODE"
+
+/* HwSpinlock Module */
+xdc.loadPackage('ti.gates.hwspinlock');
+
+/* Modules used in Power Management */
+xdc.loadPackage('ti.pm');
+var Power = xdc.useModule('ti.sysbios.family.c64p.tesla.Power');
+Power.loadSegment = "PM_DATA";
+
+/* Idle function that periodically flushes the unicache */
+var Idle = xdc.useModule('ti.sysbios.knl.Idle');
+
+Idle.addFunc('&ti_deh_Deh_idleBegin'); /* Must be placed before pwr mgmt */
+Idle.addFunc('&IpcPower_idle');        /* IpcPower_idle must be at the end */
+
+var HeapBuf   = xdc.useModule('ti.sysbios.heaps.HeapBuf');
+var List      = xdc.useModule('ti.sdo.utils.List');
+
+/* ti.grcm Configuration */
+var rcmSettings = xdc.useModule('ti.grcm.Settings');
+rcmSettings.ipc = rcmSettings.IpcSupport_ti_sdo_ipc;
+xdc.useModule('ti.grcm.RcmServer');
+xdc.useModule('ti.sysbios.xdcruntime.GateThreadSupport');
+var GateSwi   = xdc.useModule('ti.sysbios.gates.GateSwi');
+
+var Task          = xdc.useModule('ti.sysbios.knl.Task');
+Task.common$.namedInstance = true;
+
+var Assert = xdc.useModule('xdc.runtime.Assert');
+var Defaults = xdc.useModule('xdc.runtime.Defaults');
+var Diags = xdc.useModule('xdc.runtime.Diags');
+var LoggerSys = xdc.useModule('xdc.runtime.LoggerSys');
+var LoggerSysParams = new LoggerSys.Params();
+
+/* Enable Logger: */
+Defaults.common$.logger = LoggerSys.create(LoggerSysParams);
+
+/* Enable runtime Diags_setMask() for non-XDC spec'd modules: */
+var Text = xdc.useModule('xdc.runtime.Text');
+Text.isLoaded = true;
+var Registry = xdc.useModule('xdc.runtime.Registry');
+Registry.common$.diags_ENTRY = Diags.RUNTIME_OFF;
+Registry.common$.diags_EXIT  = Diags.RUNTIME_OFF;
+Registry.common$.diags_INFO  = Diags.RUNTIME_OFF;
+Registry.common$.diags_LIFECYCLE = Diags.RUNTIME_OFF;
+Registry.common$.diags_STATUS = Diags.RUNTIME_OFF;
+Diags.setMaskEnabled = true;
+
+var Main = xdc.useModule('xdc.runtime.Main');
+Main.common$.diags_ASSERT = Diags.ALWAYS_ON;
+Main.common$.diags_INTERNAL = Diags.ALWAYS_ON;
+
+var Hwi = xdc.useModule('ti.sysbios.family.c64p.Hwi');
+var Deh = xdc.useModule('ti.deh.Deh');
+Hwi.enableException = true;
+
+/* -------------------------------- DSP ----------------------------------*/
+var MultiProc = xdc.useModule('ti.sdo.utils.MultiProc');
+MultiProc.setConfig("DSP", ["HOST", "CORE0", "CORE1", "DSP"]);
+
+/* --------------------------- TICK --------------------------------------*/
+var Clock = xdc.useModule('ti.sysbios.knl.Clock');
+Clock.tickSource = Clock.TickSource_USER;
+/* Configure BIOS clock source as GPTimer5 */
+Clock.timerId = 0;
+
+var Timer = xdc.useModule('ti.sysbios.timers.dmtimer.Timer');
+
+/* Skip the Timer frequency verification check. Need to remove this later */
+Timer.checkFrequency = false;
+
+/* Match this to the SYS_CLK frequency sourcing the dmTimers.
+ * Not needed once the SYS/BIOS family settings is updated. */
+Timer.intFreq.hi = 0;
+Timer.intFreq.lo = 19200000;
+
+var timerParams = new Timer.Params();
+timerParams.period = Clock.tickPeriod;
+timerParams.periodType = Timer.PeriodType_MICROSECS;
+/* Switch off Software Reset to make the below settings effective */
+timerParams.tiocpCfg.softreset = 0x0;
+/* Smart-idle wake-up-capable mode */
+timerParams.tiocpCfg.idlemode = 0x3;
+/* Wake-up generation for Overflow */
+timerParams.twer.ovf_wup_ena = 0x1;
+Timer.create(Clock.timerId, Clock.doTick, timerParams);
+
+Program.sectMap[".tracebuf"] = "TRACE_BUF";
+Program.sectMap[".errorbuf"] = "EXC_DATA";
+
+/* Version module */
+xdc.useModule('ti.utils.Version');
diff --git a/packages/ti/configs/omap54xx/DspAmmu.cfg b/packages/ti/configs/omap54xx/DspAmmu.cfg
new file mode 100644 (file)
index 0000000..cac4038
--- /dev/null
@@ -0,0 +1,238 @@
+/*
+ * Copyright (c) 2012-2013, Texas Instruments Incorporated
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * *  Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *
+ * *  Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * *  Neither the name of Texas Instruments Incorporated nor the names of
+ *    its contributors may be used to endorse or promote products derived
+ *    from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/*
+ *  ======== DspAmmu.cfg ========
+ *
+ *  An example configuration script used by DSP sample applications.
+ */
+
+/* -------------------------------- Cache ----------------------------------*/
+var Cache = xdc.useModule('ti.sysbios.hal.unicache.Cache');
+Cache.enableCache = true;
+
+if (Cache.enableCache) {
+    Cache.ocpL1.wrap = 1;
+    Cache.ocpL1.wrbuffer = 1;
+    Cache.ocpL1.prefetch = 0;
+
+    Cache.ocpL2.wrap = 1;
+    Cache.ocpL2.wrbuffer = 1;
+    Cache.ocpL2.prefetch = 0;
+
+    print("DSP Unicache = ON");
+}
+else {
+    print("DSP Unicache = OFF");
+}
+
+/* -------------------------------- AMMU -----------------------------------*/
+var AMMU = xdc.useModule('ti.sysbios.hal.ammu.AMMU');
+
+/*********************** Small Pages *************************/
+/* Work-around for bug in BIOS 6.33.06.50 */
+AMMU.smallPages[1].pageEnabled = AMMU.Enable_YES;
+AMMU.smallPages[1].logicalAddress = 0x01c30000;
+AMMU.smallPages[1].translationEnabled = AMMU.Enable_NO;
+AMMU.smallPages[1].size = AMMU.Small_4K;
+AMMU.smallPages[1].L1_cacheable = AMMU.CachePolicy_NON_CACHEABLE;
+AMMU.smallPages[1].L2_cacheable = AMMU.CachePolicy_NON_CACHEABLE;
+
+/*********************** Medium Pages *************************/
+/* config medium page[0] to map 1MB VA 0x01d00000 to 0x01dFFFFF */
+/* ABE NC region */
+AMMU.mediumPages[0].pageEnabled = AMMU.Enable_YES;
+AMMU.mediumPages[0].logicalAddress = 0x01d00000;
+AMMU.mediumPages[0].size = AMMU.Medium_1M;
+AMMU.mediumPages[0].L1_cacheable = AMMU.CachePolicy_NON_CACHEABLE;
+AMMU.mediumPages[0].L1_posted = AMMU.PostedPolicy_NON_POSTED;
+AMMU.mediumPages[0].L1_allocate = AMMU.AllocatePolicy_NON_ALLOCATE;
+AMMU.mediumPages[0].L1_writePolicy = AMMU.WritePolicy_WRITE_THROUGH;
+AMMU.mediumPages[0].L2_cacheable = AMMU.CachePolicy_NON_CACHEABLE;
+AMMU.mediumPages[0].L2_posted = AMMU.PostedPolicy_NON_POSTED;
+AMMU.mediumPages[0].L2_allocate = AMMU.AllocatePolicy_NON_ALLOCATE;
+AMMU.mediumPages[0].L2_writePolicy = AMMU.WritePolicy_WRITE_THROUGH;
+
+/* config medium page[1] to map 1MB VA 0x01e00000 to 0x01eFFFFF */
+/* IVA-HD (accelerator memories, NC region) */
+AMMU.mediumPages[1].pageEnabled = AMMU.Enable_YES;
+AMMU.mediumPages[1].logicalAddress = 0x01e00000;
+AMMU.mediumPages[1].size = AMMU.Medium_1M;
+AMMU.mediumPages[1].L1_cacheable = AMMU.CachePolicy_NON_CACHEABLE;
+AMMU.mediumPages[1].L1_posted = AMMU.PostedPolicy_NON_POSTED;
+AMMU.mediumPages[1].L1_allocate = AMMU.AllocatePolicy_NON_ALLOCATE;
+AMMU.mediumPages[1].L1_writePolicy = AMMU.WritePolicy_WRITE_BACK;
+AMMU.mediumPages[1].L2_cacheable = AMMU.CachePolicy_NON_CACHEABLE;
+AMMU.mediumPages[1].L2_posted = AMMU.PostedPolicy_NON_POSTED;
+AMMU.mediumPages[1].L2_allocate = AMMU.AllocatePolicy_NON_ALLOCATE;
+AMMU.mediumPages[1].L2_writePolicy = AMMU.WritePolicy_WRITE_BACK;
+
+/* config medium page[2] to map 128kB VA 0x10800000 to 0x1081FFFF */
+/* SL2->L1 */
+AMMU.mediumPages[2].pageEnabled = AMMU.Enable_YES;
+AMMU.mediumPages[2].logicalAddress = 0x10800000;
+AMMU.mediumPages[2].size = AMMU.Medium_128K;
+AMMU.mediumPages[2].L1_cacheable = AMMU.CachePolicy_CACHEABLE;
+AMMU.mediumPages[2].L1_posted = AMMU.PostedPolicy_POSTED;
+AMMU.mediumPages[3].L2_allocate = AMMU.AllocatePolicy_ALLOCATE;
+AMMU.mediumPages[2].L1_writePolicy = AMMU.WritePolicy_WRITE_BACK;
+AMMU.mediumPages[2].L2_cacheable = AMMU.CachePolicy_CACHEABLE;
+AMMU.mediumPages[2].L2_posted = AMMU.PostedPolicy_POSTED;
+AMMU.mediumPages[2].L2_allocate = AMMU.AllocatePolicy_ALLOCATE;
+AMMU.mediumPages[2].L2_writePolicy = AMMU.WritePolicy_WRITE_BACK;
+
+/* config medium page[3] to map 128kB VA 0x10820000 to 0x1083FFFF  */
+/* SL2->L2 */
+AMMU.mediumPages[3].pageEnabled = AMMU.Enable_YES;
+AMMU.mediumPages[3].logicalAddress = 0x10820000;
+AMMU.mediumPages[3].size = AMMU.Medium_128K;
+AMMU.mediumPages[3].L1_cacheable = AMMU.CachePolicy_CACHEABLE;
+AMMU.mediumPages[3].L1_posted = AMMU.PostedPolicy_POSTED;
+AMMU.mediumPages[3].L1_allocate = AMMU.AllocatePolicy_ALLOCATE;
+AMMU.mediumPages[3].L1_writePolicy = AMMU.WritePolicy_WRITE_BACK;
+AMMU.mediumPages[3].L2_cacheable = AMMU.CachePolicy_CACHEABLE;
+AMMU.mediumPages[3].L2_posted = AMMU.PostedPolicy_POSTED;
+AMMU.mediumPages[3].L2_allocate = AMMU.AllocatePolicy_ALLOCATE;
+AMMU.mediumPages[3].L2_writePolicy = AMMU.WritePolicy_WRITE_BACK;
+
+/* config medium page[4] to map 1MB VA 0x10900000 to 0x109FFFFF */
+/* SL2 Locked Region */
+AMMU.mediumPages[4].pageEnabled = AMMU.Enable_YES;
+AMMU.mediumPages[4].logicalAddress = 0x10900000;
+AMMU.mediumPages[4].size = AMMU.Medium_1M;
+AMMU.mediumPages[4].L1_cacheable = AMMU.CachePolicy_CACHEABLE;
+AMMU.mediumPages[4].L1_posted = AMMU.PostedPolicy_POSTED;
+AMMU.mediumPages[4].L1_allocate = AMMU.AllocatePolicy_ALLOCATE;
+AMMU.mediumPages[4].L1_writePolicy = AMMU.WritePolicy_WRITE_THROUGH;
+AMMU.mediumPages[4].L2_cacheable = AMMU.CachePolicy_CACHEABLE;
+AMMU.mediumPages[4].L2_posted = AMMU.PostedPolicy_POSTED;
+AMMU.mediumPages[4].L2_allocate = AMMU.AllocatePolicy_ALLOCATE;
+AMMU.mediumPages[4].L2_writePolicy = AMMU.WritePolicy_WRITE_BACK;
+
+/* config medium page[5] to map 1MB VA 0x10d00000 to 0x10dFFFFF */
+/* ABE */
+AMMU.mediumPages[5].pageEnabled = AMMU.Enable_YES;
+AMMU.mediumPages[5].logicalAddress = 0x10d00000;
+AMMU.mediumPages[5].size = AMMU.Medium_1M;
+AMMU.mediumPages[5].L1_cacheable = AMMU.CachePolicy_CACHEABLE;
+AMMU.mediumPages[5].L1_posted = AMMU.PostedPolicy_POSTED;
+AMMU.mediumPages[5].L1_allocate = AMMU.AllocatePolicy_ALLOCATE;
+AMMU.mediumPages[5].L1_writePolicy = AMMU.WritePolicy_WRITE_BACK;
+AMMU.mediumPages[5].L2_cacheable = AMMU.CachePolicy_CACHEABLE;
+AMMU.mediumPages[5].L2_posted = AMMU.PostedPolicy_POSTED;
+AMMU.mediumPages[5].L2_allocate = AMMU.AllocatePolicy_ALLOCATE;
+AMMU.mediumPages[5].L2_writePolicy = AMMU.WritePolicy_WRITE_BACK;
+
+/* config medium page[6] to map 1MB VA 0x10e00000 to 0x10eFFFFF */
+/* ABE Locked Region */
+AMMU.mediumPages[6].pageEnabled = AMMU.Enable_YES;
+AMMU.mediumPages[6].logicalAddress = 0x10e00000;
+AMMU.mediumPages[6].size = AMMU.Medium_1M;
+AMMU.mediumPages[6].L1_cacheable = AMMU.CachePolicy_NON_CACHEABLE;
+AMMU.mediumPages[6].L1_posted = AMMU.PostedPolicy_NON_POSTED;
+AMMU.mediumPages[6].L1_allocate = AMMU.AllocatePolicy_NON_ALLOCATE;
+AMMU.mediumPages[6].L1_writePolicy = AMMU.WritePolicy_WRITE_THROUGH;
+AMMU.mediumPages[6].L2_cacheable = AMMU.CachePolicy_NON_CACHEABLE;
+AMMU.mediumPages[6].L2_posted = AMMU.PostedPolicy_NON_POSTED;
+AMMU.mediumPages[6].L2_allocate = AMMU.AllocatePolicy_NON_ALLOCATE;
+AMMU.mediumPages[6].L2_writePolicy = AMMU.WritePolicy_WRITE_THROUGH;
+
+/*********************** Large Pages *************************/
+/* Instruction Code: Large page  (512M); cacheable, posted */
+/* config large page[0] to map 512MB VA 0x20000000 to L3 0x3FFFFFFF */
+AMMU.largePages[0].pageEnabled = AMMU.Enable_YES;
+AMMU.largePages[0].logicalAddress = 0x20000000;
+AMMU.largePages[0].size = AMMU.Large_512M;
+AMMU.largePages[0].L1_cacheable = AMMU.CachePolicy_CACHEABLE;
+AMMU.largePages[0].L1_posted = AMMU.PostedPolicy_POSTED;
+AMMU.largePages[0].L1_allocate = AMMU.AllocatePolicy_ALLOCATE;
+AMMU.largePages[0].L1_writePolicy = AMMU.WritePolicy_WRITE_THROUGH;
+AMMU.largePages[0].L2_cacheable = AMMU.CachePolicy_CACHEABLE;
+AMMU.largePages[0].L2_posted = AMMU.PostedPolicy_POSTED;
+AMMU.largePages[0].L2_allocate = AMMU.AllocatePolicy_ALLOCATE;
+AMMU.largePages[0].L2_writePolicy = AMMU.WritePolicy_WRITE_THROUGH;
+
+/* Peripheral regions: Large Page (512M); non-cacheable, posted */
+/* config large page[1] to map 512MB VA 0x40000000 to L3 0x5FFFFFFF */
+AMMU.largePages[1].pageEnabled = AMMU.Enable_YES;
+AMMU.largePages[1].logicalAddress = 0x40000000;
+AMMU.largePages[1].size = AMMU.Large_512M;
+AMMU.largePages[1].L1_cacheable = AMMU.CachePolicy_NON_CACHEABLE;
+AMMU.largePages[1].L1_posted = AMMU.PostedPolicy_POSTED;
+AMMU.largePages[1].L1_allocate = AMMU.AllocatePolicy_ALLOCATE;
+AMMU.largePages[1].L1_writePolicy = AMMU.WritePolicy_WRITE_THROUGH;
+AMMU.largePages[1].L2_cacheable = AMMU.CachePolicy_NON_CACHEABLE;
+AMMU.largePages[1].L2_posted = AMMU.PostedPolicy_POSTED;
+AMMU.largePages[1].L2_allocate = AMMU.AllocatePolicy_ALLOCATE;
+AMMU.largePages[1].L2_writePolicy = AMMU.WritePolicy_WRITE_THROUGH;
+
+/* TILER region: Large Page (512M); cacheable, posted */
+/* config large page[2] to map 512MB VA 0x60000000 to L3 0x7FFFFFFF */
+AMMU.largePages[2].pageEnabled = AMMU.Enable_YES;
+AMMU.largePages[2].logicalAddress = 0x60000000;
+AMMU.largePages[2].size = AMMU.Large_512M;
+AMMU.largePages[2].L1_cacheable = AMMU.CachePolicy_CACHEABLE;
+AMMU.largePages[2].L1_posted = AMMU.PostedPolicy_POSTED;
+AMMU.largePages[2].L1_allocate = AMMU.AllocatePolicy_ALLOCATE;
+AMMU.largePages[2].L1_writePolicy = AMMU.WritePolicy_WRITE_THROUGH;
+AMMU.largePages[2].L2_cacheable = AMMU.CachePolicy_CACHEABLE;
+AMMU.largePages[2].L2_posted = AMMU.PostedPolicy_POSTED;
+AMMU.largePages[2].L2_allocate = AMMU.AllocatePolicy_ALLOCATE;
+AMMU.largePages[2].L2_writePolicy = AMMU.WritePolicy_WRITE_THROUGH;
+
+/* Private and Heap Data regions: Large page (512M); cacheable, posted */
+/* config large page[2] to map 512MB VA 0x80000000 to L3 0x9FFFFFFF */
+AMMU.largePages[3].pageEnabled = AMMU.Enable_YES;
+AMMU.largePages[3].logicalAddress = 0x80000000;
+AMMU.largePages[3].size = AMMU.Large_512M;
+AMMU.largePages[3].L1_cacheable = AMMU.CachePolicy_CACHEABLE;
+AMMU.largePages[3].L1_posted = AMMU.PostedPolicy_POSTED;
+AMMU.largePages[3].L1_allocate = AMMU.AllocatePolicy_ALLOCATE;
+AMMU.largePages[3].L1_writePolicy = AMMU.WritePolicy_WRITE_THROUGH;
+AMMU.largePages[3].L2_cacheable = AMMU.CachePolicy_CACHEABLE;
+AMMU.largePages[3].L2_posted = AMMU.PostedPolicy_POSTED;
+AMMU.largePages[3].L2_allocate = AMMU.AllocatePolicy_ALLOCATE;
+AMMU.largePages[3].L2_writePolicy = AMMU.WritePolicy_WRITE_THROUGH;
+
+/* IPC region: Large Page (512M); non-cacheable, posted */
+/* config large page[3] to map 512MB VA 0xA0000000 to L3 0xBFFFFFFF */
+AMMU.largePages[4].pageEnabled = AMMU.Enable_YES;
+AMMU.largePages[4].logicalAddress = 0xA0000000;
+AMMU.largePages[4].size = AMMU.Large_512M;
+AMMU.largePages[4].L1_cacheable = AMMU.CachePolicy_NON_CACHEABLE;
+AMMU.largePages[4].L1_posted = AMMU.PostedPolicy_POSTED;
+AMMU.largePages[4].L1_allocate = AMMU.AllocatePolicy_ALLOCATE;
+AMMU.largePages[4].L1_writePolicy = AMMU.WritePolicy_WRITE_THROUGH;
+AMMU.largePages[4].L2_cacheable = AMMU.CachePolicy_NON_CACHEABLE;
+AMMU.largePages[4].L2_posted = AMMU.PostedPolicy_POSTED;
+AMMU.largePages[4].L2_allocate = AMMU.AllocatePolicy_ALLOCATE;
+AMMU.largePages[4].L2_writePolicy = AMMU.WritePolicy_WRITE_THROUGH;
diff --git a/packages/ti/configs/omap54xx/IpcCommon.cfg.xs b/packages/ti/configs/omap54xx/IpcCommon.cfg.xs
new file mode 100644 (file)
index 0000000..65ef0ef
--- /dev/null
@@ -0,0 +1,132 @@
+/*
+ * Copyright (c) 2012-2013, Texas Instruments Incorporated
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * *  Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *
+ * *  Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * *  Neither the name of Texas Instruments Incorporated nor the names of
+ *    its contributors may be used to endorse or promote products derived
+ *    from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/*
+ *  The SysMin used here vs StdMin, as trace buffer address is required for
+ *  Linux trace debug driver, plus provides better performance.
+ */
+var System      = xdc.useModule('xdc.runtime.System');
+var SysMin      = xdc.useModule('ti.trace.SysMin');
+System.SupportProxy = SysMin;
+SysMin.bufSize  = 0x8000;
+
+/* Define default memory heap properties */
+var Memory      = xdc.useModule('xdc.runtime.Memory');
+Memory.defaultHeapSize = 0x20000;
+
+/* Modules used in the virtqueue/MessageQCopy/ServiceMgr libraries: */
+var Semaphore   = xdc.useModule('ti.sysbios.knl.Semaphore');
+var BIOS        = xdc.useModule('ti.sysbios.BIOS');
+
+/* Reduces code size, by only pulling in modules explicitly referenced: */
+BIOS.libType    = BIOS.LibType_Custom;
+
+xdc.loadPackage('ti.ipc.rpmsg');
+xdc.loadPackage('ti.srvmgr');
+xdc.useModule('ti.srvmgr.omx.OmxSrvMgr');
+xdc.loadPackage('ti.resmgr');
+
+/* Enable Memory Translation module that operates on the BIOS Resource Table */
+var IpcMemory = xdc.useModule('ti.resources.IpcMemory');
+
+/* HwSpinlock Module */
+xdc.loadPackage('ti.gates.hwspinlock');
+
+var HeapBuf   = xdc.useModule('ti.sysbios.heaps.HeapBuf');
+var List      = xdc.useModule('ti.sdo.utils.List');
+
+/* ti.grcm Configuration */
+var rcmSettings = xdc.useModule('ti.grcm.Settings');
+rcmSettings.ipc = rcmSettings.IpcSupport_ti_sdo_ipc;
+xdc.useModule('ti.grcm.RcmServer');
+xdc.useModule('ti.sysbios.xdcruntime.GateThreadSupport');
+var GateSwi   = xdc.useModule('ti.sysbios.gates.GateSwi');
+
+var Task          = xdc.useModule('ti.sysbios.knl.Task');
+Task.common$.namedInstance = true;
+
+var Assert = xdc.useModule('xdc.runtime.Assert');
+var Defaults = xdc.useModule('xdc.runtime.Defaults');
+var Diags = xdc.useModule('xdc.runtime.Diags');
+var LoggerSys = xdc.useModule('xdc.runtime.LoggerSys');
+var LoggerSysParams = new LoggerSys.Params();
+
+/* Enable Logger: */
+Defaults.common$.logger = LoggerSys.create(LoggerSysParams);
+
+/* Enable runtime Diags_setMask() for non-XDC spec'd modules: */
+var Text = xdc.useModule('xdc.runtime.Text');
+Text.isLoaded = true;
+var Registry = xdc.useModule('xdc.runtime.Registry');
+Registry.common$.diags_ENTRY = Diags.RUNTIME_OFF;
+Registry.common$.diags_EXIT  = Diags.RUNTIME_OFF;
+Registry.common$.diags_INFO  = Diags.RUNTIME_OFF;
+Registry.common$.diags_LIFECYCLE = Diags.RUNTIME_OFF;
+Registry.common$.diags_STATUS = Diags.RUNTIME_OFF;
+Diags.setMaskEnabled = true;
+
+var Main = xdc.useModule('xdc.runtime.Main');
+Main.common$.diags_ASSERT = Diags.ALWAYS_ON;
+Main.common$.diags_INTERNAL = Diags.ALWAYS_ON;
+
+var Hwi = xdc.useModule('ti.sysbios.family.arm.m3.Hwi');
+var Deh = xdc.useModule('ti.deh.Deh');
+Hwi.enableException = true;
+Hwi.nvicCCR.DIV_0_TRP = 1;
+
+/* Include stack debug helper */
+var StackDbg = xdc.useModule('ti.trace.StackDbg');
+
+var dmTimer = xdc.useModule('ti.sysbios.timers.dmtimer.Timer');
+/* dmTimer 0 mapped to GPT3 */
+dmTimer.timerSettings[0].baseAddr = 0xA8034000;
+/* dmTimer 1 mapped to GPT4 */
+dmTimer.timerSettings[1].baseAddr = 0xA8036000;
+/* dmTimer 2 mapped to GPT9 */
+dmTimer.timerSettings[2].baseAddr = 0xA803E000;
+/* dmTimer 3 mapped to GPT11 */
+dmTimer.timerSettings[3].baseAddr = 0xA8088000;
+
+/* Skip the Timer frequency verification check. Need to remove this later */
+dmTimer.checkFrequency = false;
+
+/* Match this to the SYS_CLK frequency sourcing the dmTimers.
+ * Not needed once the SYS/BIOS family settings is updated. */
+dmTimer.intFreq.hi = 0;
+dmTimer.intFreq.lo = 19200000;
+
+/* Override the internal sysTick timer with dmTimer for Bios Timer */
+var halTimer = xdc.useModule('ti.sysbios.hal.Timer');
+halTimer.TimerProxy = dmTimer;
+
+/* Version module */
+xdc.useModule('ti.utils.Version');
diff --git a/packages/ti/configs/omap54xx/IpuAmmu.cfg b/packages/ti/configs/omap54xx/IpuAmmu.cfg
new file mode 100644 (file)
index 0000000..c753c4c
--- /dev/null
@@ -0,0 +1,176 @@
+/*
+ * Copyright (c) 2012-2013, Texas Instruments Incorporated
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * *  Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *
+ * *  Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * *  Neither the name of Texas Instruments Incorporated nor the names of
+ *    its contributors may be used to endorse or promote products derived
+ *    from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/* -------------------------------- Cache ----------------------------------*/
+var Cache = xdc.useModule('ti.sysbios.hal.unicache.Cache');
+Cache.enableCache = true;
+
+/* -------------------------------- AMMU -----------------------------------*/
+var AMMU = xdc.useModule('ti.sysbios.hal.ammu.AMMU');
+/*********************** Small Pages *************************/
+/* smallPages[0] & smallPages[1] are auto-programmed by h/w */
+
+/* Overwrite smallPage[1] so that 16K is covered. H/w reset value configures
+ * only 4K */
+AMMU.smallPages[1].pageEnabled = AMMU.Enable_YES;
+AMMU.smallPages[1].logicalAddress = 0x40000000;
+AMMU.smallPages[1].translatedAddress = 0x55080000;
+AMMU.smallPages[1].translationEnabled = AMMU.Enable_YES;
+AMMU.smallPages[1].size = AMMU.Small_16K;
+
+/* L2RAM: 64K mapped using 4 smallPages(16K); cacheable; translated */
+/* config small page[2] to map 16K VA 0x20000000 to PA 0x55020000  */
+AMMU.smallPages[2].pageEnabled = AMMU.Enable_YES;
+AMMU.smallPages[2].logicalAddress = 0x20000000;
+AMMU.smallPages[2].translatedAddress = 0x55020000;
+AMMU.smallPages[2].translationEnabled = AMMU.Enable_YES;
+AMMU.smallPages[2].L1_writePolicy = AMMU.WritePolicy_WRITE_BACK;
+AMMU.smallPages[2].L1_allocate = AMMU.AllocatePolicy_ALLOCATE;
+AMMU.smallPages[2].L1_posted = AMMU.PostedPolicy_POSTED;
+AMMU.smallPages[2].L1_cacheable = AMMU.CachePolicy_CACHEABLE;
+AMMU.smallPages[2].size = AMMU.Small_16K;
+
+/* config small page[3] to map 16K VA 0x20004000 to PA 0x55024000 */
+AMMU.smallPages[3].pageEnabled = AMMU.Enable_YES;
+AMMU.smallPages[3].logicalAddress = 0x20004000;
+AMMU.smallPages[3].translatedAddress = 0x55024000;
+AMMU.smallPages[3].translationEnabled = AMMU.Enable_YES;
+AMMU.smallPages[3].L1_writePolicy = AMMU.WritePolicy_WRITE_BACK;
+AMMU.smallPages[3].L1_allocate = AMMU.AllocatePolicy_ALLOCATE;
+AMMU.smallPages[3].L1_posted = AMMU.PostedPolicy_POSTED;
+AMMU.smallPages[3].L1_cacheable = AMMU.CachePolicy_CACHEABLE;
+AMMU.smallPages[3].size = AMMU.Small_16K;
+
+/* config small page[4] to map 16K VA 0x20008000 to PA 0x55028000 */
+AMMU.smallPages[4].pageEnabled = AMMU.Enable_YES;
+AMMU.smallPages[4].logicalAddress = 0x20008000;
+AMMU.smallPages[4].translatedAddress = 0x55028000;
+AMMU.smallPages[4].translationEnabled = AMMU.Enable_YES;
+AMMU.smallPages[4].L1_writePolicy = AMMU.WritePolicy_WRITE_BACK;
+AMMU.smallPages[4].L1_allocate = AMMU.AllocatePolicy_ALLOCATE;
+AMMU.smallPages[4].L1_posted = AMMU.PostedPolicy_POSTED;
+AMMU.smallPages[4].L1_cacheable = AMMU.CachePolicy_CACHEABLE;
+AMMU.smallPages[4].size = AMMU.Small_16K;
+
+/* config small page[5] to map 16K VA 0x2000C000 to PA 0x5502C000 */
+AMMU.smallPages[5].pageEnabled = AMMU.Enable_YES;
+AMMU.smallPages[5].logicalAddress = 0x2000C000;
+AMMU.smallPages[5].translatedAddress = 0x5502C000;
+AMMU.smallPages[5].translationEnabled = AMMU.Enable_YES;
+AMMU.smallPages[5].L1_writePolicy = AMMU.WritePolicy_WRITE_BACK;
+AMMU.smallPages[5].L1_allocate = AMMU.AllocatePolicy_ALLOCATE;
+AMMU.smallPages[5].L1_posted = AMMU.PostedPolicy_POSTED;
+AMMU.smallPages[5].L1_cacheable = AMMU.CachePolicy_CACHEABLE;
+AMMU.smallPages[5].size = AMMU.Small_16K;
+
+/* ISS: Use 4 small pages(3 4K and 1 16K) for various ISP registers; non-cacheable; translated */
+/* config small page[6] to map 16K VA 0x50000000 to PA 0x55040000 */
+/* non cacheable by default */
+AMMU.smallPages[6].pageEnabled = AMMU.Enable_YES;
+AMMU.smallPages[6].logicalAddress = 0x50000000;
+AMMU.smallPages[6].translatedAddress = 0x55040000;
+AMMU.smallPages[6].translationEnabled = AMMU.Enable_YES;
+AMMU.smallPages[6].size = AMMU.Small_16K;
+
+/* config small page[7] to map 4K VA 0x50010000 to PA 0x55050000 */
+/* non cacheable by default */
+AMMU.smallPages[7].pageEnabled = AMMU.Enable_YES;
+AMMU.smallPages[7].logicalAddress = 0x50010000;
+AMMU.smallPages[7].translatedAddress = 0x55050000;
+AMMU.smallPages[7].translationEnabled = AMMU.Enable_YES;
+AMMU.smallPages[7].size = AMMU.Small_4K;
+
+/* config small page[8] to map 4K VA 0x50011000 to PA 0x55051000 */
+/* non cacheable by default */
+AMMU.smallPages[8].pageEnabled = AMMU.Enable_YES;
+AMMU.smallPages[8].logicalAddress = 0x50011000;
+AMMU.smallPages[8].translatedAddress = 0x55051000;
+AMMU.smallPages[8].translationEnabled = AMMU.Enable_YES;
+AMMU.smallPages[8].size = AMMU.Small_4K;
+
+/* config small page[9] to map 4K VA 0x50020000 to PA 0x55060000 */
+/* non cacheable by default */
+AMMU.smallPages[9].pageEnabled = AMMU.Enable_YES;
+AMMU.smallPages[9].logicalAddress = 0x50020000;
+AMMU.smallPages[9].translatedAddress = 0x55060000;
+AMMU.smallPages[9].translationEnabled = AMMU.Enable_YES;
+AMMU.smallPages[9].size = AMMU.Small_4K;
+
+
+/*********************** Medium Pages *************************/
+/* ISS: The entire ISS register space using a medium page (256K); cacheable; translated */
+/* config medium page[0] to map 256K VA 0x50000000 to PA 0x55040000 */
+/* Make it L1 cacheable */
+AMMU.mediumPages[0].pageEnabled = AMMU.Enable_YES;
+AMMU.mediumPages[0].logicalAddress = 0x50000000;
+AMMU.mediumPages[0].translatedAddress = 0x55040000;
+AMMU.mediumPages[0].translationEnabled = AMMU.Enable_YES;
+AMMU.mediumPages[0].size = AMMU.Medium_256K;
+AMMU.mediumPages[0].L1_cacheable = AMMU.CachePolicy_CACHEABLE;
+AMMU.mediumPages[0].L1_posted = AMMU.PostedPolicy_POSTED;
+
+
+/*********************** Large Pages *************************/
+/* Instruction Code: Large page  (512M); cacheable */
+/* config large page[0] to map 512MB VA 0x0 to L3 0x0 */
+AMMU.largePages[0].pageEnabled = AMMU.Enable_YES;
+AMMU.largePages[0].logicalAddress = 0x0;
+AMMU.largePages[0].translationEnabled = AMMU.Enable_NO;
+AMMU.largePages[0].size = AMMU.Large_512M;
+AMMU.largePages[0].L1_cacheable = AMMU.CachePolicy_CACHEABLE;
+AMMU.largePages[0].L1_posted = AMMU.PostedPolicy_POSTED;
+
+/* TILER & DMM regions: Large page (512M); cacheable */
+/* config large page[1] to map 512MB VA 0x60000000 to L3 0x60000000 */
+AMMU.largePages[1].pageEnabled = AMMU.Enable_YES;
+AMMU.largePages[1].logicalAddress = 0x60000000;
+AMMU.largePages[1].translationEnabled = AMMU.Enable_NO;
+AMMU.largePages[1].size = AMMU.Large_512M;
+AMMU.largePages[1].L1_cacheable = AMMU.CachePolicy_CACHEABLE;
+AMMU.largePages[1].L1_posted = AMMU.PostedPolicy_POSTED;
+
+/* Private, Shared and IPC Data regions: Large page (512M); cacheable */
+/* config large page[2] to map 512MB VA 0x80000000 to L3 0x80000000 */
+AMMU.largePages[2].pageEnabled = AMMU.Enable_YES;
+AMMU.largePages[2].logicalAddress = 0x80000000;
+AMMU.largePages[2].translationEnabled = AMMU.Enable_NO;
+AMMU.largePages[2].size = AMMU.Large_512M;
+AMMU.largePages[2].L1_cacheable = AMMU.CachePolicy_CACHEABLE;
+AMMU.largePages[2].L1_posted = AMMU.PostedPolicy_POSTED;
+
+/* Peripheral regions: Large Page (512M); non-cacheable, non-posted */
+/* config large page[3] to map 512MB VA 0xA0000000 to L3 0xA0000000 */
+AMMU.largePages[3].pageEnabled = AMMU.Enable_YES;
+AMMU.largePages[3].logicalAddress = 0xA0000000;
+AMMU.largePages[3].translationEnabled = AMMU.Enable_NO;
+AMMU.largePages[3].size = AMMU.Large_512M;
+AMMU.largePages[3].L1_cacheable = AMMU.CachePolicy_NON_CACHEABLE;
diff --git a/packages/ti/configs/omap54xx/IpuCore0.cfg b/packages/ti/configs/omap54xx/IpuCore0.cfg
new file mode 100644 (file)
index 0000000..242e992
--- /dev/null
@@ -0,0 +1,92 @@
+/*
+ * Copyright (c) 2012-2013, Texas Instruments Incorporated
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * *  Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *
+ * *  Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * *  Neither the name of Texas Instruments Incorporated nor the names of
+ *    its contributors may be used to endorse or promote products derived
+ *    from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/* -------------------------------- CORE0 ----------------------------------*/
+var MultiProc = xdc.useModule('ti.sdo.utils.MultiProc');
+MultiProc.setConfig("CORE0", ["HOST", "CORE0", "CORE1", "DSP"]);
+
+/* Required to run BIOS on SysM3 (core 0) */
+var Core = xdc.useModule('ti.sysbios.family.arm.ducati.Core');
+Core.id = 0;
+
+/* ----------------------------- TICK ---------------------------------------*/
+var Clock = xdc.useModule('ti.sysbios.knl.Clock');
+Clock.tickSource = Clock.TickSource_USER;
+/* Configure GPTimer3 as BIOS clock source */
+Clock.timerId = 0;
+
+var Timer = xdc.useModule('ti.sysbios.timers.dmtimer.Timer');
+var timerParams = new Timer.Params();
+timerParams.period = Clock.tickPeriod;
+timerParams.periodType = Timer.PeriodType_MICROSECS;
+/* Smart-idle wake-up-capable mode */
+timerParams.tiocpCfg.idlemode = 0x3;
+/* Wake-up generation for Overflow */
+timerParams.twer.ovf_wup_ena = 0x1;
+Timer.create(Clock.timerId, Clock.doTick, timerParams);
+
+/* Modules used in Power Management */
+xdc.loadPackage('ti.pm');
+var Power = xdc.useModule('ti.sysbios.family.arm.ducati.omap4430.Power');
+Power.loadSegment = "PM_DATA";
+
+/* Idle functions - PM functions should be last */
+var Idle = xdc.useModule('ti.sysbios.knl.Idle');
+Idle.addFunc('&VirtQueue_cacheWb');    /* Function to flush unicache in idle */
+Idle.addFunc('&ti_deh_Deh_idleBegin'); /* Watchdog detect idle function */
+Idle.addFunc('&IpcPower_idle');        /* IpcPower_idle must be at the end */
+
+/*
+ * These lines coerce BIOS into creating a unique interrupt vector table for
+ * each core. Core 0's interrupt vector table is placed at 0x400, Core 1's
+ * is placed at 0x800.
+ *
+ * Additionally, because both sections (.vecs AND .resetVecs) are placed at
+ * the same address, BIOS will NOT generate a vector table that gets placed
+ * at location 0.
+ *
+ * A common vector table that gets placed at address 0 is being inserted into
+ * the load image by the script that combines the two M3 programs into a
+ * single load image.
+ */
+Program.sectMap[".resetVecs"].loadAddress = (Core.id + 1) * 0x400;
+Program.sectMap[".vecs"].loadAddress      = (Core.id + 1) * 0x400;
+
+Program.sectMap[".tracebuf"] = "TRACE_BUF";
+Program.sectMap[".errorbuf"] = "EXC_DATA";
+
+/*
+ * Add support for offloading algorithms.
+ * The section is placed at an unused address in the common segment.
+ */
+Program.sectMap[".interm3offload"] = new Program.SectionSpec();
+Program.sectMap[".interm3offload"].loadAddress = 0x2000;
diff --git a/packages/ti/configs/omap54xx/IpuCore1.cfg b/packages/ti/configs/omap54xx/IpuCore1.cfg
new file mode 100644 (file)
index 0000000..77a1f11
--- /dev/null
@@ -0,0 +1,92 @@
+/*
+ * Copyright (c) 2012-2013, Texas Instruments Incorporated
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * *  Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *
+ * *  Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * *  Neither the name of Texas Instruments Incorporated nor the names of
+ *    its contributors may be used to endorse or promote products derived
+ *    from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/* -------------------------------- CORE1 ----------------------------------*/
+var MultiProc = xdc.useModule('ti.sdo.utils.MultiProc');
+MultiProc.setConfig("CORE1", ["HOST", "CORE0", "CORE1", "DSP"]);
+
+/* Required to run BIOS on AppM3 (core 1) */
+var Core = xdc.useModule('ti.sysbios.family.arm.ducati.Core');
+Core.id = 1;
+
+/* ----------------------------- TICK ---------------------------------------*/
+var Clock = xdc.useModule('ti.sysbios.knl.Clock');
+Clock.tickSource = Clock.TickSource_USER;
+/* Configure GPTimer4 as BIOS clock source */
+Clock.timerId = 1;
+
+var Timer = xdc.useModule('ti.sysbios.timers.dmtimer.Timer');
+var timerParams = new Timer.Params();
+timerParams.period = Clock.tickPeriod;
+timerParams.periodType = Timer.PeriodType_MICROSECS;
+/* Smart-idle wake-up-capable mode */
+timerParams.tiocpCfg.idlemode = 0x3;
+/* Wake-up generation for Overflow */
+timerParams.twer.ovf_wup_ena = 0x1;
+Timer.create(Clock.timerId, Clock.doTick, timerParams);
+
+/* Modules used in Power Management */
+xdc.loadPackage('ti.pm');
+var Power = xdc.useModule('ti.sysbios.family.arm.ducati.omap4430.Power');
+Power.loadSegment = "PM_DATA";
+
+/* Idle functions - PM functions should be last */
+var Idle = xdc.useModule('ti.sysbios.knl.Idle');
+Idle.addFunc('&VirtQueue_cacheWb');    /* Function to flush unicache in idle */
+Idle.addFunc('&ti_deh_Deh_idleBegin'); /* Watchdog detect idle function */
+Idle.addFunc('&IpcPower_idle');        /* IpcPower_idle must be at the end */
+
+/*
+ * These lines coerce BIOS into creating a unique interrupt vector table for
+ * each core. Core 0's interrupt vector table is placed at 0x400, Core 1's
+ * is placed at 0x800.
+ *
+ * Additionally, because both sections (.vecs AND .resetVecs) are placed at
+ * the same address, BIOS will NOT generate a vector table that gets placed
+ * at location 0.
+ *
+ * A common vector table that gets placed at address 0 is being inserted into
+ * the load image by the script that combines the two M3 programs into a
+ * single load image.
+ */
+Program.sectMap[".resetVecs"].loadAddress = (Core.id + 1) * 0x400;
+Program.sectMap[".vecs"].loadAddress      = (Core.id + 1) * 0x400;
+
+Program.sectMap[".tracebuf"] = "TRACE_BUF";
+Program.sectMap[".errorbuf"] = "EXC_DATA";
+
+/*
+ * Add support for offloading algorithms.
+ * The section is placed at an unused address in the common segment.
+ */
+Program.sectMap[".interm3offload"] = new Program.SectionSpec();
+Program.sectMap[".interm3offload"].loadAddress = 0x2000;
diff --git a/packages/ti/configs/omap54xx/IpuSmp.cfg b/packages/ti/configs/omap54xx/IpuSmp.cfg
new file mode 100644 (file)
index 0000000..758bc5c
--- /dev/null
@@ -0,0 +1,75 @@
+/*
+ * Copyright (c) 2012-2013, Texas Instruments Incorporated
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * *  Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *
+ * *  Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * *  Neither the name of Texas Instruments Incorporated nor the names of
+ *    its contributors may be used to endorse or promote products derived
+ *    from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/* Configure BIOS for SMP-mode */
+var BIOS = xdc.useModule('ti.sysbios.BIOS');
+BIOS.smpEnabled = true;
+
+/* -------------------------------- CORE0 ----------------------------------*/
+var MultiProc = xdc.useModule('ti.sdo.utils.MultiProc');
+MultiProc.setConfig("CORE0", ["HOST", "CORE0", "CORE1", "DSP"]);
+
+/* ----------------------------- TICK ---------------------------------------*/
+var Clock = xdc.useModule('ti.sysbios.knl.Clock');
+Clock.tickSource = Clock.TickSource_USER;
+/* Configure GPTimer3 as BIOS clock source */
+Clock.timerId = 0;
+
+var Timer = xdc.useModule('ti.sysbios.timers.dmtimer.Timer');
+var timerParams = new Timer.Params();
+timerParams.period = Clock.tickPeriod;
+timerParams.periodType = Timer.PeriodType_MICROSECS;
+/* Smart-idle wake-up-capable mode */
+timerParams.tiocpCfg.idlemode = 0x3;
+/* Wake-up generation for Overflow */
+timerParams.twer.ovf_wup_ena = 0x1;
+Timer.create(Clock.timerId, Clock.doTick, timerParams);
+
+/* Modules used in Power Management */
+xdc.loadPackage('ti.pm');
+var Power = xdc.useModule('ti.sysbios.family.arm.ducati.smp.Power');
+Power.loadSegment = "PM_DATA";
+
+/* Idle functions - PM functions should be last */
+var Idle = xdc.useModule('ti.sysbios.knl.Idle');
+/* Function to flush unicache in each core */
+Idle.addCoreFunc('&VirtQueue_cacheWb', 0);
+Idle.addCoreFunc('&VirtQueue_cacheWb', 1);
+/* Watchdog detection functions in each core */
+Idle.addCoreFunc('&ti_deh_Deh_idleBegin', 0);
+Idle.addCoreFunc('&ti_deh_Deh_idleBegin', 1);
+/* Idle Power Management functions for each core */
+Idle.addCoreFunc('&IpcPower_idle', 0);
+Idle.addCoreFunc('&IpcPower_idle', 1);
+
+Program.sectMap[".tracebuf"] = "TRACE_BUF";
+Program.sectMap[".errorbuf"] = "EXC_DATA";
diff --git a/packages/ti/configs/omap54xx/package.bld b/packages/ti/configs/omap54xx/package.bld
new file mode 100644 (file)
index 0000000..f6f6754
--- /dev/null
@@ -0,0 +1,37 @@
+/*
+ * Copyright (c) 2012-2013, Texas Instruments Incorporated
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * *  Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *
+ * *  Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * *  Neither the name of Texas Instruments Incorporated nor the names of
+ *    its contributors may be used to endorse or promote products derived
+ *    from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+/*!
+ * File generated by platform wizard.
+ *
+ */
+
+Pkg.attrs.exportAll = true;
diff --git a/packages/ti/configs/omap54xx/package.xdc b/packages/ti/configs/omap54xx/package.xdc
new file mode 100644 (file)
index 0000000..3bc1fcd
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Copyright (c) 2012-2013, Texas Instruments Incorporated
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * *  Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *
+ * *  Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * *  Neither the name of Texas Instruments Incorporated nor the names of
+ *    its contributors may be used to endorse or promote products derived
+ *    from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+/*
+ *  ======== package.xdc ========
+ *
+ */
+
+/*!
+ *  ======== ti.configs.omap54xx ========
+ *  Common config files.
+ *
+ */
+
+package ti.configs.omap54xx [1,0,0] {
+}