C66AK2E: BIOS: Introduce support for C66AK2E
authorChris Ring <cring@ti.com>
Tue, 21 Jan 2014 21:19:39 +0000 (13:19 -0800)
committerChris Ring <cring@ti.com>
Tue, 21 Jan 2014 21:19:39 +0000 (13:19 -0800)
The C66AK2E device is an A15 + C66 DSP, similar in hardware
to the TCI663X family of devices.  This commit adds BIOS-side
support.

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/messageq_common.cfg.xs
packages/ti/ipc/tests/package.bld
packages/ti/sdo/ipc/family/Settings.xs
products.mak

index 9bd71856ccd762f2911d26eadad88572f057a7a3..7c28f860d94145b114b91b54ffc06080790ae66d 100644 (file)
@@ -190,6 +190,10 @@ for (arg = 0; arg < arguments.length; arg++) {
 
     if (targetName.match(/elf\.C66$/)) {
         switch (platform) {
+            case 'C66AK2E':
+                target.platforms.$add("ti.platforms.evmC66AK2E");
+                break;
+
             case 'TCI6630':
                 target.platforms.$add("ti.platforms.evmTCI6630K2L");
                 break;
index 6a987b0f667a5cf84a364727b1694015081d7ab3..a6d85224d852475607c723fb839e6ceadcf7b6cc 100644 (file)
@@ -74,6 +74,16 @@ var deviceSettings = {
         KICK1:          0x0262003C,
         INTERDSPINT:    105,
         DSPINT:         5
+    },
+    'TMS320C66AK2E05' : {
+        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');
index c42042b1a5cc6245a7704e66591cee84f0a6b984..ab961b1715f73bcce7574656818306a454dcef4e 100644 (file)
@@ -49,6 +49,7 @@ extern struct resource_table ti_ipc_remoteproc_ResourceTable;
 //#include <ti/ipc/remoteproc/rsc_table_tci6614_v3.3.h> // Test with v3.3 Linux.
 %  }
 %  else if (prog.platformName.match(/Kepler/) ||
+%         prog.cpu.deviceName.match(/^TMS320C66AK2E05$/) ||
 %         prog.cpu.deviceName.match(/^TMS320TCI663(0K2L|6|8)$/)) {
 %    if (this.traceOnly) {
 #define TRACE_RESOURCE_ONLY
index 5791c0fc54537319bfd2bbf19725efd13380afaf..7c5c5654ddf5061427fa4d00f2e4a6723fe6efb0 100644 (file)
@@ -59,6 +59,7 @@ function close()
             break;
 
         case "Kepler":
+        case "TMS320C66AK2E05":
         case "TMS320TCI6630K2L":
         case "TMS320TCI6636":
         case "TMS320TCI6638":
@@ -126,6 +127,7 @@ function getLibs(prog)
             break;
 
         case "Kepler":
+        case "TMS320C66AK2E05":
         case "TMS320TCI6630K2L":
         case "TMS320TCI6636":
         case "TMS320TCI6638":
index 991ef9c07aedc9b4d1a3cd02cd10cd71631b67cf..ce502ddd9a16cec7e704d4cdf86b20a04e177326 100644 (file)
@@ -155,6 +155,7 @@ else if (Program.platformName.match(/6614/)) {
     */
 }
 else if (Program.platformName.match(/simKepler/) ||
+        Program.cpu.deviceName.match(/^TMS320C66AK2E05$/) ||
         Program.cpu.deviceName.match(/^TMS320TCI663(0K2L|6|8)$/)) {
     var VirtQueue = xdc.useModule('ti.ipc.family.tci6638.VirtQueue');
     var Interrupt = xdc.useModule('ti.ipc.family.tci6638.Interrupt');
@@ -163,6 +164,11 @@ else if (Program.platformName.match(/simKepler/) ||
     var MultiProc = xdc.useModule('ti.sdo.utils.MultiProc');
 
     switch (Program.cpu.deviceName) {
+        case "TMS320C66AK2E05":
+            MultiProc.setConfig(null,
+                    ["HOST", "CORE0"]);
+            break;
+
         case "TMS320TCI6630K2L":
             MultiProc.setConfig(null,
                     ["HOST", "CORE0", "CORE1", "CORE2", "CORE3"]);
index ec4caf3181597904fad5fb83accbd6760e0e89d8..74fe78493430ece54af31285fd0dc170d6a8ecc4 100644 (file)
@@ -461,6 +461,7 @@ for (var i = 0; i < Build.targets.length; i++) {
         /* currently only build for OMAPL138, Keystone II, OMAP5, and Vayu*/
         if (!((platform.match(/^ti\.platforms\.evm6614\:DSP/)) ||
               (platform.match(/^ti\.platforms\.simKepler/)) ||
+              (platform.match(/^ti.platforms.evmC66AK2E/)) ||
               (platform.match(/^ti.platforms.evmTCI6630K2L/)) ||
               (platform.match(/^ti.platforms.evmTCI6638K2K/)) ||
               (platform.match(/^ti.platforms.evmTCI6636K2H/)) ||
index 26df3dc5fd4a561c659db759f68fb9ecfebe2934..6fae7c092beb614c999d8c63c4c3bac0aacd2c6d 100644 (file)
@@ -140,7 +140,8 @@ var deviceAliases = {
                            'TMS320TCI6618',
                            'TMS320TCI6614',
                            'TMS320C6657'],
-    'TMS320TCI6634'     : ['TMS320TCI6630K2L',
+    'TMS320TCI6634'     : ['TMS320C66AK2E05',
+                           'TMS320TCI6630K2L',
                            'TMS320TCI6636',
                            'TMS320TCI6638',
                            'Kepler'],
@@ -177,6 +178,7 @@ var procNames = {
     'Kepler'            : ["HOST", "CORE0", "CORE1", "CORE2", "CORE3",
                            "CORE4", "CORE5", "CORE6", "CORE7"],
     'TMS320TCI6630K2L'  : ["HOST", "CORE0", "CORE1", "CORE2", "CORE3"],
+    'TMS320C66AK2E05'     : ["HOST", "CORE0"],
 
     'TMS320C6674'       : ["CORE0", "CORE1", "CORE2", "CORE3"],
     'TMS320C6678'       : ["CORE0", "CORE1", "CORE2", "CORE3",
index 48e97a56c611541c1b54509c06d1f4cc070964c3..516ef8af0944f86f69d4d0c504eb14812551e4be 100644 (file)
@@ -41,7 +41,7 @@ DEPOT ?= _your_depot_folder_
 
 # Platform to build for
 #   Supported platforms (choose one):
-#       OMAPL138, OMAP54XX, DRA7XX, TCI6630, TCI6636, TCI6638
+#       OMAPL138, OMAP54XX, DRA7XX, C66AK2E, TCI6630, TCI6636, TCI6638
 #
 # Note, this is used for Linux, QNX and BIOS builds
 #