summaryrefslogblamecommitdiffstats
blob: e4612a92f8dbad0f51ee2e34e0f602b50f6cab51 (plain) (tree)
1
2
3
4
5
6
7
8
9
10









                                                                                
                                                    



                                                                                
                                                                        


                                                                     
                                                                       

                                                                   















                                                                  


                                                                






                                                                                                                    


                                 


                                                             
                                             

                                                                    
 






                                                                     


                                                                    
                                                         

                                                                   



                                                              
                                                                                                                                                                                                          

                                                                        



                                                            
                                                                                                                                                                                                       

                                                                     



                                                            
                                                                                                                                                                                                       

                                                                     



                                                              
                                                           

                                                                     
 







                                                
                   
                                                    
                                              
                                              
                                                
                                              
                            






                              

                                            
                                            
                                             

                                                  

                            

   
                               





                                                        
                   





                              
                                                    
                          


      
                         




                              

                                                       





                              
                                             
                   


      





                                                                                       
                                         
                                  








                                                                                       
                                         
                                                         








                                                                                       
                                         
                                                 




                                           










                                                                                       


                                                                                       
                          
                                         
                                         



                                           



                                                                                    
                         
                                         
                                                 


                                           
                                       



                                                                                    
                          
                                         
                                                         


                                           
                                       




                                                                                    
                                         
                                                         


                                           
                                       




                                                                                    
                                         
                                                         

                                           










                                                                                    
                         
                                       











                                                                                         










                                                                                         








                                                                                    
                                









                                                                                    
                                











                                                   
   
     

























                                                                             
  
 




































                                                                                                          
/******************************************************************************
 * FILE PURPOSE: Build configuration Script for the osal Driver
 ******************************************************************************
 * FILE NAME: config.bld
 *
 * DESCRIPTION: 
 *  This file contains the build configuration script for the osal driver
 *  and is responsible for configuration of the paths for the various 
 *  tools required to build the driver.
 *
 * Copyright (C) 2014-2019, Texas Instruments, Inc.
 *****************************************************************************/

/* Get the Tools Base directory from the Environment Variable. */
var c66ToolsBaseDir = java.lang.System.getenv("C6X_GEN_INSTALL_PATH");
var c674ToolsBaseDir = java.lang.System.getenv("C6X_GEN_INSTALL_PATH");
var m4ToolsBaseDir = java.lang.System.getenv("TOOLCHAIN_PATH_M4");
var a15ToolsBaseDir = java.lang.System.getenv("TOOLCHAIN_PATH_A15");
var a9ToolsBaseDir = java.lang.System.getenv("TOOLCHAIN_PATH_A9");
var arm9ToolsBaseDir = java.lang.System.getenv("TOOLCHAIN_PATH_ARM9");
var a8ToolsBaseDir = java.lang.System.getenv("TOOLCHAIN_PATH_A8");

/* Get the extended debug flags for C66x, 
 * did not change the name for backwards compatibilty */
var extDbgFlags = java.lang.System.getenv("EXTDBGFLAGS");

/* Get the extended debug flags for A15 */
var extDbgFlags_a15 = java.lang.System.getenv("EXTDBGFLAGS_A15");

/* Get the extended debug flags for A8 */
var extDbgFlags_a8 = java.lang.System.getenv("EXTDBGFLAGS_A8");

/* Get the extended debug flags for A9 */
var extDbgFlags_a9 = java.lang.System.getenv("EXTDBGFLAGS_A9");

/* Get the extended debug flags for M4 */
var extDbgFlags_m4 = java.lang.System.getenv("EXTDBGFLAGS_M4");

/* Get the base directory for the osal Socket Driver Package */
var osalDriverPath = new java.io.File(".//").getPath();

/* Include Path */
var osalIncludePath = " -I" + osalDriverPath + "/src" + " -I" + osalDriverPath  + " -I" + osalDriverPath + "/test";

/* Configure the osal Socket Release Version Information */
/* 3 steps: remove SPACE and TAB, convert to string and split to make array */
var osalDriverReleaseVersion = (""+Pkg.version.replace(/\s/g, "")).split(',');

/* Print the Compiler Options */
var pOpts = 1;

