C66AK2E: Linux: Introduce support for C66AK2E
authorChris Ring <cring@ti.com>
Tue, 21 Jan 2014 21:31:52 +0000 (13:31 -0800)
committerChris Ring <cring@ti.com>
Tue, 21 Jan 2014 21:31:52 +0000 (13:31 -0800)
The C66AK2E device is an A15 + C66 DSP, similar in hardware
to the TCI663X family of devices.  This commit adds Linux-side
support.

Note that this commit doesn't update the autotools-generated
files.  That will be done in a separate commit.

configure.ac
linux/src/daemon/Makefile.am
linux/src/daemon/MultiProcCfg_c66ak2e.c [new file with mode: 0644]
linux/src/tests/Makefile.am

index 5af07488517fc869f023e5c1b0b6553431e4c09c..6bb27bcc40663f424ec9c5edde905b43d55e6f76 100644 (file)
@@ -67,13 +67,15 @@ AC_SUBST([AM_LDFLAGS])
 
 # Add config variables/options and check them
 # Note that 6614 isn't documented and, though it may work, is planned for removal
-AC_ARG_VAR(PLATFORM, Platform to build. Options are: 'OMAPL138' 'OMAP54XX' 'TCI6630' 'TCI6636' 'TCI6638' and 'DRA7XX'. If not defined all platforms will be built.)
+AC_ARG_VAR(PLATFORM, Platform to build. Options are: 'OMAPL138' 'OMAP54XX' 'C66AK2E' 'TCI6630' 'TCI6636' 'TCI6638' and 'DRA7XX'. If not defined all platforms will be built.)
 AC_ARG_VAR(CMEM_INSTALL_DIR, Installation path directory to the CMEM libraries)
 AC_ARG_VAR(KERNEL_INSTALL_DIR, Installation path to the Linux kernel.)
 AC_ARG_VAR(DRM_PREFIX, Installation location to the DRM library.)
 
 # Test platform variable for setting
 AS_IF([test "x$PLATFORM" = "xOMAPL138"],
+  [AC_MSG_NOTICE([PLATFORM is set to ${PLATFORM}])],
+  [AS_IF([test "x$PLATFORM" = "xC66AK2E"],
   [AC_MSG_NOTICE([PLATFORM is set to ${PLATFORM}])],
   [AS_IF([test "x$PLATFORM" = "xTCI6614"],
   [AC_MSG_NOTICE([PLATFORM is set to ${PLATFORM}])],
@@ -89,7 +91,7 @@ AS_IF([test "x$PLATFORM" = "xOMAPL138"],
   [AC_MSG_NOTICE([PLATFORM is set to ${PLATFORM}])],
   [AS_IF([test "x$PLATFORM" = "x"],
   [AC_MSG_NOTICE([PLATFORM is not set. All supported platforms will be built ....])],
-  [AC_MSG_ERROR([PLATFORM is set to "${PLATFORM}": run ./configure --help for available PLATFORM options])])])])])])])])])
+  [AC_MSG_ERROR([PLATFORM is set to "${PLATFORM}": run ./configure --help for available PLATFORM options])])])])])])])])])])
 
 # Test for required KERNEL path
 AS_IF([test "x$KERNEL_INSTALL_DIR" = "x"],
@@ -108,6 +110,7 @@ AC_SUBST([DRM_PREFIX])
 
 # Define specific variables to be used in Makefile.am
 AM_CONDITIONAL([OMAPL138], [test "x$PLATFORM" = "xOMAPL138"])
+AM_CONDITIONAL([C66AK2E], [test "x$PLATFORM" = "xC66AK2E"])
 AM_CONDITIONAL([TCI6614], [test "x$PLATFORM" = "xTCI6614"])
 AM_CONDITIONAL([TCI6630], [test "x$PLATFORM" = "xTCI6630"])
 AM_CONDITIONAL([TCI6636], [test "x$PLATFORM" = "xTCI6636"])
index 60849bef5e1057362f6ec19966a53b90f88bc626..fddbc414ec98d4455d3a8a6a736237a875d9c223 100644 (file)
@@ -52,6 +52,9 @@ else
 if OMAPL138
   bin_PROGRAMS += lad_omapl138
 else
+if C66AK2E
+  bin_PROGRAMS += lad_c66ak2e
+else
 if TCI6614
   bin_PROGRAMS += lad_tci6614
 else
@@ -64,7 +67,8 @@ else
 if TCI6638
   bin_PROGRAMS += lad_tci6638
 else
-  bin_PROGRAMS += lad_omap54xx_smp lad_dra7xx lad_omapl138 lad_tci6614 lad_tci6630 lad_tci6636 lad_tci6638
+  bin_PROGRAMS += lad_omap54xx_smp lad_dra7xx lad_omapl138 lad_c66ak2e lad_tci6614 lad_tci6630 lad_tci6636 lad_tci6638
+endif
 endif
 endif
 endif
@@ -98,6 +102,7 @@ common_sources = \
 lad_omap54xx_smp_SOURCES = $(common_sources) MultiProcCfg_omap54xx_smp.c
 lad_dra7xx_SOURCES = $(common_sources) MultiProcCfg_dra7xx.c
 lad_omapl138_SOURCES = $(common_sources) MultiProcCfg_omapl138.c
+lad_c66ak2e_SOURCES = $(common_sources) MultiProcCfg_c66ak2e.c
 lad_tci6614_SOURCES = $(common_sources) MultiProcCfg_tci6614.c
 lad_tci6630_SOURCES = $(common_sources) MultiProcCfg_tci6630.c
 lad_tci6636_SOURCES = $(common_sources) MultiProcCfg_tci6638.c
@@ -113,6 +118,8 @@ lad_dra7xx_LDADD = $(common_libraries) \
                 $(AM_LDFLAGS)
 lad_omapl138_LDADD = $(common_libraries) \
                 $(AM_LDFLAGS)
+lad_c66ak2e_LDADD = $(common_libraries) \
+                $(AM_LDFLAGS)
 lad_tci6614_LDADD = $(common_libraries) \
                 $(AM_LDFLAGS)
 lad_tci6630_LDADD = $(common_libraries) \
diff --git a/linux/src/daemon/MultiProcCfg_c66ak2e.c b/linux/src/daemon/MultiProcCfg_c66ak2e.c
new file mode 100644 (file)
index 0000000..3b48b78
--- /dev/null
@@ -0,0 +1,51 @@
+/*
+ * Copyright (c) 2014, Texas Instruments Incorporated
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * *  Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *
+ * *  Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * *  Neither the name of Texas Instruments Incorporated nor the names of
+ *    its contributors may be used to endorse or promote products derived
+ *    from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+/*
+ * ======== MultiProcCfg.c ========
+ * System-wide MultiProc configuration
+ */
+
+/* Standard IPC headers */
+#include <ti/ipc/Std.h>
+
+/* For Backplane IPC startup/shutdown stuff: */
+#include <_MultiProc.h>
+
+/* This must match BIOS side MultiProc configuration for given platform!: */
+MultiProc_Config _MultiProc_cfg =  {
+   .numProcessors = 2,
+   .nameList[0] = "HOST",
+   .nameList[1] = "CORE0",
+   .rprocList[0] = -1,
+   .rprocList[1] = 0,
+   .id = 0,                 /* The host is always zero */
+};
index 3059e3a0ad7eb0ed890c7189d8681386496550d3..471ccd3b9c3aa7dcea54acd4f8d915a32fd92d34 100644 (file)
@@ -86,6 +86,10 @@ if CMEM
   bin_PROGRAMS += nano_test
 endif
 else
+if C66AK2E
+# Add platform specific bin application's here
+  bin_PROGRAMS +=
+else
 if TCI6614
 # Add platform specific bin application's here
   bin_PROGRAMS +=
@@ -118,6 +122,7 @@ endif
 endif
 endif
 endif
+endif
 
 common_sources = \
                 $(top_srcdir)/linux/include/ti/ipc/Std.h \