Test/Example: Re-define some CSL defintions to cover both keystone and keystone2...
[keystone-rtos/tcp3d-lld.git] / example / src / tcp3d_example_main.c
index b0db9da6eb903d4ee3100e218304611a0e4cd189..45f0156499a0a85d42cc7b625157aace15a2c1b9 100644 (file)
@@ -67,6 +67,7 @@
 #include <ti/csl/csl_tsc.h>\r
 #include <ti/csl/csl_cacheAux.h>\r
 #include <ti/csl/csl_xmcAux.h>\r
+#include <ti/csl/csl_pscAux.h>\r
 \r
 #include "sample.h"\r
 #include "tcp3d_drv_sample.h"\r
  **********************************************************************/\r
 #define START_CMD_PERIOD            1\r
 \r
-#define SIMULATOR_SUPPORT           0\r
+#ifdef CSL_PSC_PD_TCP3D_A\r
+/* Convert Keystone CSL definitions ti Keystone2 CSL definitions */\r
+#define CSL_PSC_PD_TCP3D_01     CSL_PSC_PD_TCP3D_A\r
+#define CSL_PSC_LPSC_TCP3D_0    CSL_PSC_LPSC_TCP3D_A\r
+#endif\r
 \r
 /**********************************************************************\r
  ************************** Test Variables ****************************\r
@@ -127,7 +132,7 @@ cbTestDesc              codeBlockSet;
 \r
 Char                    *strMode[4] = {"3GPP(0)","LTE(1)","WIMAX(2)","WCDMA Split(3)"};\r
 Char                    *strDBuf[2] = {"Disable(0)","Enable(1)"};\r
-Char                    *strInst[2] = {"TCP3D_A(0)","TCP3D_B(1)"};\r
+Char                    *strInst[2] = {"TCP3D_0(0)","TCP3D_1(1)"};\r
 \r
 UInt32                  keepTestVectMem = 0;\r
 UInt32                  firstTime = 1;\r
@@ -231,6 +236,9 @@ Void revt1ChCallback(Void);
 /**\r
  * Cache and other IP functions\r
  */\r
+#ifndef SIMULATOR_SUPPORT\r
+static Int32 enable_ip_instance (UInt32 pwrDmnNum, UInt32 moduleNum);\r
+#endif\r
 static Int32 enable_tcp3d (void);\r
 void tcp3dBeginMemAccess (void *ptr, uint32_t size);\r
 void tcp3dEndMemAccess (void *ptr, uint32_t size);\r
@@ -361,14 +369,7 @@ Void testerTaskFunc(Void)
     dspCoreID           = CSL_chipReadDNUM();\r
 \r
     /******** Select the TCP3D Instance Number **********/\r
-#if 0\r
-    if ( dspCoreID == 0 ) // Core 0\r
-        instNum = CSL_TCP3D_A;\r
-    else\r
-        instNum = CSL_TCP3D_B;\r
-#else\r
     instNum = getTcp3dInstNum(dspCoreID);\r
-#endif\r
 \r
     /* Initialize the default Task parameters */\r
     Task_Params_init(&taskParams);\r
@@ -519,7 +520,7 @@ Void testerTaskFunc(Void)
         System_printf("Code blocks sent for decoding    : %d\n", codeBlockSet.maxNumCB);\r
         System_printf("Call back counters               : %d - interrupts\n", pauseIntr);\r
         System_printf("                          (%d-SOLDOUT, %d-PAUSE, %d-PENDPAUSE)\n", afterIntrSoldout, afterIntrPause, pendPauseCntr);\r
-        System_printf("Total Notificaiton Interrupts    : %d\n", tcp3dEventCntr);\r
+        System_printf("Total Notification Interrupts    : %d\n", tcp3dEventCntr);\r
         System_printf("Throughput Calculations\n");\r
         System_printf("    Total Bits Decoded           : %d\n", TotalBitsDecoded);\r
         System_printf("    Time Taken (in cycles)       : %d\n", test_cycles);\r
@@ -1026,7 +1027,7 @@ Void getMemoryStats(Void)
     Memory_Stats        memStats;\r
 \r
     Memory_getStats(drvHeap, &memStats);\r
-    System_printf("\nHeap Usage/Staus\n");\r
+    System_printf("\nHeap Usage/Status\n");\r
     System_printf("    tcp3dDrvHeap : %d of %d free\n", memStats.totalFreeSize, memStats.totalSize);\r
 \r
     Memory_getStats(dataHeap, &memStats);\r
@@ -1234,45 +1235,87 @@ Void allDeInit(Void)
     }\r
 }\r
 \r
