Changed all references to IPU's Core 0 to 'IPU' when in SMP mode for OMAP5.
authorvwan@ti.com <vwan@ti.com>
Tue, 7 May 2013 22:32:46 +0000 (15:32 -0700)
committerChris Ring <cring@ti.com>
Wed, 8 May 2013 20:35:01 +0000 (13:35 -0700)
packages/ti/ipc/family/omap54xx/InterruptDsp.c
qnx/src/ipc3x_dev/ti/syslink/build/Qnx/resmgr/syslink_main.c
qnx/src/ipc3x_dev/ti/syslink/family/omap5430/Platform.c
qnx/src/ipc3x_dev/ti/syslink/family/omap5430/ipu/omap5430BenelliProc.c
qnx/src/ipc3x_dev/ti/syslink/inc/_MultiProcPlat.h
qnx/src/ipc3x_dev/ti/syslink/ipc/hlos/knl/arch/omap5430/Omap5430IpcInt.c
qnx/src/ipc3x_dev/ti/syslink/rpmsg-resmgr/hlos/knl/Qnx/family/omap5430/ipu_pm.c

index fa04d0569099e8c769d82f81f2c1bc4cdca763fe..8c5d40dbec8c79286f6b65acc51c076135d0b870 100644 (file)
@@ -150,15 +150,20 @@ Void InterruptDsp_intSend(UInt16 remoteProcId, UArg arg)
     static UInt16 appm3ProcId = MultiProc_INVALIDID;
     static UInt16 hostProcId = MultiProc_INVALIDID;
     static UInt16 dspProcId = MultiProc_INVALIDID;
+    static UInt16 ipuProcId = MultiProc_INVALIDID;
 
     if (!configured) {
         hostProcId  = MultiProc_getId("HOST");
         dspProcId   = MultiProc_getId("DSP");
         sysm3ProcId = MultiProc_getId("CORE0");
         appm3ProcId = MultiProc_getId("CORE1");
+        ipuProcId   = MultiProc_getId("IPU");
         configured  = TRUE;
     }
 
+    /* We currently do not support interrupts from DSP to IPU in SMP mode */
+    Assert_isTrue(remoteProcId != ipuProcId, NULL);
+
     if (remoteProcId == sysm3ProcId) {
         REG32(MAILBOX_MESSAGE(HOST_TO_SYSM3_MBX)) = arg;
     }
index d96140e22d60280d9d481b6c2969511cca773510..502b294f29e5a24ea4e5ab004dbed8e260b4aac3 100644 (file)
@@ -1174,7 +1174,11 @@ int main(int argc, char *argv[])
 #if defined(SYSLINK_PLATFORM_OMAP4430)
             syslink_firmware[syslink_num_cores].proc = "SYSM3";
 #else
+#ifndef SYSLINK_SYSBIOS_SMP
             syslink_firmware[syslink_num_cores].proc = "CORE0";
+#else
+            syslink_firmware[syslink_num_cores].proc = "IPU";
+#endif
 #endif
             syslink_num_cores++;
 #ifndef SYSLINK_SYSBIOS_SMP
index 922ff61528c6d09367a633f0ddc4b36e141b78b4..12561a6864c0f465eaa0686d1ea82276ab8820bc 100644 (file)
@@ -106,6 +106,12 @@ extern "C" {
 #define HWSPINLOCK_SIZE             0x1000
 #define HWSPINLOCK_OFFSET           0x800
 
+#ifndef SYSLINK_SYSBIOS_SMP
+#define CORE0 "CORE0"
+#else
+#define CORE0 "IPU"
+#endif
+
 /** ============================================================================
  *  Application specific configuration, please change these value according to
  *  your application's need.
@@ -238,9 +244,15 @@ extern unsigned int syslink_dsp_mem_size;
 
 /*Char Syslink_Override_Params[MAX_SIZE_OVERRIDE_PARAMS];*/
 
+#ifndef SYSLINK_SYSBIOS_SMP
 String Syslink_Override_Params = "ProcMgr.proc[CORE0].mmuEnable=TRUE;"
                                  "ProcMgr.proc[CORE0].carveoutAddr0=0xBA300000;"
                                  "ProcMgr.proc[CORE0].carveoutSize0=0x5A00000;"
+#else
+String Syslink_Override_Params = "ProcMgr.proc[IPU].mmuEnable=TRUE;"
+                                 "ProcMgr.proc[IPU].carveoutAddr0=0xBA300000;"
+                                 "ProcMgr.proc[IPU].carveoutSize0=0x5A00000;"
+#endif
                                  "ProcMgr.proc[DSP].mmuEnable=TRUE;"
                                  "ProcMgr.proc[DSP].carveoutAddr0=0xBA300000;"
                                  "ProcMgr.proc[DSP].carveoutSize0=0x5A00000;";
@@ -377,7 +389,7 @@ Platform_overrideConfig (Platform_Config * config, Ipc_Config * cfg)
         String_cpy (config->multiProcConfig.nameList [0],
                     "HOST");
         String_cpy (config->multiProcConfig.nameList [1],
-                    "CORE0");
+                    "IPU");
         String_cpy (config->multiProcConfig.nameList [2],
                     "DSP");
 #else
