Rpmsg: Port MessageQCopy onto OPBU's OMAP5 VirtQueue module.
authorG Anthony <a0783926@ti.com>
Thu, 28 Feb 2013 02:32:04 +0000 (18:32 -0800)
committerG Anthony <a0783926@ti.com>
Thu, 28 Feb 2013 02:32:04 +0000 (18:32 -0800)
Get to build for OMAP5 SMP IPU platform.

Signed-off-by: G Anthony <a0783926@ti.com>
packages/ti/ipc/rpmsg/MessageQCopy.c
packages/ti/ipc/rpmsg/package.bld
packages/ti/ipc/rpmsg/package.xs

index 1018b474615019ae07b382f40b0a800b57f6f6da..a34f4f6cb76ea6fc58862b133ba62a3223b5021b 100644 (file)
 #include <ti/ipc/family/tci6614/VirtQueue.h>
 #elif defined(TCI6638)
 #include <ti/ipc/family/tci6638/VirtQueue.h>
+#elif defined(OMAP5)
+#include <ti/ipc/family/omap54xx/VirtQueue.h>
 #else
 #error unknown processor!
 #endif
@@ -308,7 +310,7 @@ Void MessageQCopy_init(UInt16 remoteProcId)
       Assert_isTrue(FALSE, NULL);
     }
     else {
-      vqParams.callback = (Fxn) callback_availBufReady;
+      vqParams.callback = callback_availBufReady;
     }
 
     /*
index 2f5541888ff3958295f624ac3c8e08dba9ef94c5..b5eb5933f18bd2fa3ff7dd4b0b925f922ca3509b 100644 (file)
@@ -35,6 +35,7 @@
 
 var Build = xdc.useModule('xdc.bld.BuildEnvironment');
 var Pkg = xdc.useModule('xdc.bld.PackageContents');
+var smpBuild = java.lang.System.getenv("BUILD_SMP");
 
 Pkg.attrs.exportSrc = true;
 
@@ -46,28 +47,43 @@ var SRCS = ["MessageQCopy.c", "NameMap.c"];
 /* remove this output directory during a clean */
 Pkg.generatedFiles.$add("lib/");
 
+
 for (var i = 0; i < Build.targets.length; i++) {
     var targ = Build.targets[i];
     var isaDefs = "";
+    var name = Pkg.name;
+
+    print("targ.isa: " + targ.isa);
+    print("smpBuild: " + smpBuild);
 
     /* Yuck, yuck, yuck! */
     if (targ.isa == "674") {
         isaDefs = "-DOMAPL138";
-// OMAP4/5 not yet supported
-//    } else if ((targ.isa == "v7M") || (targ.isa == "64T")) {
-//        isaDefs = "-DOMAP4430";
     } else if (targ.isa == "66") {
         /* TBD: Only one of Appleton or Kepler can build for now: */
        isaDefs = "-DTCI6638";
        //isaDefs = "-DTCI6614";
+    } else if (targ.isa == "v7M") {
+        if (smpBuild == "1") {
+            isaDefs = "-DOMAP5 -DSMP";
+            name = name + "_smp";
+        }
+        else {
+            isaDefs = "-DOMAP5 -DDM3_ONLY";
+        }
+    } else if (targ.isa == "64T" && smpBuild == 0) {
+        isaDefs = "-DOMAP5 -DDSP";
     } else {
         continue;
     }
 
+    print("name: " + name);
+    print("isaDefs: " + isaDefs);
+
     /* Build for all profiles */
     for (var profile in targ.profiles) {
 
-       Pkg.addLibrary("lib/" + profile + "/" + Pkg.name, targ, {
+       Pkg.addLibrary("lib/" + profile + "/" + name, targ, {
            profile: profile,
            copts: "--gcc",   /* b/c Rpmsg.h requires gcc-isms */
            defs: isaDefs
index 6d8336840372f01dccc547bbc4beb97a53524f24..57510c699909838616007b0c1f0562898d6f8a43 100644 (file)
@@ -50,6 +50,8 @@ function close()
 function getLibs(prog)
 {
     var suffix = prog.build.target.findSuffix(this);
+    var smp = "";
+
     if (suffix == null) {
         /* no matching lib found in this package, return "" */
         $trace("Unable to locate a compatible library, returning none.",
@@ -57,8 +59,12 @@ function getLibs(prog)
         return ("");
     }
 
+    if (prog.platformName.match(/ipu/)) {
+        smp = "_smp";
+    }
+
     /* the location of the libraries are in lib/<profile>/* */
-    var name = this.$name + ".a" + suffix;
+    var name = this.$name + smp + ".a" + suffix;
     var lib = "lib/" + this.profile + "/" + name;
 
 
@@ -73,47 +79,3 @@ function getLibs(prog)
 
     return (lib);
 }
-
-/*
- *  ======== getLibs ========
- */
-function getLibs_opbu(prog)
-{
-    var suffix;
-    var file;
-    var libAry = [];
-    var profile = this.profile;
-    var smp = "";
-
-    suffix = prog.build.target.findSuffix(this);
-    if (suffix == null) {
-        return "";  /* nothing to contribute */
-    }
-
-    if (prog.platformName.match(/ipu/)) {
-        smp = "_smp";
-    }
-
-    /* make sure the library exists, else fallback to a built library */
-    file = "lib/" + profile + "/ti.ipc.rpmsg" + smp + ".a" + suffix;
-    if (java.io.File(this.packageBase + file).exists()) {
-        libAry.push(file);
-    }
-    else {
-        file = "lib/release/ti.ipc.rpmsg" + smp + ".a" + suffix;
-        if (java.io.File(this.packageBase + file).exists()) {
-            libAry.push(file);
-        }
-        else {
-            /* fallback to a compatible library built by this package */
-            for (var p in this.build.libDesc) {
-                if (suffix == this.build.libDesc[p].suffix) {
-                    libAry.push(p);
-                    break;
-                }
-            }
-        }
-    }
-
-    return libAry.join(";");
-}