/* C66 ELF compiler configuration for Little Endian Mode. */
var C66LE           = xdc.useModule('ti.targets.elf.C66');
C66LE.rootDir       = c66ToolsBaseDir;
C66LE.ccOpts.prefix = "-mo -o3 -q -k -eo.o";
if(extDbgFlags)     
    C66LE.ccOpts.prefix = C66LE.ccOpts.prefix + " " + extDbgFlags; 

/* C674 ELF compiler configuration for Little Endian Mode. */
var C674LE          = xdc.useModule('ti.targets.elf.C674');
C674LE.rootDir       = c674ToolsBaseDir;
C674LE.ccOpts.prefix = "-mo -o3 -q -k -eo.o";
if(extDbgFlags)
    C674LE.ccOpts.prefix = C674LE.ccOpts.prefix + " " + extDbgFlags;

/* C66 ELF compiler configuration for Big Endian Mode. */
var C66BE         = xdc.useModule('ti.targets.elf.C66_big_endian');
C66BE.rootDir       = c66ToolsBaseDir;
C66BE.ccOpts.prefix = "-mo -o3 -q -k -eo.o -DBIGENDIAN";
if(extDbgFlags)     
    C66BE.ccOpts.prefix = C66BE.ccOpts.prefix + " " + extDbgFlags;

/* ARMv7 A15 compiler configuration */
var A15LE            = xdc.useModule('gnu.targets.arm.A15F');
A15LE.rootDir        = a15ToolsBaseDir;
A15LE.ccOpts.prefix  = "-mno-unaligned-access -c -mtune=cortex-a15 -marm -DDRA7xx -Dxdc_target_types__=gnu/targets/arm/std.h -Dxdc_target_name__=A15F -gstrict-dwarf -Wall -D__ARMv7 -D_LITTLE_ENDIAN=1";
if(extDbgFlags_a15)     
    A15LE.ccOpts.prefix = A15LE.ccOpts.prefix + " " + extDbgFlags_a15; 

/* ARMv7 A9 compiler configuration */
var A9LE            = xdc.useModule('gnu.targets.arm.A9F');
A9LE.rootDir        = a9ToolsBaseDir;
A9LE.ccOpts.prefix  = "-mno-unaligned-access -c -mtune=cortex-a9 -marm -DDRA7xx -Dxdc_target_types__=gnu/targets/arm/std.h -Dxdc_target_name__=A9F -gstrict-dwarf -Wall -D__ARMv7 -D_LITTLE_ENDIAN=1";
if(extDbgFlags_a9)     
    A9LE.ccOpts.prefix = A9LE.ccOpts.prefix + " " + extDbgFlags_a9; 

/* ARMv7 A8 compiler configuration */
var A8LE            = xdc.useModule('gnu.targets.arm.A8F');
A8LE.rootDir        = a8ToolsBaseDir;
A8LE.ccOpts.prefix  = "-mno-unaligned-access -c -mtune=cortex-a8 -marm -DDRA7xx -Dxdc_target_types__=gnu/targets/arm/std.h -Dxdc_target_name__=A8F -gstrict-dwarf -Wall -D__ARMv7 -D_LITTLE_ENDIAN=1";
if(extDbgFlags_a8)     
    A8LE.ccOpts.prefix = A8LE.ccOpts.prefix + " " + extDbgFlags_a8; 

/* M4 ELF compiler configuration for Little Endian Mode. */
var M4LE            = xdc.useModule('ti.targets.arm.elf.M4');
M4LE.rootDir        = m4ToolsBaseDir;
M4LE.ccOpts.prefix  = "-o4 -qq -pdsw255 -DMAKEFILE_BUILD";
if(extDbgFlags_m4)
    M4LE.ccOpts.prefix = M4LE.ccOpts.prefix + " " + extDbgFlags_m4; 

