TCI6630: BIOS: Introduce support for TCI6630K2L
authorChris Ring <cring@ti.com>
Wed, 15 Jan 2014 21:09:22 +0000 (13:09 -0800)
committerChris Ring <cring@ti.com>
Tue, 21 Jan 2014 19:15:36 +0000 (11:15 -0800)
The TCI6630K2L device is an A15 + 4 C66 DSPs, very similar
to TCI6638K2K (A15 + 8 C66 DSPs).  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/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
products.mak

index e96b008970b5a1d1253666b844d117a98ae00b56..9bd71856ccd762f2911d26eadad88572f057a7a3 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011-2013, Texas Instruments Incorporated
+ * Copyright (c) 2011-2014, Texas Instruments Incorporated
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -190,6 +190,10 @@ for (arg = 0; arg < arguments.length; arg++) {
 
     if (targetName.match(/elf\.C66$/)) {
         switch (platform) {
+            case 'TCI6630':
+                target.platforms.$add("ti.platforms.evmTCI6630K2L");
+                break;
+
             case 'TCI6636':
                 target.platforms.$add("ti.platforms.evmTCI6636K2H");
                 break;
index 9864e8077fdf0a8ea55e8f6c28ea5721c3a9bed5..6a987b0f667a5cf84a364727b1694015081d7ab3 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, Texas Instruments Incorporated
+ * Copyright (c) 2013-2014, Texas Instruments Incorporated
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -64,6 +64,16 @@ var deviceSettings = {
         KICK1:          0x0262003C,
         INTERDSPINT:    105,
         DSPINT:         5
+    },
+    'TMS320TCI6630K2L' : {
+        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 0f87a88c04bf9d9e8f39ad145cbcb3d847b40f61..c42042b1a5cc6245a7704e66591cee84f0a6b984 100644 (file)
@@ -1,6 +1,6 @@
 %%{
 /*
- * Copyright (c) 2011-2013, Texas Instruments Incorporated
+ * Copyright (c) 2011-2014, Texas Instruments Incorporated
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -49,7 +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(/^TMS320TCI663[6|8]$/)) {
+%         prog.cpu.deviceName.match(/^TMS320TCI663(0K2L|6|8)$/)) {
 %    if (this.traceOnly) {
 #define TRACE_RESOURCE_ONLY
 %    }
index aa562d11924a23053e5abafb8fbe454f9ccc4d0f..5791c0fc54537319bfd2bbf19725efd13380afaf 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011-2013, Texas Instruments Incorporated
+ * Copyright (c) 2011-2014, Texas Instruments Incorporated
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -59,6 +59,7 @@ function close()
             break;
 
         case "Kepler":
+        case "TMS320TCI6630K2L":
         case "TMS320TCI6636":
         case "TMS320TCI6638":
             xdc.useModule('ti.ipc.family.tci6638.VirtQueue');
@@ -125,6 +126,7 @@ function getLibs(prog)
             break;
 
         case "Kepler":
+        case "TMS320TCI6630K2L":
         case "TMS320TCI6636":
         case "TMS320TCI6638":
             platform = "tci6638";
index 4c76e348b68ee7255eb08ad3e4a41ac2e24a87ef..a0b34298a459955bd0bf3e0a7b0b1e2009d9f279 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, Texas Instruments Incorporated
+ * Copyright (c) 2013-2014, Texas Instruments Incorporated
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -39,7 +39,7 @@ if (Program.platformName.match(/6614/)) {
     MultiProcSetup = xdc.useModule('ti.sdo.ipc.family.c647x.MultiProcSetup');
 }
 else if (Program.platformName.match(/simKepler/) ||
-        Program.cpu.deviceName.match(/^TMS320TCI663[6|8]$/)) {
+        Program.cpu.deviceName.match(/^TMS320TCI663(0K2L|6|8)$/)) {
     MultiProcSetup = xdc.useModule('ti.sdo.ipc.family.tci663x.MultiProcSetup');
 }
 MultiProcSetup.configureProcId = false;
@@ -58,7 +58,7 @@ if (Program.platformName.match(/6614/)) {
     NotifyDriverShm.InterruptProxy = Interrupt;
 }
 else if (Program.platformName.match(/simKepler/) ||
-        Program.cpu.deviceName.match(/^TMS320TCI663[6|8]$/)) {
+        Program.cpu.deviceName.match(/^TMS320TCI663(0K2L|6|8)$/)) {
     var NotifyDriverCirc =
        xdc.useModule('ti.sdo.ipc.notifyDrivers.NotifyDriverCirc');
     var Interrupt = xdc.useModule('ti.ipc.family.tci6638.Interrupt');
@@ -78,7 +78,7 @@ if (Program.platformName.match(/6614/)) {
     Notify.SetupProxy = xdc.module('ti.ipc.family.tci6614.NotifySetup');
 }
 else if (Program.platformName.match(/simKepler/) ||
-        Program.cpu.deviceName.match(/^TMS320TCI663[6|8]$/)) {
+        Program.cpu.deviceName.match(/^TMS320TCI663(0K2L|6|8)$/)) {
     Notify.SetupProxy = xdc.module('ti.ipc.family.tci6638.NotifyCircSetup');
 }
 
index ee8ffa0bf62474755f78197dbecf454ebc0825a9..991ef9c07aedc9b4d1a3cd02cd10cd71631b67cf 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013, Texas Instruments Incorporated
+ * Copyright (c) 2012-2014, Texas Instruments Incorporated
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -155,14 +155,27 @@ else if (Program.platformName.match(/6614/)) {
     */
 }
 else if (Program.platformName.match(/simKepler/) ||
-        Program.cpu.deviceName.match(/^TMS320TCI663[6|8]$/)) {
+        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');
 
     /* Note: MultiProc_self is set during VirtQueue_init based on DNUM. */
     var MultiProc = xdc.useModule('ti.sdo.utils.MultiProc');
-    MultiProc.setConfig(null, ["HOST", "CORE0", "CORE1", "CORE2", "CORE3",
-                               "CORE4", "CORE5", "CORE6", "CORE7"]);
+
+    switch (Program.cpu.deviceName) {
+        case "TMS320TCI6630K2L":
+            MultiProc.setConfig(null,
+                    ["HOST", "CORE0", "CORE1", "CORE2", "CORE3"]);
+            break;
+
+        case "TMS320TCI6636":
+        case "TMS320TCI6638":
+            MultiProc.setConfig(null,
+                    ["HOST", "CORE0", "CORE1", "CORE2", "CORE3",
+                    "CORE4", "CORE5", "CORE6", "CORE7"]);
+            break;
+    }
+
     Program.sectMap[".text:_c_int00"] = new Program.SectionSpec();
     Program.sectMap[".text:_c_int00"].loadSegment = "L2SRAM";
     Program.sectMap[".text:_c_int00"].loadAlign = 0x400;
index 04642c1f9cf94e6882a06d7d21a86d4a9ed4b923..f2bea45df2b344508bec40b4a7c5d42dd28089a3 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, Texas Instruments Incorporated
+ * Copyright (c) 2013-2014, Texas Instruments Incorporated
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -33,6 +33,7 @@
 var nameList = "";
 switch (Program.cpu.deviceName) {
     case "TMS320TCI6614":
+    case "TMS320TCI6630K2L":
         nameList = ["CORE0", "CORE1", "CORE2", "CORE3"];
         break;
 
index b442e43967ac9dbb477649eb944744741d53f7fb..ec4caf3181597904fad5fb83accbd6760e0e89d8 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013, Texas Instruments Incorporated
+ * Copyright (c) 2012-2014, Texas Instruments Incorporated
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -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.evmTCI6630K2L/)) ||
               (platform.match(/^ti.platforms.evmTCI6638K2K/)) ||
               (platform.match(/^ti.platforms.evmTCI6636K2H/)) ||
               (platform.match(/^ti\.platform\.omap54xx/)) ||
@@ -508,6 +509,7 @@ for (var i = 0; i < Build.targets.length; i++) {
 
         /* messageq_multicore - only for our homogeneous multicore platforms */
         if (platform.match(/^ti\.platforms\.simKepler/) ||
+                (platform.match(/^ti.platforms.evmTCI6630K2L/)) ||
                 (platform.match(/^ti.platforms.evmTCI6638K2K/)) ||
                 (platform.match(/^ti.platforms.evmTCI6636K2H/)) ||
                 (platform.match(/^ti\.platforms\.evm6614\:DSP/))) {
index 7afae90b875c58dfa4dcf629dc9eca58e5e0407e..2d5a62b683b5112ced1ca72c19367c625203ec1b 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013, Texas Instruments Incorporated
+ * Copyright (c) 2012-2014, Texas Instruments Incorporated
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -131,15 +131,27 @@ else if (Program.platformName.match(/6614/)) {
     */
 }
 else if (Program.platformName.match(/simKepler/) ||
-        Program.platformName.match(/evmTCI6636K2H/) ||
-        Program.platformName.match(/evmTCI6638K2K/)) {
+        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');
 
     /* Note: MultiProc_self is set during VirtQueue_init based on DNUM. */
     var MultiProc = xdc.useModule('ti.sdo.utils.MultiProc');
-    MultiProc.setConfig(null, ["HOST", "CORE0", "CORE1", "CORE2", "CORE3",
-                               "CORE4", "CORE5", "CORE6", "CORE7"]);
+
+    switch (Program.cpu.deviceName) {
+        case "TMS320TCI6630":
+            MultiProc.setConfig(null,
+                    ["HOST", "CORE0", "CORE1", "CORE2", "CORE3"]);
+            break;
+
+        case "TMS320TCI6636":
+        case "TMS320TCI6638":
+            MultiProc.setConfig(null,
+                    ["HOST", "CORE0", "CORE1", "CORE2", "CORE3",
+                    "CORE4", "CORE5", "CORE6", "CORE7"]);
+            break;
+    }
+
     Program.sectMap[".text:_c_int00"] = new Program.SectionSpec();
     Program.sectMap[".text:_c_int00"].loadSegment = "L2SRAM";
     Program.sectMap[".text:_c_int00"].loadAlign = 0x400;
index cc8d1eb56bac5a2c2f48c8aafb7de076ebc23cf6..26df3dc5fd4a561c659db759f68fb9ecfebe2934 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, Texas Instruments Incorporated
+ * Copyright (c) 2013-2014, Texas Instruments Incorporated
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -140,7 +140,8 @@ var deviceAliases = {
                            'TMS320TCI6618',
                            'TMS320TCI6614',
                            'TMS320C6657'],
-    'TMS320TCI6634'     : ['TMS320TCI6636',
+    'TMS320TCI6634'     : ['TMS320TCI6630K2L',
+                           'TMS320TCI6636',
                            'TMS320TCI6638',
                            'Kepler'],
     'LM3.*'             : ['LM4.*'],
@@ -175,6 +176,7 @@ var procNames = {
                            "CORE4", "CORE5", "CORE6", "CORE7"],
     'Kepler'            : ["HOST", "CORE0", "CORE1", "CORE2", "CORE3",
                            "CORE4", "CORE5", "CORE6", "CORE7"],
+    'TMS320TCI6630K2L'  : ["HOST", "CORE0", "CORE1", "CORE2", "CORE3"],
 
     'TMS320C6674'       : ["CORE0", "CORE1", "CORE2", "CORE3"],
     'TMS320C6678'       : ["CORE0", "CORE1", "CORE2", "CORE3",
@@ -242,6 +244,7 @@ var hostProcNames = {
     'TMS320C6472'       : ["CORE0"],
     'TMS320C6474'       : ["CORE0"],
     'F28M3.*'           : ["M3"],
+    'TMS320TCI6630K2L'  : ["HOST"],
     'TMS320TCI6634'     : ["CORE0"],
     'TMS320TCI6636'     : ["HOST0"],
     'TMS320TCI6638'     : ["HOST0"],
index 880bc340477e8843d708ec02968f279b3919805e..48e97a56c611541c1b54509c06d1f4cc070964c3 100644 (file)
@@ -1,5 +1,5 @@
 #
-#   Copyright (c) 2012-2013, Texas Instruments Incorporated
+#   Copyright (c) 2012-2014, Texas Instruments Incorporated
 #
 #   Redistribution and use in source and binary forms, with or without
 #   modification, are permitted provided that the following conditions
@@ -41,7 +41,7 @@ DEPOT ?= _your_depot_folder_
 
 # Platform to build for
 #   Supported platforms (choose one):
-#       OMAPL138, OMAP54XX, DRA7XX, TCI6636, TCI6638
+#       OMAPL138, OMAP54XX, DRA7XX, TCI6630, TCI6636, TCI6638
 #
 # Note, this is used for Linux, QNX and BIOS builds
 #