+#ifndef SIMULATOR_SUPPORT\r
 /**\r
  *  @b Description\r
  *  @n  \r
- *      This function enables the power/clock domains for TCP3D. \r
+ *      This function enables the power/clock domains for the \r
+ *      specified power domain and module. \r
  *\r
  *  @retval\r
- *      Not Applicable.\r
+ *      0 for enabling power domain, -1 for failure\r
  */\r
-static Int32 enable_tcp3d (void)\r
+static Int32 enable_ip_instance (UInt32 pwrDmnNum, UInt32 moduleNum)\r
 {\r
-#ifndef SIMULATOR_SUPPORT\r
-    /* TCP3D power domain is turned OFF by default.\r
-     * It needs to be turned on before doing any TCP3D device register access.\r
-     * This is not required for the simulator. */\r
-\r
-    /* Set TCP3D Power domain to ON */        \r
-    CSL_PSC_enablePowerDomain (CSL_PSC_PD_TCP3D);\r
+    /* Power domains are turned OFF by default for many IP blocks. It\r
+     * needs to be turned on before doing any device\r
+     * register access.\r
+     */\r
+    /* Set IP block Power domain to ON */        \r
+    CSL_PSC_enablePowerDomain (pwrDmnNum);\r
 \r
-    /* Enable the clocks too for TCP3D */\r
-    CSL_PSC_setModuleNextState (CSL_PSC_LPSC_TCP3D, PSC_MODSTATE_ENABLE);\r
+    /* Enable the clocks too for the IP block */\r
+    CSL_PSC_setModuleNextState (moduleNum, PSC_MODSTATE_ENABLE);\r
 \r
     /* Start the state transition */\r
-    CSL_PSC_startStateTransition (CSL_PSC_PD_TCP3D);\r
+    CSL_PSC_startStateTransition (pwrDmnNum);\r
 \r
     /* Wait until the state transition process is completed. */\r
-    while (!CSL_PSC_isStateTransitionDone (CSL_PSC_PD_TCP3D));\r
+    while (!CSL_PSC_isStateTransitionDone (pwrDmnNum));\r
 \r
-    /* Return TCP3D PSC status */\r
-    if ((CSL_PSC_getPowerDomainState(CSL_PSC_PD_TCP3D) == PSC_PDSTATE_ON) &&\r
-        (CSL_PSC_getModuleState (CSL_PSC_LPSC_TCP3D) == PSC_MODSTATE_ENABLE))\r
+    /* Return IP block PSC status */\r
+    if ((CSL_PSC_getPowerDomainState(pwrDmnNum) == PSC_PDSTATE_ON) &&\r
+        (CSL_PSC_getModuleState (moduleNum) == PSC_MODSTATE_ENABLE))\r
     {\r
-        /* TCP3D ON. Ready for use */            \r
+        /* IP block ON. Ready for use */            \r
         return 0;\r
     }\r
     else\r
     {\r
-        /* SRIO Power on failed. Return error */            \r
+        /* IP block power on failed. Return error */            \r
         return -1;            \r
     }\r
+}\r
+#endif\r
+\r
+/**\r
+ *  @b Description\r
+ *  @n  \r
+ *      This function enables the power/clock domains for TCP3D. \r
+ *\r
+ *  @retval\r
+ *      Not Applicable.\r
+ */\r
+static Int32 enable_tcp3d (void)\r
+{\r
+#ifndef SIMULATOR_SUPPORT\r
+    Int32  result;\r
+    UInt32 coreID = CSL_chipReadDNUM();\r
+    \r
+    /* TCP3D power domain is turned OFF by default.\r
+     * It needs to be turned on before doing any TCP3D device register access.\r
+     * This is not required for the simulator. \r
+     */\r
+#if (CSL_TCP3D_PER_CNT > 1)\r
+\r
+    if (coreID == 0)\r
+    {\r
+        result = enable_ip_instance (TEST_CSL_PSC_PD_TCP3D_0, \r
+                                     TEST_CSL_PSC_LPSC_TCP3D_0);\r
+    }\r
+    else \r
+    {\r
+        result = enable_ip_instance (TEST_CSL_PSC_PD_TCP3D_1, \r
+                                     TEST_CSL_PSC_LPSC_TCP3D_1);\r
+    }    \r
+#else\r
+    \r
+    result = enable_ip_instance (TEST_CSL_PSC_PD_TCP3D_0, \r
+                                 TEST_CSL_PSC_LPSC_TCP3D_0);\r
+                                 \r
+#endif /* CSL_TCP3D_PER_CNT > 1 */\r
+\r
+    return (result);    \r
 #else\r
     /* PSC is not supported on simulator. Return success always */\r
     return 0;\r