]> Gitweb @ Texas Instruments - Open Source Git Repositories - git.TI.com/gitweb - ipc/ipcdev.git/commitdiff
TCI6638: Add support for ti.platforms.evmTCI6638K2K
authorChris Ring <cring@ti.com>
Fri, 8 Mar 2013 00:59:49 +0000 (16:59 -0800)
committerChris Ring <cring@ti.com>
Tue, 12 Mar 2013 22:42:53 +0000 (15:42 -0700)
XDC 3.25 includes support for the new TCI6638K2K EVM.  IPC 3 supported the
simulator for this device (ti.platforms.simKepler).  This commit adds
initial support for the new ti.platforms.evmTCI6638K2K EVM.

ipc-bios.bld
packages/ti/ipc/family/tci6638/Interrupt.xs
packages/ti/ipc/remoteproc/Resource.xdt
packages/ti/ipc/rpmsg/package.xs
packages/ti/ipc/tests/dual_transports.cfg
packages/ti/ipc/tests/messageq_common.cfg.xs
packages/ti/ipc/tests/messageq_multicore.cfg
packages/ti/ipc/tests/package.bld
packages/ti/ipc/tests/ping_rpmsg_common.cfg.xs
packages/ti/sdo/ipc/family/Settings.xs
packages/ti/sdo/ipc/family/tci663x/Interrupt.xs

index 362e7a570e895fc2f57a7d61e74a33247cde1ef7..bc942621f646d4fcfc2e4fd92fe587533629ac1b 100644 (file)
@@ -138,9 +138,10 @@ for (arg = 0; arg < arguments.length; arg++) {
 
     if (targetName.match(/elf\.C66/)) {
         target.lnkOpts.suffix += " -cr";
-        target.platforms = [ 
+        target.platforms = [
             "ti.platforms.simKepler"
             //"ti.platforms.evm6614:DSP"
+//            "ti.platforms.evmTCI6638K2K"
         ];
     }
 
index 8a94de6d663d708f9e39b529dcf91acbaac6545f..e02afb10585f76076c10f502625a9d9e03d70c91 100644 (file)
@@ -45,6 +45,16 @@ var deviceSettings = {
         INTERDSPINT:    105,
         DSPINT:         5,
     },
+    'TMS320TCI6638' : {
+        IPCGR0:         0x02620240,
+        IPCAR0:         0x02620280,
+        IPCGRH:         0x02620260,
+        IPCARH:         0x026202A0,
+        KICK0:          0x02620038,
+        KICK1:          0x0262003C,
+        INTERDSPINT:    105,
+        DSPINT:         5,
+    },
 }
 var Settings = xdc.loadCapsule('ti/sdo/ipc/family/Settings.xs');
 Settings.setDeviceAliases(deviceSettings, Settings.deviceAliases);
index d56301b753de618cae486952ecfd09128f3e8878..5908dcd010c73a57b3481924fceffd7ac2739c63 100644 (file)
@@ -44,7 +44,8 @@
 #include <ti/ipc/remoteproc/rsc_table_tci6614.h>
 //#include <ti/ipc/remoteproc/rsc_table_tci6614_v3.3.h> // Test with v3.3 Linux.
 %}
