cf69bae6687d25d68c45427b7571eb779c8cf041
[processor-sdk/pdk.git] / packages / ti / drv / i2c / package.xs
1 /*
2  *  ======== package.xs ========
3  *
4  */
7 /*
8  *  ======== Package.getLibs ========
9  *  This function is called when a program's configuration files are
10  *  being generated and it returns the name of a library appropriate
11  *  for the program's configuration.
12  */
14 function getLibs(prog)
15 {
16     var suffix = prog.build.target.suffix;
17     var name = "";
18     var socType = this.Settings.socType;
19     var profilingTag = "";
20     var fwIcss0Tag = "";
22     /*
23      * The same suffix "r5f" is used for both R5f arm and thumb library
24      */
25     suffix = java.lang.String(suffix).replace('r5ft','r5f');
27     socType = socType.toLowerCase();
28     /* Replace the last charecter in SoC am#### to am###x */
29     if (socType.substring(0, 2) == "am")
30     {
31         socType = socType.substring(0, socType.length - 1);
32         socType = socType.concat("x");
33     }
35     if (this.Settings.enableProfiling == true)
36     {
37         profilingTag = ".profiling"
38     }
39     name = this.$name + profilingTag + ".a" + suffix;
41     if (this.Settings.fwIcss0 == true)
42     {
43         fwIcss0Tag = "_icss0"
44     }
45     name = this.$name + fwIcss0Tag + profilingTag + ".a" + suffix;
47     /* Read LIBDIR variable */
48     var lib = java.lang.System.getenv("LIBDIR");
50     /* If NULL, default to "lib" folder */
51     if (lib == null)
52     {
53         lib = "./lib";
54     } else {
55         print ("\tSystem environment LIBDIR variable defined : " + lib);
56     }
58     var socTypes = [
59                      'am571x',
60                      'dra72x',
61                      'dra75x',
62                      'dra78x',
63                      'am572x',
64                      'am574x',
65                      'am335x',
66                      'am437x',
67                      'k2h',
68                      'k2k',
69                      'k2e',
70                      'k2l',
71                      'k2g',
72                      'omapl137',
73                      'omapl138',
74                      'c6678',
75                      'c6657',
76                      'c6747',
77                      'am65xx',
78                      'j721e',
79                      'j7200',
80                      'am64x',
81                      'tpr12',
82                      'awr294x'
83                    ];
85     /* Get the SOC */
86     for each (var soc in socTypes)
87     {
88         if (socType.equals(soc))
89         {
90             lib = lib + "/" + soc;
91             name = this.$name + fwIcss0Tag + profilingTag + ".a" + suffix;
92             break;
93         }
94     }
96     /* Get target folder, if applicable */
97     if ( java.lang.String(suffix).contains('66') )
98         lib = lib + "/c66";
99     else if (java.lang.String(suffix).contains('a15') )
100         lib = lib + "/a15";
101     else if (java.lang.String(suffix).contains('674') )
102         lib = lib + "/c674";
103     else if (java.lang.String(suffix).contains('m4') )
104         lib = lib + "/m4";
105     else if (java.lang.String(suffix).contains('a9') )
106         lib = lib + "/a9";
107         else if (java.lang.String(suffix).contains('e9') )
108         lib = lib + "/arm9";
109     else if (java.lang.String(suffix).contains('a8') )
110         lib = lib + "/a8";
111     else if (java.lang.String(suffix).contains('a53'))
112             lib = lib + "/a53";
113         else if (java.lang.String(suffix).contains('r5f'))
114             lib = lib + "/r5f";
115     else
116         throw new Error("\tUnknown target for: " + this.packageBase + lib);
118     var libProfiles = ["debug", "release"];
119     /* get the configured library profile */
120     for each(var profile in libProfiles)
121     {
122         if (this.Settings.libProfile.equals(profile))
123         {
124             lib = lib + "/" + profile;
125             break;
126         }
127     }
129     /* Get library name with path */
130     lib = lib + "/" + name;
131     if (java.io.File(this.packageBase + lib).exists()) {
132        print ("\tLinking with library " + this.$name + ":" + lib);
133        return lib;
134     }
136     /* Could not find any library, throw exception */
137     throw new Error("\tLibrary not found: " + this.packageBase + lib);
140 function init() {
141     xdc.loadPackage("ti.osal");
142     xdc.loadPackage("ti.csl");
145 /*
146  *  ======== package.close ========
147  */
148 function close()
150     if (xdc.om.$name != 'cfg') {
151         return;
152     }
154     var socType = this.Settings.socType;
155     socType = socType.toLowerCase();
156     /* Replace the last character in SoC am#### to am###x */
157     if (socType.substring(0, 2) == "am")
158     {
159         socType = socType.substring(0, socType.length - 1);
160         socType = socType.concat("x");
161     }
162     print ("\t SoC Type is " + socType );
164     /* Append list for SoC which depend on PRUSS. */
165     /* This is for PRU UART firmware. */
166     /* Add entry in this array for newly supported SoCs. */
167     var prussDepSocTypes = [
168                         'k2g',
169                         'am335x',
170                         'am437x',
171                         'am572x',
172                         'am571x',
173                         'am574x'
174                       ];
176     if (this.Settings.enableSwIp == true)
177     {
178         for each(var soc in prussDepSocTypes)
179         {
180             if (socType.equals(soc))
181             {
182                 var Pruss = xdc.loadPackage("ti.drv.pruss");
183                 Pruss.Settings.socType  = socType;
184                 break;
185             }
186         }
187     }