Additional changes to example and test cases.
authorPragat Chaudhari <pragatc@ti.com>
Wed, 11 Jun 2014 16:12:33 +0000 (12:12 -0400)
committerPragat Chaudhari <pragatc@ti.com>
Wed, 11 Jun 2014 16:12:33 +0000 (12:12 -0400)
Enabling of 2nd TCP3D instances was not present
for multiple instance tests.

example/src/tcp3d_example_main.c
example/src/tcp3d_main.h
test/src/tcp3d_main.c
test/src/tcp3d_main.h

index c2be5448b0fc9ba22a8002d69297bdc07b160232..d0ca8979f7e5744846ee7ca9543ae60d551c8bc5 100644 (file)
@@ -230,6 +230,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
@@ -1226,45 +1229,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 (TEST_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 (TEST_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 (TEST_CSL_PSC_PD_TCP3D);\r
+    CSL_PSC_startStateTransition (pwrDmnNum);\r
 \r
     /* Wait until the state transition process is completed. */\r
-    while (!CSL_PSC_isStateTransitionDone (TEST_CSL_PSC_PD_TCP3D));\r
+    while (!CSL_PSC_isStateTransitionDone (pwrDmnNum));\r
 \r
-    /* Return TCP3D PSC status */\r
-    if ((CSL_PSC_getPowerDomainState(TEST_CSL_PSC_PD_TCP3D) == PSC_PDSTATE_ON) &&\r
-        (CSL_PSC_getModuleState (TEST_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
-        /* TCP3D 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
index 92bf07d158aa0cd6610a61982ded91a1a55c1ecd..0aff697dfc9007af30a005f7f2e6909fa9b6b420 100644 (file)
 \r
 /* Enable the correct power domain for the device. */\r
 #ifdef DEVICE_K2L\r
-#define TEST_CSL_PSC_PD_TCP3D       CSL_PSC_PD_TCP3D_0\r
-#define TEST_CSL_PSC_LPSC_TCP3D     CSL_PSC_LPSC_TCP3D_0\r
+#define TEST_CSL_PSC_PD_TCP3D_0       CSL_PSC_PD_TCP3D_0\r
+#define TEST_CSL_PSC_LPSC_TCP3D_0     CSL_PSC_LPSC_TCP3D_0\r
+#define TEST_CSL_PSC_PD_TCP3D_1       CSL_PSC_PD_TCP3D_1\r
+#define TEST_CSL_PSC_LPSC_TCP3D_1     CSL_PSC_LPSC_TCP3D_1\r
 #else /* DEVICE_K2K, DEVICE_K2H */\r
-#define TEST_CSL_PSC_PD_TCP3D       CSL_PSC_PD_TCP3D_01\r
-#define TEST_CSL_PSC_LPSC_TCP3D     CSL_PSC_LPSC_TCP3D_0\r
+#define TEST_CSL_PSC_PD_TCP3D_0       CSL_PSC_PD_TCP3D_01\r
+#define TEST_CSL_PSC_LPSC_TCP3D_0     CSL_PSC_LPSC_TCP3D_0\r
+#define TEST_CSL_PSC_PD_TCP3D_1       CSL_PSC_PD_TCP3D_01\r
+#define TEST_CSL_PSC_LPSC_TCP3D_1     CSL_PSC_LPSC_TCP3D_1\r
 #endif\r
 \r
 /**********************************************************************\r
index 3eb81de7d552d9e668a7c1e954ffc93372f311cf..1dced9254d91fa1cff88105c99c981a9704c03fe 100644 (file)
@@ -153,7 +153,7 @@ Char                    *testFolder[] = {
                                             "WCDMA",\r
                                             "test4_lte",\r
                                             "test3_lte",\r
-                                            //"test1_wimax", // giving error on simulator, TODO: debug later\r
+                                            "test1_wimax", // gave error on simulator earlier\r
                                             "test3_wimax",\r
                                             "test2_wimax",\r
                                             "test2_wcdma",\r
@@ -268,6 +268,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
@@ -1316,45 +1319,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 (TEST_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 (TEST_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 (TEST_CSL_PSC_PD_TCP3D);\r
+    CSL_PSC_startStateTransition (pwrDmnNum);\r
 \r
     /* Wait until the state transition process is completed. */\r
-    while (!CSL_PSC_isStateTransitionDone (TEST_CSL_PSC_PD_TCP3D));\r
+    while (!CSL_PSC_isStateTransitionDone (pwrDmnNum));\r
 \r
-    /* Return TCP3D PSC status */\r
-    if ((CSL_PSC_getPowerDomainState(TEST_CSL_PSC_PD_TCP3D) == PSC_PDSTATE_ON) &&\r
-        (CSL_PSC_getModuleState (TEST_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
-        /* TCP3D 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
index 92bf07d158aa0cd6610a61982ded91a1a55c1ecd..0aff697dfc9007af30a005f7f2e6909fa9b6b420 100644 (file)
 \r
 /* Enable the correct power domain for the device. */\r
 #ifdef DEVICE_K2L\r
-#define TEST_CSL_PSC_PD_TCP3D       CSL_PSC_PD_TCP3D_0\r
-#define TEST_CSL_PSC_LPSC_TCP3D     CSL_PSC_LPSC_TCP3D_0\r
+#define TEST_CSL_PSC_PD_TCP3D_0       CSL_PSC_PD_TCP3D_0\r
+#define TEST_CSL_PSC_LPSC_TCP3D_0     CSL_PSC_LPSC_TCP3D_0\r
+#define TEST_CSL_PSC_PD_TCP3D_1       CSL_PSC_PD_TCP3D_1\r
+#define TEST_CSL_PSC_LPSC_TCP3D_1     CSL_PSC_LPSC_TCP3D_1\r
 #else /* DEVICE_K2K, DEVICE_K2H */\r
-#define TEST_CSL_PSC_PD_TCP3D       CSL_PSC_PD_TCP3D_01\r
-#define TEST_CSL_PSC_LPSC_TCP3D     CSL_PSC_LPSC_TCP3D_0\r
+#define TEST_CSL_PSC_PD_TCP3D_0       CSL_PSC_PD_TCP3D_01\r
+#define TEST_CSL_PSC_LPSC_TCP3D_0     CSL_PSC_LPSC_TCP3D_0\r
+#define TEST_CSL_PSC_PD_TCP3D_1       CSL_PSC_PD_TCP3D_01\r
+#define TEST_CSL_PSC_LPSC_TCP3D_1     CSL_PSC_LPSC_TCP3D_1\r
 #endif\r
 \r
 /**********************************************************************\r