summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 82fce3b)
raw | patch | inline | side by side (parent: 82fce3b)
author | Angela Stegmaier <angelabaker@ti.com> | |
Mon, 11 Mar 2013 22:42:26 +0000 (17:42 -0500) | ||
committer | VW <vwan@ti.com> | |
Tue, 30 Apr 2013 17:25:10 +0000 (10:25 -0700) |
Signed-off-by: Angela Stegmaier <angelabaker@ti.com>
index 96ca2afaaa652f569ed891972bf09812b0a3c22e..e3783bf7bd53489e2df5dc4c5557251ed67b1ff2 100644 (file)
BIOS.libType = BIOS.LibType_Debug;
xdc.loadPackage('ti.ipc.rpmsg');
+xdc.loadPackage('ti.ipc.family.omap54xx');
/* TBD: Not yet taken in from omapzoom:
xdc.loadPackage('ti.srvmgr');
*/
/* 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');
+var Resource = xdc.useModule('ti.ipc.remoteproc.Resource');
+Resource.loadSegment = "EXT_CODE"
/* Modules used in Power Management */
xdc.loadPackage('ti.pm');
/* Idle function that periodically flushes the unicache */
var Idle = xdc.useModule('ti.sysbios.knl.Idle');
+Idle.addFunc('&VirtQueue_cacheWb');
//TBD: Idle.addFunc('&ti_deh_Deh_idleBegin'); /* Must be placed before pwr mgmt */
Idle.addFunc('&IpcPower_idle'); /* IpcPower_idle must be at the end */
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;
+Registry.common$.diags_USER1 = Diags.ALWAYS_ON;
+Registry.common$.diags_INFO = Diags.ALWAYS_ON;
+Registry.common$.diags_LIFECYCLE = Diags.ALWAYS_ON;
+Registry.common$.diags_STATUS = Diags.ALWAYS_ON;
Diags.setMaskEnabled = true;
var Main = xdc.useModule('xdc.runtime.Main');
/* -------------------------------- DSP ----------------------------------*/
var MultiProc = xdc.useModule('ti.sdo.utils.MultiProc');
-MultiProc.setConfig("DSP", ["HOST", "CORE0", "CORE1", "DSP"]);
+MultiProc.setConfig("DSP", ["HOST", "IPU", "DSP"]);
/* --------------------------- TICK --------------------------------------*/
var Clock = xdc.useModule('ti.sysbios.knl.Clock');
Program.sectMap[".errorbuf"] = "EXC_DATA";
/* Version module */
+/* ???
xdc.useModule('ti.utils.Version');
+*/
diff --git a/packages/ti/ipc/family/omap54xx/package.xs b/packages/ti/ipc/family/omap54xx/package.xs
index 0334ccaab525e3f6461bcdd5243658bc5ea53c5f..7b5a1e906c05893eebd8cb242b5069c226685772 100644 (file)
function validate()
{
var BIOS = xdc.module('ti.sysbios.BIOS');
+ var suffix = prog.build.target.findSuffix(this);
- if (!BIOS.smpEnabled) {
+ if (!BIOS.smpEnabled && (suffix != "e64T")) {
throw new Error(Pkg.$name+" must have BIOS.smpEnabled set to true.");
}
}
index f2b5730b3714ea72424400f691e1ca4d2a4f3fc7..55a9e92bff4f82e72a73987d848d270dbc734842 100644 (file)
#define OMAP5
#include <ti/ipc/remoteproc/rsc_table_omap5_ipu.h>
% } else if (prog.cpu.attrs.cpuCore.match(/^64T$/)) {
+#define OMAP5
#include <ti/ipc/remoteproc/rsc_table_omap5_dsp.h>
% }
% else {
diff --git a/packages/ti/ipc/remoteproc/rsc_table_omap5_dsp.h b/packages/ti/ipc/remoteproc/rsc_table_omap5_dsp.h
index 0d20c0f224b6dcad97d4fa32c07fcd3d0902529d..4dd04cb93640dcc5991efa2345a1ac05a5b65ded 100644 (file)
#ifndef _RSC_TABLE_DSP_H_
#define _RSC_TABLE_DSP_H_
-#include <xdc/std.h>
#include "rsc_types.h"
-#include <ti/gates/hwspinlock/HwSpinlock.h>
/* DSP Memory Map */
#define L4_44XX_BASE 0x4A000000
UInt32 version;
UInt32 num;
UInt32 reserved[2];
- UInt32 offset[17]; /* Should match 'num' in actual definition */
+ UInt32 offset[16]; /* Should match 'num' in actual definition */
/* rpmsg vdev entry */
struct fw_rsc_vdev rpmsg_vdev;
/* devmem entry */
struct fw_rsc_devmem devmem9;
-
- /* hwspinlock custom entry */
- struct fw_rsc_custom hwspin;
};
#define TRACEBUFADDR (UInt32)&ti_trace_SysMin_Module_State_0_outbuf__A
-#define HWSPINKLOCKSTATEADDR (UInt32)&ti_gates_HwSpinlock_sharedState
-#define HWSPINKLOCKNUMADDR (UInt32)&ti_gates_HwSpinlock_numLocks
#pragma DATA_SECTION(ti_ipc_remoteproc_ResourceTable, ".resource_table")
#pragma DATA_ALIGN(ti_ipc_remoteproc_ResourceTable, 4096)
struct resource_table ti_ipc_remoteproc_ResourceTable = {
1, /* we're the first version that implements this */
- 17, /* number of entries in the table */
+ 16, /* number of entries in the table */
0, 0, /* reserved, must be zero */
/* offsets to entries */
{
offsetof(struct resource_table, devmem7),
offsetof(struct resource_table, devmem8),
offsetof(struct resource_table, devmem9),
- offsetof(struct resource_table, hwspin),
},
/* rpmsg vdev entry */
DSP_PERIPHERAL_ISS, L3_PERIPHERAL_ISS,
SZ_256K, 0, 0, "DSP_PERIPHERAL_ISS",
},
-
- {
- TYPE_CUSTOM, TYPE_HWSPIN,
- sizeof(struct fw_rsc_custom_hwspin),
- { HWSPINKLOCKNUMADDR, HWSPINKLOCKSTATEADDR, "hwspin"},
- },
};
#endif /* _RSC_TABLE_DSP_H_ */
index bfebaf42f1e11e16c905fcc8a633af0047e96982..96d02900ae2a77b3543f8f20fbed1c2414634626 100644 (file)
/* currently only build for OMAPL138, Keystone II, and OMAP5*/
if (!((targ.isa == "674") || (targ.isa == "66") ||
- (targ.isa.match(/v7M(|4)/)))) {
+ (targ.isa.match(/v7M(|4)/)) || (targ.isa == "64T"))) {
continue;
}
}).addObjects(["test_omx.c","ping_tasks.c","rpc_task.c",
"MxServer.c"]);
}
+
+ if (platform.match(/^ti\.platform\.omap54xx\.dsp/)) {
+ Pkg.addExecutable(name + "/test_omx_dsp_omap5", targ, platform, {
+ cfgScript: "test_omx_dsp_omap5",
+ defs: "-D DSP -D OMAP5xxx"
+ }).addObjects(["test_omx.c","ping_tasks.c","rpc_task",
+ "MxServer.c"]);
+ }
}
}
index 48369c419f5233c1e97e6c270f0b7f1410b175d0..60c4872fef292b3206e09f6be5900dbf0fc1fddb 100644 (file)
xdc.includeFile("ti/configs/omap54xx/IpuSmp.cfg");
xdc.includeFile("ti/configs/omap54xx/IpuAmmu.cfg");
}
+/* This will match for omap5 dsp only: */
+/*else if (Program.platformName.match(/^ti\.platform\.omap54xx\.dsp/)) {*/
+else if (Program.platformName.match(/dsp/)) {
+ var Task = xdc.useModule('ti.sysbios.knl.Task');
+ var params = new Task.Params;
+ params.instance.name = "ping";
+ params.arg0= 51;
+ Program.global.tsk1 = Task.create('&pingTaskFxn', params);
+ Task.deleteTerminatedTasks = true;
+
+ /* This calls RPMessage_init() once before BIOS_start(): */
+ xdc.loadPackage('ti.ipc.ipcmgr');
+ var BIOS = xdc.useModule('ti.sysbios.BIOS');
+ BIOS.addUserStartupFunction('&IpcMgr_rpmsgStartup');
+
+ xdc.includeFile("ti/configs/omap54xx/Dsp.cfg");
+ xdc.includeFile("ti/configs/omap54xx/DspAmmu.cfg");
+}
else {
xdc.loadCapsule("ping_rpmsg_common.cfg.xs");
}
diff --git a/packages/ti/ipc/tests/ping_rpmsg_common.cfg.xs b/packages/ti/ipc/tests/ping_rpmsg_common.cfg.xs
index 074c862ad118eb225f3ff0bce44f21c39babc6cd..255477a6585dd6f4cf2a8d2b912b9f96735a7ada 100644 (file)
*/
}
else {
- throw("messageq_common.cfg: Did not match any platform!");
+ throw("ping_rpmsg_common.cfg: Did not match any platform!");
}
Hwi.enableException = true;
index f658c2569bc6e1b89781ad30cd278fec1f33e2e7..fef624b37c4a616a547fb22e13b238d52307355a 100644 (file)
xdc.includeFile("ti/configs/omap54xx/IpuSmp.cfg");
xdc.includeFile("ti/configs/omap54xx/IpuAmmu.cfg");
}
+/* This will match for omap5 dsp only: */
+else if (Program.platformName.match(/^ti\.platform\.omap54xx\.dsp/)) {
+ /* This initializes the MessageQ Transport RPMSG stack: */
+ xdc.loadPackage('ti.ipc.ipcmgr');
+ var BIOS = xdc.useModule('ti.sysbios.BIOS');
+ BIOS.addUserStartupFunction('&IpcMgr_ipcStartup');
+
+ var HeapBuf = xdc.useModule('ti.sysbios.heaps.HeapBuf');
+ var params = new HeapBuf.Params;
+ params.align = 8;
+ params.blockSize = 512;
+ params.numBlocks = 256;
+ var msgHeap = HeapBuf.create(params);
+
+ var MessageQ = xdc.useModule('ti.sdo.ipc.MessageQ');
+ MessageQ.registerHeapMeta(msgHeap, 0);
+
+ var Diags = xdc.useModule('xdc.runtime.Diags');
+ Diags.setMaskMeta("ti.ipc.transports.TransportRpmsg",
+ Diags.INFO|Diags.USER1|Diags.STATUS, Diags.ALWAYS_ON);
+ Diags.setMaskMeta("ti.ipc.namesrv.NameServerRemoteRpmsg", Diags.INFO,
+ Diags.ALWAYS_ON);
+
+ var VirtioSetup = xdc.useModule('ti.ipc.transports.TransportRpmsgSetup');
+ VirtioSetup.common$.diags_INFO = Diags.ALWAYS_ON;
+
+ xdc.includeFile("ti/configs/omap54xx/Dsp.cfg");
+ xdc.includeFile("ti/configs/omap54xx/DspAmmu.cfg");
+}
else {
xdc.loadCapsule("messageq_common.cfg.xs");
}
diff --git a/packages/ti/ipc/tests/test_omx_dsp_omap5.cfg b/packages/ti/ipc/tests/test_omx_dsp_omap5.cfg
--- /dev/null
@@ -0,0 +1,57 @@
+/*
+ * Copyright (c) 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.
+ */
+
+/* This calls MessageQCopy_init() once before BIOS_start(): */
+xdc.loadPackage('ti.ipc.ipcmgr');
+var BIOS = xdc.useModule('ti.sysbios.BIOS');
+BIOS.addUserStartupFunction('&IpcMgr_rpmsgStartup');
+BIOS.addUserStartupFunction('®ister_MxServer');
+
+var Task = xdc.useModule('ti.sysbios.knl.Task');
+Task.defaultStackSize = 0x2000;
+
+xdc.loadPackage('ti.srvmgr');
+xdc.useModule('ti.srvmgr.omx.OmxSrvMgr');
+xdc.loadPackage('ti.srvmgr.omaprpc');
+
+/* ti.grcm Configuration */
+var rcmSettings = xdc.useModule('ti.grcm.Settings');
+rcmSettings.ipc = rcmSettings.IpcSupport_ti_sdo_ipc;
+xdc.useModule('ti.grcm.RcmServer');
+
+xdc.includeFile("ti/configs/omap54xx/Dsp.cfg");
+xdc.includeFile("ti/configs/omap54xx/DspAmmu.cfg");
+
+var Task = xdc.useModule('ti.sysbios.knl.Task');
+Task.defaultStackSize = 12 * 0x400;
+
+xdc.loadPackage('ti.ipc.mm');