/* Create the Operating System Support List  */
var osTypes = { 
    /* TI RTOS */
    tirtos :
    {
        /* Library options */
        copts: "-DTIRTOS",
        /* Souce File List */
        srcFile: [
		  "src/tirtos/SemaphoreP_tirtos.c",
                  "src/tirtos/HwiP_tirtos.c",
                  "src/tirtos/SwiP_tirtos.c",
                  "src/tirtos/CacheP_tirtos.c",
                  "src/tirtos/Utils_tirtos.c"
		 ],        
    },
    /* Bare metal */
    nonos :
    {
        /* Library options */
        copts: "-DNONOS",
        /* Souce File List */
        srcFile: [
              	  "src/nonos/HwiP_nonos.c",
              	  "src/nonos/SwiP_nonos.c",
                  "src/nonos/Utils_nonos.c",
                  "src/nonos/SemaphoreP_nonos.c",
                  "src/nonos/CacheP_nonos.c"
                 ],        
    }
};

var keyStoneFamilySrcFiles = {
    /* TI RTOS */
    tirtos :
    {
        /* Souce File List */
        srcFile: [
		            "src/v0/MuxIntcP_tirtos.c",
                 ]
    },
    /* Bare metal */
    nonos :
    {
        /* Souce File List */
        srcFile: [
		          "src/v0/MuxIntcP_nonos.c"
                 ]       
    }
};

var amFamilySrcFiles = {
    /* TI RTOS */
    tirtos :
    {
        /* Souce File List */
        srcFile: [
		            "src/v1/MuxIntcP_tirtos.c"
                 ]      
    },
    /* Bare metal */
    nonos :
    {
        /* Souce File List */
        srcFile: [
                  "src/v1/MuxIntcP_nonos.c",
                 ]
    }
};

/* Create the SoC List  */
var socs = { 
    am335x :
    {
        /* this variable would be reinitialized to true, if XDCARGS contains am335x */
        build: "false",
		/* Device Family Type */
		familyType: "am",
        /* SoC specific defines go here */
        copts: "-DSOC_AM335x",        
        /* target list */
        targets: [ A8LE ]
    },
    am437x :
    {
        /* this variable would be reinitialized to true, if XDCARGS contains am437x */
        build: "false", 
		/* Device Family Type */
		familyType: "am",			
        /* SoC specific defines go here */
        copts: "-DSOC_AM437x",           
        /* target list */
        targets: [ A9LE ]
   },
   am572x :
    {
        /* this variable would be reinitialized to true, if XDCARGS contains am572x */
        build: "false", 
		/* Device Family Type */
		familyType: "am",		
        /* SoC specific defines go here */
        copts: "-DSOC_AM572x",           
       /* target list */
       targets: [ C66LE, A15LE, M4LE]
    },
   am574x :
    {
        /* this variable would be reinitialized to true, if XDCARGS contains am574x */
        build: "false", 
		/* Device Family Type */
		familyType: "am",		
        /* SoC specific defines go here */
        copts: "-DSOC_AM574x",           
       /* target list */
       targets: [ C66LE, A15LE, M4LE]
    },
   am571x :
    {
        /* this variable would be reinitialized to true, if XDCARGS contains am571x */
        build: "false",  
		/* Device Family Type */
		familyType: "am",	
        /* SoC specific defines go here */
        copts: "-DSOC_AM571x",           
       /* target list */
       targets: [ C66LE, A15LE, M4LE]
    },    
   k2h :
    {
        /* this variable would be reinitialized to true, if XDCARGS contains k2h */
        build: "false", 
		/* Device Family Type */
		familyType: "keystone",		
        /* SoC specific defines go here */
        copts: "-DSOC_K2H",           
       /* target list */
       targets: [ C66LE, C66BE, A15LE]
    },    
   k2k :
    {
        /* this variable would be reinitialized to true, if XDCARGS contains k2k */
        build: "false",  
		/* Device Family Type */
		familyType: "keystone",			
        /* SoC specific defines go here */
        copts: "-DSOC_K2H",           
       /* target list */
       targets: [ C66LE, C66BE, A15LE]
    },    
   k2e :
    {
        /* this variable would be reinitialized to true, if XDCARGS contains k2e */
        build: "false",     
		/* Device Family Type */
		familyType: "keystone",			
        /* SoC specific defines go here */
        copts: "-DSOC_K2E",           
       /* target list */
       targets: [ C66LE, C66BE, A15LE]
    },    
   k2l :
    {
        /* this variable would be reinitialized to true, if XDCARGS contains k2l */
        build: "false",     
		/* Device Family Type */
		familyType: "keystone",			
        /* SoC specific defines go here */
        copts: "-DSOC_K2L",           
       /* target list */
       targets: [ C66LE, C66BE, A15LE]
    },    
   k2g :
    {
        /* this variable would be reinitialized to true, if XDCARGS contains k2g */
        build: "false",     
		/* Device Family Type */
		familyType: "keystone",			
        /* SoC specific defines go here */
        copts: "-DSOC_K2G",           
       /* target list */
       targets: [ C66LE, C66BE, A15LE]
    },
	omapl137 :
    {
        /* this variable would be reinitialized to true, if XDCARGS contains omapl137 */
        build: "false",
		/* Device Family Type */
		familyType: "omap",
        /* SoC specific defines go here */
        copts: "-DSOC_OMAPL137",
       /* target list */
       targets: [ C674LE, A9LE]
    },
    omapl138 :
    {
        /* this variable would be reinitialized to true, if XDCARGS contains omapl138 */
        build: "false",
        /* Device Family Type */
        familyType: "omap",
        /* SoC specific defines go here */
        copts: "-DSOC_OMAPL138",
        /* target list */
        targets: [ C674LE, A9LE]
    },
   c6678 :
    {
        /* this variable would be reinitialized to true, if XDCARGS contains k2l */
        build: "false",     
		/* Device Family Type */
		familyType: "keystone",			
        /* SoC specific defines go here */
        copts: "-DSOC_C6678",           
       /* target list */
       targets: [ C66LE, C66BE]
    },    
   c6657 :
    {
        /* this variable would be reinitialized to true, if XDCARGS contains k2l */
        build: "false",     
		/* Device Family Type */
		familyType: "keystone",			
        /* SoC specific defines go here */
        copts: "-DSOC_C6657",           
       /* target list */
       targets: [ C66LE, C66BE]
    },
	c6747 :
	{
		/* Build this library */
        build: "false",
		/* Device Family Type */
		familyType: "omap",
		/* SoC specific defines go here */
        copts: "-DSOC_C6747",
        /* target list */
        targets: [ C674LE]
	}
};
    