@@ -405,7 +417,7 @@ Platform_overrideConfig (Platform_Config * config, Ipc_Config * cfg)
         config->ipu_pm_config.int_id = 58;
 #ifdef SYSLINK_SYSBIOS_SMP
         config->ipu_pm_config.num_procs = 2;
-        config->ipu_pm_config.proc_ids[0] = 1; // CORE0 is set as 1 above
+        config->ipu_pm_config.proc_ids[0] = 1; // IPU is set as 1 above
         config->ipu_pm_config.proc_ids[1] = 2; // DSP is set as 2 above
 #else
         config->ipu_pm_config.num_procs = 3;
@@ -855,7 +867,7 @@ _Platform_setup (Ipc_Config * cfg)
     GT_0trace (curTrace, GT_ENTER, "_Platform_setup");
 
     /* Get MultiProc ID by name. */
-    procId = MultiProc_getId ("CORE0");
+    procId = MultiProc_getId (CORE0);
 
     handle = &Platform_objects [procId];
 
@@ -1081,7 +1093,8 @@ _Platform_setup (Ipc_Config * cfg)
             OMAP5430BENELLIPROC_destroy(procId);
 #endif
 
-        procId = MultiProc_getId ("CORE0");
+        procId = MultiProc_getId (CORE0);
+
         handle = &Platform_objects [procId];
         if (handle->pmHandle) {
             ProcMgr_delete(&handle->pmHandle);
@@ -1188,7 +1201,7 @@ _Platform_destroy (void)
 #endif
 
     /* ------------------------- ipu0 cleanup ------------------------------- */
-    handle = &Platform_objects [MultiProc_getId ("CORE0")];
+    handle = &Platform_objects [MultiProc_getId (CORE0)];
     if (handle->pmHandle != NULL) {
         tmpStatus = ProcMgr_delete (&handle->pmHandle);
         GT_assert (curTrace, (tmpStatus >= 0));
@@ -1236,7 +1249,7 @@ _Platform_destroy (void)
         }
     }
 
