]> Gitweb @ Texas Instruments - Open Source Git Repositories - git.TI.com/gitweb - ipc/ipcdev.git/blobdiff - ipc-bios.bld
nsremote: Add additional check to handle assert disabled
[ipc/ipcdev.git] / ipc-bios.bld
index 5e3501528283f9f38a09efbed5979f42d1a93773..afaecda5264fc228b18f1c427d284be1e42a204b 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011-2013, Texas Instruments Incorporated
+ * Copyright (c) 2011-2018 Texas Instruments Incorporated - http://www.ti.com
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -67,7 +67,7 @@ var Build = xdc.useModule('xdc.bld.BuildEnvironment');
 var Pkg = xdc.useModule('xdc.bld.PackageContents');
 
 /* Common ccopts suffix used for all C6x targets */
-var c6xOpts = " -mi10 -mo -pdr -pden -pds=238 -pds=880 -pds1110 -g ";
+var c6xOpts = " -mi10 -mo -pdr -pden -pds=238 -pds=880 -pds1110 -g --mem_model:const=data --mem_model:data=far ";
 
 /*
  * -mi10 => maximum cycles that interrupts may be disabled is 10
@@ -76,21 +76,18 @@ var c6xOpts = " -mi10 -mo -pdr -pden -pds=238 -pds=880 -pds1110 -g ";
  * -pden => show remark ids
  * -pds=238 => ignore "controlling expression is constant"
  * -pds=880 => ignore "unused parameter"
+ * --mem_model:const=data => Const objects are placed according to the
+ * --mem_model:data option
+ * --mem_model:data=far => Data accesses default to far
  */
 
 var ccOpts = {
-    "ti.targets.C28_large"            : " -mo -g ",
-    "ti.targets.C28_float"            : " -mo -g ",
-
     "ti.targets.C64P"                 : c6xOpts,
-    "ti.targets.C64P_big_endian"      : c6xOpts,
     "ti.targets.C674"                 : c6xOpts,
 
     "ti.targets.elf.C64P"             : c6xOpts,
-    "ti.targets.elf.C64P_big_endian"  : c6xOpts,
     "ti.targets.elf.C64T"             : c6xOpts,
     "ti.targets.elf.C66"              : c6xOpts,
-    "ti.targets.elf.C66_big_endian"   : c6xOpts,
     "ti.targets.elf.C674"             : c6xOpts,
 
     "ti.targets.arm.elf.Arm9"         : " -ms -g ",
@@ -99,29 +96,27 @@ var ccOpts = {
     "ti.targets.arm.elf.M3"           : " --embed_inline_assembly -ms -pds=71",
     "ti.targets.arm.elf.M4"           : " -ms -g ",
     "ti.targets.arm.elf.M4F"          : " -ms -g ",
+    "ti.targets.arm.elf.R5F"          : " -ms -g ",
 
     "ti.targets.arp32.elf.ARP32"      : " -g ",
     "ti.targets.arp32.elf.ARP32_far"  : " -g ",
 
     "gnu.targets.arm.A8F"             : " -g ",
-    "gnu.targets.arm.A15F"            : " -g "
+    "gnu.targets.arm.A15F"            : " -g ",
+    "gnu.targets.arm.A53F"            : " -g "
 };
 
 var lnkOpts = {
     "ti.targets.elf.C66"              : " --cinit_compression=off",
     "ti.targets.arm.elf.M4"           : " --retain=.resource_table" +
+                                        " --cinit_compression=off",
+    "ti.targets.arm.elf.R5F"          : " --retain=.resource_table" +
                                         " --cinit_compression=off"
 };
 
-/* Enable building SMP-BIOS enabled libraries for targets that support it */
-if (Pkg.name.match(/^ti\.sdo\.(ipc|utils)/)) {
-    xdc.module("ti.targets.arm.elf.M3").profiles["smp"] =
-            xdc.module("ti.targets.arm.elf.M3").profiles["debug"];
-    xdc.module("ti.targets.arm.elf.M4").profiles["smp"] =
-            xdc.module("ti.targets.arm.elf.M4").profiles["debug"];
-}
-
 var platform = "";
+var smpEnabled = true;
+var Bld_goal = "";
 
 /* initialize local vars with those set in xdcpaths.mak (via XDCARGS) */
 for (arg = 0; arg < arguments.length; arg++) {
@@ -135,6 +130,20 @@ for (arg = 0; arg < arguments.length; arg++) {
         platform = configParts[0].split("=")[1];
         continue;
     }
+    else if (configParts[0].split("=")[0] == "BIOS_SMPENABLED") {
+        // print("FOUND SMP_ENABLED ARG - " + configParts[0]);
+        smpEnabled = configParts[0].split("=")[1].match(/^1$/);
+        continue;
+    }
+    else if (configParts[0].split("=")[0] == "GOAL") {
+        Bld_goal = configParts[0].split("=")[1];
+        continue;
+    }
+
+    if (platform == "") {
+        platform = "NONE";
+    }
+
     /*
      * Get the compiler's installation directory.
      * For "ti.targets.elf.C674=/vendors/c6x/7.2.0", we get "/vendors/c6x/7.2.0"
@@ -147,7 +156,8 @@ for (arg = 0; arg < arguments.length; arg++) {
         continue;
     }
 
-//    print("Building '" + targetName + "' using '" + rootDir + "' ...");
+//    print("Building for platform:" + platform + " targetName:" + targetName
+//            + " rootDir: " + rootDir + " smpEnabled:" + smpEnabled + "...");
 
     var target = xdc.useModule(targetName);
     target.rootDir = rootDir;
@@ -175,49 +185,96 @@ for (arg = 0; arg < arguments.length; arg++) {
 
     /* Add appropriate platforms to build for based on target name */
     if (targetName.match(/elf\.C674/)) {
-        if (platform == 'omapl138') {
+        if (platform == 'OMAPL138') {
             target.platforms.$add("ti.platforms.evmOMAPL138:DSP");
         }
     }
 
     if (targetName.match(/elf\.C66$/)) {
         switch (platform) {
-            case 'tci6636':
-                target.platforms.$add("ti.platforms.evmTCI6636K2H");
+            case '66AK2G':
+                target.platforms.$add("ti.platforms.evmTCI66AK2G02:core0");
                 break;
 
-            case 'tci6638':
-                target.platforms.$add("ti.platforms.evmTCI6638K2K");
+            case '66AK2E':
+                target.platforms.$add("ti.platforms.evmC66AK2E:core0");
                 break;
 
-            case 'dra7xx':
+            case 'TCI6630':
+                target.platforms.$add("ti.platforms.evmTCI6630K2L:core0");
+                break;
+
+            case 'TCI6636':
+                target.platforms.$add("ti.platforms.evmTCI6636K2H:core0");
+                break;
+
+            case 'TCI6638':
+                target.platforms.$add("ti.platforms.evmTCI6638K2K:core0");
+                break;
+
+            case 'C6678':
+                target.platforms.$add("ti.platforms.evm6678");
+                break;
+
+            case 'DRA7XX':
                 target.platforms.$add("ti.platforms.evmDRA7XX:dsp1");
+                target.platforms.$add("ti.platforms.evmDRA7XX:dsp2");
+                break;
+
+            case 'TDA3XX':
+                target.platforms.$add("ti.platforms.evmTDA3XX");
+                break;
+
+            case 'NONE':
+                /* okay, no platform specified */
                 break;
 
             default:
-                print("Unknown platform, skipping " + platform);
+                print("Unknown C66x platform, skipping " + platform);
                 break;
         }
     }
 
     if (targetName.match(/elf\.C64T/)) {
-        if (platform == 'omap54xx_smp') {
+        if (platform == 'OMAP54XX') {
             target.platforms.$add("ti.platforms.sdp5430:DSP");
         }
     }
 
     if (targetName.match(/elf\.M4$/)) {
         switch (platform) {
-            case 'omap54xx_smp':
+            case 'OMAP54XX':
                 target.platforms.$add("ti.platforms.sdp5430:IPU");
                 break;
 
-            case 'dra7xx':
+            case 'DRA7XX':
                 target.platforms.$add("ti.platforms.evmDRA7XX:ipu2");
+                target.platforms.$add("ti.platforms.evmDRA7XX:ipu1");
+                break;
+
+            case 'TDA3XX':
+                target.platforms.$add("ti.platforms.evmTDA3XX");
+                break;
+
+            case 'NONE':
+                /* okay, no platform specified */
+                break;
+
+            default:
+                print("Unknown M4 platform, skipping " + platform);
+                break;
+        }
+    }
+
+    if (targetName.match(/elf\.R5F$/)) {
+        switch (platform) {
+            case 'AM65XX':
+                target.platforms.$add("ti.platforms.cortexR:AM65X:false:R5F0");
+                target.platforms.$add("ti.platforms.cortexR:AM65X:false:R5F1");
                 break;
 
             default:
-                print("Unknown platform, skipping " + platform);
+                print("Unknown R5F platform, skipping " + platform);
                 break;
         }
     }
@@ -225,6 +282,19 @@ for (arg = 0; arg < arguments.length; arg++) {
     Build.targets.$add(target);
 }
 
+if (smpEnabled) {
+    /* Enable building SMP-BIOS enabled libraries for targets that support it */
+    if (Pkg.name.match(/^ti\.sdo\.(ipc|utils)/)) {
+        xdc.module("ti.targets.arm.elf.M3").profiles["smp"] =
+                xdc.module("ti.targets.arm.elf.M3").profiles["debug"];
+        xdc.module("ti.targets.arm.elf.M4").profiles["smp"] =
+                xdc.module("ti.targets.arm.elf.M4").profiles["debug"];
+        xdc.module("gnu.targets.arm.A15F").profiles["smp"] =
+                xdc.module("gnu.targets.arm.A15F").profiles["debug"];
+        xdc.module("gnu.targets.arm.A53F").profiles["smp"] =
+                xdc.module("gnu.targets.arm.A53F").profiles["debug"];
+    }
+}
 
 /* lib/ is a generated directory that 'xdc clean' should remove */
 Pkg.generatedFiles.$add("lib/");
@@ -245,3 +315,6 @@ for (var t = 0; t < Build.targets.length; t++) {
 /* -----------------------------------------------------------------------*/
 /* make release files '.tar.gz' files (.tar is default) */
 Pkg.attrs.compress = true;
+
+/* catch inadvertant use of unsupported data types */
+Pkg.attrs.defs = "-Dxdc__strict";