Add new flag to resource manager to disable recovery
authorvwan@ti.com <vwan@ti.com>
Fri, 23 May 2014 21:58:58 +0000 (14:58 -0700)
committerRobert Tivy <rtivy@ti.com>
Wed, 28 May 2014 00:19:47 +0000 (17:19 -0700)
This commit adds a new flag to disable the recovery mechanism in the QNX
resource manager. This is useful for debugging the slave processors and
prevents their state from being wiped in the event of a crash. (SDOCM00107765)

Signed-off-by: VW <vwan@ti.com>
qnx/src/ipc3x_dev/ti/syslink/build/Qnx/resmgr/ipc.use
qnx/src/ipc3x_dev/ti/syslink/build/Qnx/resmgr/syslink_main.c

index 08597bc4eead68e5ae6986282eb121ff42f831cd..60f4a8a6275e341f213acca51ef8b7820ffc5615 100644 (file)
@@ -19,3 +19,4 @@ Options:
                 Supported on: OMAP54xx
  -g             Enable GateMP support on host
                 Supported on: DRA7xx
+ -d             Disable automatic crash recovery
index 40950d06cefabbbaf5ab4e79b2fcf15f59120a5c..266b0f53f015dcf6c267fe2d5861561927bf7308 100644 (file)
@@ -89,6 +89,8 @@
 
 static int verbosity = 2;
 
+/* Disable recovery mechanism if true */
+static int disableRecovery = false;
 
 #if defined(SYSLINK_PLATFORM_VAYU)
 static bool gatempEnabled = false;
@@ -468,10 +470,12 @@ static void ipc_recover(Ptr args)
 {
     syslink_dev_t * dev = (syslink_dev_t *)args;
 
-    deinit_ipc(dev, TRUE);
-    init_ipc(dev, syslink_firmware, TRUE);
-    deinit_syslink_trace_device(dev);
-    init_syslink_trace_device(dev);
+    if (!disableRecovery) {
+        deinit_ipc(dev, TRUE);
+        init_ipc(dev, syslink_firmware, TRUE);
+        deinit_syslink_trace_device(dev);
+        init_syslink_trace_device(dev);
+    }
 }
 
 Int syslink_error_cb (UInt16 procId, ProcMgr_Handle handle,
@@ -868,6 +872,7 @@ static Void printUsage (Char * app)
     printf("Options:\n");
     printf("  -g   enable GateMP support on host\n");
 #endif
+    printf("  -d   disable recovery\n");
     exit (EXIT_SUCCESS);
 }
 
@@ -898,7 +903,7 @@ int main(int argc, char *argv[])
     /* Parse the input args */
     while (1)
     {
-        c = getopt (argc, argv, "H:T:U:gv:");
+        c = getopt (argc, argv, "H:T:U:gdv:");
         if (c == -1)
             break;
 
@@ -918,6 +923,9 @@ int main(int argc, char *argv[])
         case 'U':
             user_parm = optarg;
             break;
+        case 'd':
+            disableRecovery = true;
+            break;
         case 'v':
             verbosity++;
             break;