-%if (prog.platformName.match(/Kepler/)) {
+%if (prog.platformName.match(/Kepler/) ||
+%         prog.platformName.match(/TCI6638/)) {
 #include <ti/ipc/remoteproc/rsc_table_tci6638.h>
 %}
 %if (prog.platformName.match(/omap54xx\.ipu/)) {
index a189ace13b55218601ee5e5741d3cde1c18b7128..5e7f6a7b1a0d89f53d3e3b0a71f841c612170d8d 100644 (file)
@@ -77,6 +77,7 @@ function getLibs(prog)
             break;
 
         case "Kepler":
+        case "TMS320TCI6638":
             platform = "tci6638";
             break;
 
index 60d2dd166981c08bd442ff99971c2c293ea05539..b4b9d215be3f78d5971742015a0f2fbb884fbeb8 100644 (file)
@@ -38,7 +38,8 @@
 if (Program.platformName.match(/6614/)) {
     MultiProcSetup = xdc.useModule('ti.sdo.ipc.family.c647x.MultiProcSetup');
 }
-else if (Program.platformName.match(/simKepler/)) {
+else if (Program.platformName.match(/simKepler/) ||
+        Program.cpu.deviceName.match(/^TMS320TCI6638$/)) {
     MultiProcSetup = xdc.useModule('ti.sdo.ipc.family.tci663x.MultiProcSetup');
 }
 MultiProcSetup.configureProcId = false;
@@ -56,7 +57,8 @@ if (Program.platformName.match(/6614/)) {
     var Interrupt = xdc.useModule('ti.ipc.family.tci6614.Interrupt');
     NotifyDriverShm.InterruptProxy = xdc.useModule(Interrupt);
 }
-else if (Program.platformName.match(/simKepler/)) {
+else if (Program.platformName.match(/simKepler/) ||
+        Program.cpu.deviceName.match(/^TMS320TCI6638$/)) {
     var NotifyDriverCirc =
        xdc.useModule('ti.sdo.ipc.notifyDrivers.NotifyDriverCirc');
     var Interrupt = xdc.useModule('ti.ipc.family.tci6638.Interrupt');
@@ -75,7 +77,8 @@ var Ipc                     = xdc.useModule('ti.sdo.ipc.Ipc');
 if (Program.platformName.match(/6614/)) {
     Notify.SetupProxy = xdc.module('ti.ipc.family.tci6614.NotifySetup');
 }
-else if (Program.platformName.match(/simKepler/)) {
+else if (Program.platformName.match(/simKepler/) ||
+        Program.cpu.deviceName.match(/^TMS320TCI6638$/)) {
     Notify.SetupProxy = xdc.module('ti.ipc.family.tci6638.NotifyCircSetup');
 }
 
index 697008cc92584ac8209739122551852cc44c7226..c184b01e1786db21944ee94ee5e875d6dc8e9e6c 100644 (file)
@@ -154,7 +154,8 @@ else if (Program.platformName.match(/6614/)) {
         Diags.ALWAYS_ON);
     */
 }
-else if (Program.platformName.match(/simKepler/)) {
+else if (Program.platformName.match(/simKepler/) ||
+        Program.cpu.deviceName.match(/^TMS320TCI6638$/)) {
     var VirtQueue = xdc.useModule('ti.ipc.family.tci6638.VirtQueue');
     var Interrupt = xdc.useModule('ti.ipc.family.tci6638.Interrupt');
 
@@ -204,7 +205,7 @@ else if (Program.platformName.match(/simKepler/)) {
     */
 }
 else {
-    throw("messageq_common.cfg: Did not match any platform!");
+    throw("messageq_common.cfg.xs: Did not match any platform!");
 }
 
 Hwi.enableException = true;
index 89eb6739bb7220a81a475801a277bcf1b2b0b37d..e4a8775c6862fe5fa0fc8123bf7dc0c5570308f5 100644 (file)
  * 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.
- * */
+ */
 
-switch (Program.platformName) {
-    case "ti.platforms.evm6614:DSP":
-        var nameList = ["CORE0", "CORE1", "CORE2", "CORE3"];
+var nameList = "";
+switch (Program.cpu.deviceName) {
+    case "TMS320TCI6614":
+        nameList = ["CORE0", "CORE1", "CORE2", "CORE3"];
         break;
-    case "ti.platforms.simKepler":
-        var nameList = ["CORE0", "CORE1", "CORE2", "CORE3",
-                        "CORE4", "CORE5", "CORE6", "CORE7"];
+
+    case "Kepler":
+    case "TMS320TCI6638":
+        nameList = ["CORE0", "CORE1", "CORE2", "CORE3", "CORE4", "CORE5",
+                "CORE6", "CORE7"];
         break;
+
     default:
-        throw("Platform " + Program.platformName + " not supported by this example");
+        throw("Device " + Program.cpu.deviceName +
+              " not supported by this example");
         break;
 }
 
@@ -57,7 +62,6 @@ var System   = xdc.useModule('xdc.runtime.System');
 var MessageQ    = xdc.useModule('ti.sdo.ipc.MessageQ');
 var Ipc         = xdc.useModule('ti.sdo.ipc.Ipc');
 var HeapBufMP   = xdc.useModule('ti.sdo.ipc.heaps.HeapBufMP');
-var MultiProc   = xdc.useModule('ti.sdo.utils.MultiProc');
 
 /* BIOS/XDC modules */
 var BIOS        = xdc.useModule('ti.sysbios.BIOS');
index 7c9c776c5276e4566af9221fd60ae36ee949b683..c41b8c97b23c7a05c4ac53e1f3dee840bbbfb971 100644 (file)
@@ -83,6 +83,7 @@ for (var i = 0; i < Build.targets.length; i++) {
         /* currently only build for OMAPL138, Keystone II, and OMAP5*/
         if (!((platform.match(/^ti\.platforms\.evm6614\:DSP/)) ||
               (platform.match(/^ti\.platforms\.simKepler/)) ||
+              (platform.match(/^ti.platforms.evmTCI6638K2K/)) ||
               (platform.match(/^ti\.platform\.omap54xx/)) ||
               (platform.match(/\.platforms\.evmOMAPL138/)))) {
              continue;
@@ -100,17 +101,18 @@ for (var i = 0; i < Build.targets.length; i++) {
 
         /* Only build this for our multicore platforms: */
         if (platform.match(/^ti\.platforms\.simKepler/) ||
-            platform.match(/^ti\.platforms\.evm6614\:DSP/)) {
-                Pkg.addExecutable(name + "/messageq_multicore",targ,platform, {
-                    cfgScript: "messageq_multicore",
-                    //defs: "-D TCI6614_v33"
-                    //defs: "-D TCI6614"
-                    defs: "-D TCI6638"
-                }).addObjects(["messageq_multicore.c"]);
-
-                Pkg.addExecutable(name + "/dual_transports",targ,platform, {
-                    cfgScript: "dual_transports",
-                }).addObjects(["dual_transports.c"]);
+                (platform.match(/^ti.platforms.evmTCI6638K2K/)) ||
+                (platform.match(/^ti\.platforms\.evm6614\:DSP/))) {
+            Pkg.addExecutable(name + "/messageq_multicore", targ, platform, {
+                cfgScript: "messageq_multicore",
+                //defs: "-D TCI6614_v33"
+                //defs: "-D TCI6614"
+                defs: "-D TCI6638"
+            }).addObjects(["messageq_multicore.c"]);
+
+            Pkg.addExecutable(name + "/dual_transports", targ, platform, {
+                cfgScript: "dual_transports",
+            }).addObjects(["dual_transports.c"]);
         }
 
         Pkg.addExecutable(name + "/messageq_multi", targ, platform, {
index bb3ee654500cd037458025171e731b5819151fa3..7cb15632308152173c9ba9ea2b8c82d99a72639b 100644 (file)
@@ -127,7 +127,8 @@ else if (Program.platformName.match(/6614/)) {
         Diags.ALWAYS_ON);
     */
 }
-else if (Program.platformName.match(/simKepler/)) {
+else if (Program.platformName.match(/simKepler/) ||
+        Program.platformName.match(/evmTCI6638K2K/)) {
     var VirtQueue = xdc.useModule('ti.ipc.family.tci6638.VirtQueue');
     var Interrupt = xdc.useModule('ti.ipc.family.tci6638.Interrupt');
 
index 76d1821edf9ac662f7398ef05f47b0eb835a6cff..83d2a552e40bc82301794c12ad63aa4823d80f26 100644 (file)
@@ -166,11 +166,16 @@ var procNames = {
     'TMS320TCI6636'     : ["CORE0", "CORE1", "CORE2", "CORE3",
                            "CORE4", "CORE5", "CORE6", "CORE7",
                             "HOST0", "HOST1", "HOST2", "HOST3"],
-    'TMS320TCI6638'     : ["CORE0", "CORE1", "CORE2", "CORE3",
-                           "CORE4", "CORE5", "CORE6", "CORE7",
-                           "HOST0", "HOST1", "HOST2", "HOST3"],
+
+    /*
+     *  Note, the name "HOST" was intentionally chosen as a proc name to
+     *  accomodate TransportVirtio, a common transport on these platforms.
+     */
+    'TMS320TCI6638'     : ["HOST", "CORE0", "CORE1", "CORE2", "CORE3",
+                           "CORE4", "CORE5", "CORE6", "CORE7"],
     'Kepler'            : ["HOST", "CORE0", "CORE1", "CORE2", "CORE3",
                            "CORE4", "CORE5", "CORE6", "CORE7"],
+
     'TMS320C6674'       : ["CORE0", "CORE1", "CORE2", "CORE3"],
     'TMS320C6678'       : ["CORE0", "CORE1", "CORE2", "CORE3",
                            "CORE4", "CORE5", "CORE6", "CORE7"],
@@ -586,8 +591,8 @@ function getHWGate()
     if (deviceName == "TMS320C6472" ||
         deviceName == "TMS320CTCI6486") {
         return ('ti.sdo.ipc.gates.GateAAMonitor');
-    }  
-    else if (deviceName == "TMS320C6A8149") { 
+    }
+    else if (deviceName == "TMS320C6A8149") {
         return ('ti.sdo.ipc.gates.GatePetersonN');
     }
     try {
index c7f30da544ec0fcb0e998937828d41be98a5da6f..230b771f37a6416a064f0a71ce1bb242deac6a55 100644 (file)
@@ -39,6 +39,11 @@ var deviceSettings = {
         IPCAR0:         0x02620280,
         INTERDSPINT:    105,
     },
+    'TMS320TCI6638' : {
+        IPCGR0:         0x02620240,
+        IPCAR0:         0x02620280,
+        INTERDSPINT:    105,
+    },
 }
 var Settings = xdc.loadCapsule('ti/sdo/ipc/family/Settings.xs');
 Settings.setDeviceAliases(deviceSettings, Settings.deviceAliases);