/**************************************************************************
 * FUNCTION NAME : merge
 **************************************************************************
 * DESCRIPTION   :
 *  The function is used to merge two arrarys
 **************************************************************************/
function merge() {
    var args = arguments;
    var hash = {};
    var arr = [];
    for (var i = 0; i < args.length; i++) {
       for (var j = 0; j < args[i].length; j++) {
         if (hash[args[i][j]] !== true) {
           arr[arr.length] = args[i][j];
           hash[args[i][j]] = true;
         }
       }
     }
    return arr;
}

/* Grab input from XDCARGS */
var buildArguments  = [];

/* Construct the build arguments */
for (var tmp=0; arguments[tmp] != undefined; tmp++)
{

    /* If no arguments are provided, override for building all */
    if ( ( arguments.length == 1) && (arguments[tmp].equals("./config.bld")) )
        buildArguments[buildArguments.length++] = "all";
    else
        buildArguments[buildArguments.length++] = arguments[tmp];
}

/* Build targets on this build */
var build_targets = [];
var soc_names = Object.keys(socs);
var os_names  = Object.keys(osTypes);

for (var i=0; i < buildArguments.length; i++ ) {
    /* Build it for all targets */
    if (buildArguments[i] == "all") {
        for (var j = 0; j < soc_names.length; j++)  {
            build_targets = merge (build_targets.slice(0), socs[soc_names[j]].targets.slice(0));
            /* Set build to "true" for that SoC */
            socs[soc_names[j]].build = "true";
        }
    }
    else {
        /* Skip the first argument, which is ./config.bld to get to next SoCs */
        if (i == 0) continue;          
        /* Set that build to true if it is found in supported build socs */
        for (j = 0; j < soc_names.length; j++) {
            if (buildArguments[i] == soc_names[j]) {
                socs[buildArguments[i]].build = "true";
                build_targets = merge (build_targets.slice(0), socs[buildArguments[i]].targets.slice(0));
                break;
            }
        }
    }   
}

/* Update the Build target generated list */
Build.targets   = build_targets;