diff --git a/config.bld b/config.bld
--- a/config.bld
+++ b/config.bld
/******************************************************************************\r
- * FILE PURPOSE: Build configuration Script for the RM LLD\r
+ * FILE PURPOSE: Build configuration Script for the RM\r
******************************************************************************\r
* FILE NAME: config.bld\r
*\r
* DESCRIPTION: \r
- * This file contains the build configuration script for RM LLD \r
+ * This file contains the build configuration script for RM \r
* and is responsible for configuration of the paths for the various tools\r
- * required to build RM LLD.\r
+ * required to build RM.\r
*\r
- * Copyright (C) 2012, Texas Instruments, Inc.\r
+ * Copyright (C) 2012-2015, Texas Instruments, Inc.\r
*****************************************************************************/\r
\r
/* Get the Tools Base directory from the Environment Variable. */\r
-var toolsBaseDir = java.lang.System.getenv("XDCCGROOT");\r
+var c66ToolsBaseDir = java.lang.System.getenv("C6X_GEN_INSTALL_PATH");\r
+var m4ToolsBaseDir = java.lang.System.getenv("TOOLCHAIN_PATH_M4");\r
+var a15ToolsBaseDir = java.lang.System.getenv("TOOLCHAIN_PATH_A15");\r
+var a9ToolsBaseDir = java.lang.System.getenv("TOOLCHAIN_PATH_A9");\r
+var a8ToolsBaseDir = java.lang.System.getenv("TOOLCHAIN_PATH_A8");\r
\r
-/* Get the base directory for the RM LLD Package */\r
+/* Get the extended debug flags for C66x, \r
+ * did not change the name for backwards compatibilty */\r
+var extDbgFlags = java.lang.System.getenv("EXTDBGFLAGS");\r
+\r
+/* Get the extended debug flags for A15 */\r
+var extDbgFlags_a15 = java.lang.System.getenv("EXTDBGFLAGS_A15");\r
+\r
+/* Get the extended debug flags for A8 */\r
+var extDbgFlags_a8 = java.lang.System.getenv("EXTDBGFLAGS_A8");\r
+\r
+/* Get the extended debug flags for A9 */\r
+var extDbgFlags_a9 = java.lang.System.getenv("EXTDBGFLAGS_A9");\r
+\r
+/* Get the extended debug flags for M4 */\r
+var extDbgFlags_m4 = java.lang.System.getenv("EXTDBGFLAGS_M4");\r
+\r
+/* Get the base directory for the RM Package */\r
var lldPath = new java.io.File(".//").getPath();\r
\r
var lldInstallType;\r
var lldPartNumber = java.lang.System.getenv("PARTNO");\r
\r
/* Include Path */\r
-var lldIncludePath = " -i" + lldPath + "/src" + " -i" + lldPath + " -i" + lldPath + "/test";\r
+var lldIncludePath = " -I" + lldPath + "/src" + " -I" + lldPath + " -I" + lldPath + "/test" + " -I" + lldPath + "/util/libfdt";\r
\r
-/* Configure the RM LLD Release Version Information */\r
+/* Configure the RM Release Version Information */\r
/* 3 steps: remove SPACE and TAB, convert to string and split to make array */\r
var lldReleaseVersion = (""+Pkg.version.replace(/\s/g, "")).split(',');\r
\r
-/* RM LLD Coverity Analysis: Check the environment variable to determine if Static\r
- * Analysis has to be done on the RM LLD Code base or not? */\r
+/* RM Coverity Analysis: Check the environment variable to determine if Static\r
+ * Analysis has to be done on the RM Code base or not? */\r
var lldCoverityAnalysis = java.lang.System.getenv("LLDCOV");\r
\r
/* C66 ELF compiler configuration for Little Endian Mode. */\r
var C66LE = xdc.useModule('ti.targets.elf.C66');\r
-C66LE.rootDir = toolsBaseDir;\r
-C66LE.ccOpts.prefix = "-mo -o3 -q -k -eo.o";\r
+C66LE.rootDir = c66ToolsBaseDir;\r
+C66LE.ccOpts.prefix = "-mo -o3 --gcc -q -k -eo.o";\r
+if(extDbgFlags) \r
+ C66LE.ccOpts.prefix = C66LE.ccOpts.prefix + " " + extDbgFlags; \r
\r
-/* C66 ELF compiler configuration for Big Endian Mode. */\r
-var C66BE = xdc.useModule('ti.targets.elf.C66_big_endian');\r
-C66BE.rootDir = toolsBaseDir;\r
-C66BE.ccOpts.prefix = "-mo -o3 -q -k -eo.o -DBIGENDIAN";\r
+/* ARMv7 A15 compiler configuration */\r
+var A15LE = xdc.useModule('gnu.targets.arm.A15F');\r
+A15LE.rootDir = a15ToolsBaseDir;\r
+A15LE.ccOpts.prefix = "-mno-unaligned-access -c -mtune=cortex-a15 -marm -DDRA7xx -gstrict-dwarf -Wall -D__ARMv7 -D_LITTLE_ENDIAN=1";\r
+if(extDbgFlags_a15) \r
+ A15LE.ccOpts.prefix = A15LE.ccOpts.prefix + " " + extDbgFlags_a15; \r
+\r
+/* ARMv7 A9 compiler configuration */\r
+var A9LE = xdc.useModule('gnu.targets.arm.A9F');\r
+A9LE.rootDir = a9ToolsBaseDir;\r
+A9LE.ccOpts.prefix = "-mno-unaligned-access -c -mtune=cortex-a9 -marm -DDRA7xx -gstrict-dwarf -Wall -D__ARMv7 -D_LITTLE_ENDIAN=1";\r
+if(extDbgFlags_a9) \r
+ A9LE.ccOpts.prefix = A9LE.ccOpts.prefix + " " + extDbgFlags_a9; \r
+\r
+/* ARMv7 A8 compiler configuration */\r
+var A8LE = xdc.useModule('gnu.targets.arm.A8F');\r
+A8LE.rootDir = a8ToolsBaseDir;\r
+A8LE.ccOpts.prefix = "-mno-unaligned-access -c -mtune=cortex-a8 -marm -DDRA7xx -gstrict-dwarf -Wall -D__ARMv7 -D_LITTLE_ENDIAN=1";\r
+if(extDbgFlags_a8) \r
+ A8LE.ccOpts.prefix = A8LE.ccOpts.prefix + " " + extDbgFlags_a8; \r
+\r
+/* M4 ELF compiler configuration for Little Endian Mode. */\r
+var M4LE = xdc.useModule('ti.targets.arm.elf.M4');\r
+M4LE.rootDir = m4ToolsBaseDir;\r
+M4LE.ccOpts.prefix = "-o4 -qq -pdsw255 -DMAKEFILE_BUILD";\r
+if(extDbgFlags_m4)\r
+ M4LE.ccOpts.prefix = M4LE.ccOpts.prefix + " " + extDbgFlags_m4; \r
\r
/* Check if we need to run the STATIC Analysis or not? */\r
var coverityAnalysis = java.lang.System.getenv("STATIC_ANALYZE");\r
\r
C66LE.profiles["release"].filters[C66LE.profiles["release"].filters.length++] = makeC66LEFilter;\r
\r
- var makeC66BEFilter = {\r
- moduleName: "build.filter.Make",\r
- params: {\r
- makefileName: "simpleC66BE.mak",\r
- }\r
- }; \r
+}\r
\r
- C66BE.profiles["release"].filters[C66BE.profiles["release"].filters.length++] = makeC66BEFilter;\r
+/* Create the SoC List */\r
+var socs = { \r
+ /* device independent libraries */\r
+ all :\r
+ {\r
+ /* Build this library */\r
+ build: "true",\r
+ /* SoC lib enabled */\r
+ socDevLib: "false",\r
+ /* dma lib enabled */\r
+ dmaDevLib: "false", \r
+ /* Library options */\r
+ copts: "",\r
+ /* target lists, kept blank now, would be updated based on argument lists */\r
+ targets: []\r
+ },\r
+ k2g :\r
+ {\r
+ /* this variable would be reinitialized to true, if XDCARGS contains k2g */\r
+ build: "false", \r
+ /* SoC lib enabled */\r
+ socDevLib: "false",\r
+ /* dma lib enabled */\r
+ dmaDevLib: "false", \r
+ /* Library options */\r
+ copts: " -DSOC_K2G",\r
+ /* target list */\r
+ targets: [ C66LE, A15LE]\r
+ },\r
+ k2h :\r
+ {\r
+ /* this variable would be reinitialized to true, if XDCARGS contains k2h */\r
+ build: "false", \r
+ /* SoC lib enabled */\r
+ socDevLib: "false",\r
+ /* dma lib enabled */\r
+ dmaDevLib: "false", \r
+ /* Library options */\r
+ copts: " -DSOC_K2H",\r
+ /* target list */\r
+ targets: [ C66LE, A15LE]\r
+ },\r
+ k2k :\r
+ {\r
+ /* this variable would be reinitialized to true, if XDCARGS contains k2k */\r
+ build: "false", \r
+ /* SoC lib enabled */\r
+ socDevLib: "false",\r
+ /* dma lib enabled */\r
+ dmaDevLib: "false", \r
+ /* Library options */\r
+ copts: " -DSOC_K2K",\r
+ /* target list */\r
+ targets: [ C66LE, A15LE]\r
+ },\r
+ k2e :\r
+ {\r
+ /* this variable would be reinitialized to true, if XDCARGS contains k2e */\r
+ build: "false", \r
+ /* SoC lib enabled */\r
+ socDevLib: "false",\r
+ /* dma lib enabled */\r
+ dmaDevLib: "false", \r
+ /* Library options */\r
+ copts: " -DSOC_K2E",\r
+ /* target list */\r
+ targets: [ C66LE, A15LE]\r
+ },\r
+ k2l :\r
+ {\r
+ /* this variable would be reinitialized to true, if XDCARGS contains k2l */\r
+ build: "false", \r
+ /* SoC lib enabled */\r
+ socDevLib: "false",\r
+ /* dma lib enabled */\r
+ dmaDevLib: "false", \r
+ /* Library options */\r
+ copts: " -DSOC_K2L",\r
+ /* target list */\r
+ targets: [ C66LE, A15LE]\r
+ },\r
+\r
+ c6678 :\r
+ {\r
+ /* this variable would be reinitialized to true, if XDCARGS contains k2k */\r
+ build: "false", \r
+ /* SoC lib enabled */\r
+ socDevLib: "false",\r
+ /* dma lib enabled */\r
+ dmaDevLib: "false", \r
+ /* Library options */\r
+ copts: " -DSOC_C6678",\r
+ /* target list */\r
+ targets: [ C66LE]\r
+ },\r
\r
+ c6657 :\r
+ {\r
+ /* this variable would be reinitialized to true, if XDCARGS contains k2k */\r
+ build: "false", \r
+ /* SoC lib enabled */\r
+ socDevLib: "false",\r
+ /* dma lib enabled */\r
+ dmaDevLib: "false", \r
+ /* Library options */\r
+ copts: " -DSOC_C6657",\r
+ /* target list */\r
+ targets: [ C66LE]\r
+ }\r
+};\r
+\r
+/**************************************************************************\r
+ * FUNCTION NAME : merge\r
+ **************************************************************************\r
+ * DESCRIPTION :\r
+ * The function is used to merge two arrarys\r
+ **************************************************************************/\r
+function merge() {\r
+ var args = arguments;\r
+ var hash = {};\r
+ var arr = [];\r
+ for (var i = 0; i < args.length; i++) {\r
+ for (var j = 0; j < args[i].length; j++) {\r
+ if (hash[args[i][j]] !== true) {\r
+ arr[arr.length] = args[i][j];\r
+ hash[args[i][j]] = true;\r
+ }\r
+ }\r
+ }\r
+ return arr;\r
+}\r
+\r
+/* Grab input from XDCARGS */\r
+var buildArguments = [];\r
+\r
+/* Construct the build arguments */\r
+for (var tmp=0; arguments[tmp] != undefined; tmp++)\r
+{\r
+\r
+ /* If no arguments are provided, override for building all */\r
+ if ( ( arguments.length == 1) && (arguments[tmp].equals("./config.bld")) )\r
+ buildArguments[buildArguments.length++] = "all";\r
+ else\r
+ buildArguments[buildArguments.length++] = arguments[tmp];\r
+}\r
+\r
+/* Build targets on this build */\r
+var build_targets = [];\r
+var soc_names = Object.keys(socs);\r
+\r
+for (var i=0; i < buildArguments.length; i++ ) {\r
+ /* Build it for all targets */\r
+ if (buildArguments[i] == "all") {\r
+ for (var j = 0; j < soc_names.length; j++) {\r
+ build_targets = merge (build_targets.slice(0), socs[soc_names[j]].targets.slice(0));\r
+ /* Set build to "true" for that SoC */\r
+ socs[soc_names[j]].build = "true";\r
+ }\r
+ }\r
+ else {\r
+ /* Skip the first argument, which is ./config.bld to get to next SoCs */\r
+ if (i == 0) continue; \r
+ /* Set that build to true if it is found in supported build socs */\r
+ for (j = 0; j < soc_names.length; j++) {\r
+ if (buildArguments[i] == soc_names[j]) {\r
+ socs[buildArguments[i]].build = "true";\r
+ build_targets = merge (build_targets.slice(0), socs[buildArguments[i]].targets.slice(0));\r
+ break;\r
+ }\r
+ }\r
+ } \r
}\r
\r
-/* List all the build targets here. */\r
-Build.targets = [ C66LE, C66BE ];\r
+/* Update the Build target generated list */\r
+socs["all"].targets = build_targets; \r
+Build.targets = build_targets;\r
\r