-    tmpStatus = OMAP5430BENELLIPROC_destroy (MultiProc_getId ("CORE0"));
+    tmpStatus = OMAP5430BENELLIPROC_destroy (MultiProc_getId (CORE0));
     GT_assert (curTrace, (tmpStatus >= 0));
     if ((status >= 0) && (tmpStatus < 0)) {
         status = tmpStatus;
index 38e1ddb342be8c6b58ef1b08ad09d4182dd58cdb..1193dc8e8b5ef213086fbe810e978c732d145120 100644 (file)
@@ -107,11 +107,19 @@ extern "C" {
 #define NumCarveouts 1
 
 /* config param for core0 mmu */
+#ifndef SYSLINK_SYSBIOS_SMP
 #define PARAMS_mmuEnable "ProcMgr.proc[CORE0].mmuEnable="
 #define PARAMS_carveoutAddr0 "ProcMgr.proc[CORE0].carveoutAddr0="
 #define PARAMS_carveoutSize0 "ProcMgr.proc[CORE0].carveoutSize0="
 #define PARAMS_carveoutAddr1 "ProcMgr.proc[CORE0].carveoutAddr1="
 #define PARAMS_carveoutSize1 "ProcMgr.proc[CORE0].carveoutSize1="
+#else
+#define PARAMS_mmuEnable "ProcMgr.proc[IPU].mmuEnable="
+#define PARAMS_carveoutAddr0 "ProcMgr.proc[IPU].carveoutAddr0="
+#define PARAMS_carveoutSize0 "ProcMgr.proc[IPU].carveoutSize0="
+#define PARAMS_carveoutAddr1 "ProcMgr.proc[IPU].carveoutAddr1="
+#define PARAMS_carveoutSize1 "ProcMgr.proc[IPU].carveoutSize1="
+#endif
 #define PARAMS_mmuEnableDSP "ProcMgr.proc[DSP].mmuEnable="
 #define PARAMS_carveoutAddr0DSP "ProcMgr.proc[DSP].carveoutAddr0="
 #define PARAMS_carveoutSize0DSP "ProcMgr.proc[DSP].carveoutSize0="
index 4269e48689dbdb103f4182fe2bdd601ab026f7ca..2fdb51f0066f492b72b4bdfa49b4cc0f9633ccfb 100644 (file)
@@ -77,7 +77,7 @@ MultiProc_Config MultiProc_PlatformConfig = {
 MultiProc_Config MultiProc_PlatformConfig = {
     .numProcessors = 3, /* numProcessors */
     .nameList[0] = "HOST",
-    .nameList[1] = "CORE0",
+    .nameList[1] = "IPU",
     .nameList[2] = "DSP",
     .id = 0,
 };
index b66f375ae16f1b3cdcf2c615c606a66d9d2c0d57..bf841f748702142abf0b19d2e86c8528e87d2bea 100644 (file)
@@ -131,6 +131,12 @@ extern "C" {
 #define OMAP5430_INDEX_HOST 3
 #endif
 
+#ifndef SYSLINK_SYSBIOS_SMP
+#define CORE0    "CORE0"
+#else
+#define CORE0    "IPU"
+#endif
+
 /* Macro to make a correct module magic number with refCount */
 #define OMAP5430IPCINT_MAKE_MAGICSTAMP(x) \
                                     ((OMAP5430IPCINT_MODULEID << 12u) | (x))
@@ -560,7 +566,7 @@ Omap5430IpcInt_setup (Omap5430IpcInt_Config * cfg)
                                                       MultiProc_getId ("CORE1");
 #endif
             Omap5430IpcInt_state.procIds [OMAP5430_INDEX_CORE0] =
-                                                      MultiProc_getId ("CORE0");
+                                                      MultiProc_getId (CORE0);
             Omap5430IpcInt_state.maxProcessors = MultiProc_getNumProcessors();
 
             if (status >= 0) {
index 917be42b4638b22673530efeb45522a6c175bdb5..08bf04c178e4c41f960443c4d1df98dc9f6ad45e 100644 (file)
 #include <Bitops.h>
 #include <_rpmsg.h>
 
+#ifndef SYSLINK_SYSBIOS_SMP
+#define CORE0    "CORE0"
+#else
+#define CORE0    "IPU"
+#endif
+
 /* Defines the ipu_pm state object, which contains all the module
  * specific information. */
 struct ipu_pm_module_object {
@@ -579,7 +585,7 @@ static Bool ipu_pm_clr_gptimer_interrupt(Ptr fxnArgs)
 static Bool ipu_pm_gptimer_interrupt(Ptr fxnArgs)
 {
     int num;
-    uint16_t core0_id = MultiProc_getId("CORE0");
+    uint16_t core0_id = MultiProc_getId(CORE0);
     uint16_t core1_id = MultiProc_getId("CORE1");
     uint16_t dsp_id = MultiProc_getId("DSP");
 
@@ -1862,7 +1868,7 @@ int ipu_pm_save_ctx(int proc_id)
     int core0_loaded;
     int core1_loaded;
     unsigned long timeout;
-    unsigned short core0_id = MultiProc_getId("CORE0");
+    unsigned short core0_id = MultiProc_getId(CORE0);
     unsigned short core1_id = MultiProc_getId("CORE1");
     unsigned short dsp_id = MultiProc_getId("DSP");
     struct itimerspec value;
@@ -2046,7 +2052,7 @@ int ipu_pm_restore_ctx(int proc_id)
     int retval = 0;
     int core0_loaded;
     int core1_loaded;
-    unsigned short core0_id = MultiProc_getId("CORE0");
+    unsigned short core0_id = MultiProc_getId(CORE0);
     unsigned short core1_id = MultiProc_getId("CORE1");
     unsigned short dsp_id = MultiProc_getId("DSP");
 
@@ -2157,7 +2163,7 @@ error:
 /* ISR for Timer*/
 static void ipu_pm_timer_interrupt (union sigval val)
 {
-    ipu_pm_save_ctx(MultiProc_getId("CORE0"));
+    ipu_pm_save_ctx(MultiProc_getId(CORE0));
     return;
 }
 #else // BENELLI_SELF_HIBERNATION
@@ -2179,7 +2185,7 @@ int ipu_pm_attach(int proc_id)
         return -EINVAL;
     }
 
-    if (proc_id == MultiProc_getId("CORE0")) {
+    if (proc_id == MultiProc_getId(CORE0)) {
         ipu_pm_state.loaded_procs |= CORE0_LOADED;
 #ifdef BENELLI_WATCHDOG_TIMER
         ipu_pm_gpt_enable(GPTIMER_9);
@@ -2250,7 +2256,7 @@ int ipu_pm_attach(int proc_id)
 
     if (retval < 0) {
 #ifdef BENELLI_WATCHDOG_TIMER
-        if (proc_id == MultiProc_getId("CORE0")) {
+        if (proc_id == MultiProc_getId(CORE0)) {
             if (ipu_pm_state.gpt9IsrObject) {
                 OsalIsr_uninstall(ipu_pm_state.gpt9IsrObject);
                 OsalIsr_delete(&ipu_pm_state.gpt9IsrObject);
@@ -2307,7 +2313,7 @@ int ipu_pm_detach(int proc_id)
     }
 #endif
 
-    if (proc_id == MultiProc_getId("CORE0")) {
+    if (proc_id == MultiProc_getId(CORE0)) {
 #ifdef BENELLI_WATCHDOG_TIMER
         OsalIsr_uninstall(ipu_pm_state.gpt9IsrObject);
         OsalIsr_delete(&ipu_pm_state.gpt9IsrObject);