diff --git a/marvell/lte-telephony/apps/atcmd_server_ss/inc/teldbg.h b/marvell/lte-telephony/apps/atcmd_server_ss/inc/teldbg.h
index ea76e32..c7299cf 100755
--- a/marvell/lte-telephony/apps/atcmd_server_ss/inc/teldbg.h
+++ b/marvell/lte-telephony/apps/atcmd_server_ss/inc/teldbg.h
@@ -66,6 +66,6 @@
 RETURNCODE_T  mbtk_GPSFwdl(const utlAtParameterOp_T op, const char *command_name_p, const utlAtParameterValue_P2c parameter_values_p, const size_t num_parameters, const char *info_text_p, unsigned int *xid_p, void *arg_p);
 #endif
 RETURNCODE_T  ciCMTLRA(const utlAtParameterOp_T op,const char *command_name_p,const utlAtParameterValue_P2c parameter_values_p,const size_t num_parameters,const char *info_text_p,unsigned int *xid_p,void *arg_p);
-
+RETURNCODE_T  diagMediaSwitch(const utlAtParameterOp_T op,const char *command_name_p,const utlAtParameterValue_P2c parameter_values_p,const size_t num_parameters,const char *info_text_p,unsigned int *xid_p,void *arg_p);
 #endif
 
diff --git a/marvell/lte-telephony/apps/atcmd_server_ss/src/telcontroller.c b/marvell/lte-telephony/apps/atcmd_server_ss/src/telcontroller.c
index 28f02a0..7650364 100755
--- a/marvell/lte-telephony/apps/atcmd_server_ss/src/telcontroller.c
+++ b/marvell/lte-telephony/apps/atcmd_server_ss/src/telcontroller.c
@@ -822,6 +822,8 @@
 					      utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL),};
 
 static utlAtParameter_T plusAPLOG_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED) };
+
+static utlAtParameter_T starDIAGSWITCH_params[] = { utlDEFINE_STRING_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED),                                                                        utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_OPTIONAL)};
 static utlAtParameter_T plusRDUP_params[] = { utlDEFINE_DECIMAL_AT_PARAMETER(    utlAT_PARAMETER_ACCESS_READ_WRITE, utlAT_PARAMETER_PRESENCE_REQUIRED) };
 
 // support AT+VPDUS
@@ -2951,7 +2953,9 @@
 	utlDEFINE_EXTENDED_AT_COMMAND("+VHDL",		   NULL,		"+VHDL: (Show Handle)",																																													     vHDL,			    vHDL),
 	utlDEFINE_EXTENDED_AT_COMMAND("+VECHO",		   plusVECHO_params,	"+VECHO: ",																																														     vECHO,			    vECHO),
     utlDEFINE_EXTENDED_AT_COMMAND("+APLOG",         plusAPLOG_params,       "+APLOG: (0-255)",      apLog,       apLog),
-    
+   
+    utlDEFINE_EXTENDED_AT_COMMAND("*DIAGSWITCH", starDIAGSWITCH_params, "*DIAGSWITCH: <diag_media>[,0-1]", diagMediaSwitch, diagMediaSwitch),
+
     utlDEFINE_EXTENDED_AT_COMMAND("+RDUP",         plusRDUP_params,       "+RDUP: (0-1)",      ciRdup,       ciRdup),
 
 	// debug atcommand for +cgsend *tgsink.
diff --git a/marvell/lte-telephony/apps/atcmd_server_ss/src/teldbg.c b/marvell/lte-telephony/apps/atcmd_server_ss/src/teldbg.c
index 631470c..cf35bcb 100755
--- a/marvell/lte-telephony/apps/atcmd_server_ss/src/teldbg.c
+++ b/marvell/lte-telephony/apps/atcmd_server_ss/src/teldbg.c
@@ -1196,6 +1196,93 @@
     return(rc);
 }
 
+/*******************************************************************
+*  FUNCTION: diagMediaSwitch
+*
+*  DESCRIPTION: Used to control the diag media
+*
+*  PARAMETERS:
+*
+*  RETURNS:
+*
+*******************************************************************/
+utlReturnCode_T  diagMediaSwitch( const utlAtParameterOp_T op,
+            const char                      *command_name_p,
+            const utlAtParameterValue_P2c parameter_values_p,
+            const size_t num_parameters,
+            const char                      *info_text_p,
+            unsigned int                    *xid_p,
+            void                            *arg_p)
+{
+    UNUSEDPARAM(command_name_p)
+    UNUSEDPARAM(parameter_values_p)
+    UNUSEDPARAM(num_parameters)
+    UNUSEDPARAM(info_text_p)
+
+    TelAtParserID sAtpIndex;
+    int save = 0, err = 0;
+    CHAR diag_media[8] = {0};
+    INT16 strLen = 0;
+    CHAR returnStr[32] = {0};
+    CHAR cmdStr[32] = {0};
+    sAtpIndex =  *(TelAtParserID *)arg_p;
+    *xid_p = MAKE_AT_HANDLE(sAtpIndex);
+    CiReturnCode      ret = CIRC_FAIL;
+    RETURNCODE_T rc = INITIAL_RETURN_CODE;
+
+    memset(diag_media, '\0', sizeof(diag_media));
+
+    switch ( op )
+    {
+        case TEL_EXT_SET_CMD:         /* AT*DIAGSWITCH= */
+        {
+            
+            if( getExtString( parameter_values_p, 0, (CHAR *)diag_media, 8, &strLen, NULL ) == TRUE )
+            {
+                if ( getExtValue( parameter_values_p, 1, &save, 0, 1, 0) == TRUE )
+                {
+                    ERRMSG(diagMediaSwitch001, "%s: diag_media=%s, save=%u\n", __FUNCTION__, diag_media, save);
+                    if (strLen > 0)
+                    {
+                        if (save > 0)
+                        {
+                            memset(returnStr, 0x00, sizeof(returnStr));
+                            memset(cmdStr, 0x00, sizeof(cmdStr));
+                            snprintf(cmdStr, sizeof(cmdStr), "/bin/diagcmd save %s", diag_media);
+                            err = executeShellCMD(cmdStr, returnStr);
+                            ERRMSG(diagMediaSwitch002, "%s: err=%d, returnStr=%s\n", __FUNCTION__, err, returnStr);
+                        }
+
+                        memset(returnStr, 0x00, sizeof(returnStr));
+                        memset(cmdStr, 0x00, sizeof(cmdStr));
+                        snprintf(cmdStr, sizeof(cmdStr), "/bin/diagcmd switch %s", diag_media);
+                        err = executeShellCMD(cmdStr, returnStr);
+                        ERRMSG(diagMediaSwitch003, "%s: err=%d, returnStr=%s\n", __FUNCTION__, err, returnStr);
+                    }
+
+                    ret = ATRESP(*xid_p, ATCI_RESULT_CODE_OK, 0, NULL);
+                }
+            }
+            else
+            {
+                ret = ATRESP( *xid_p, ATCI_RESULT_CODE_CME_ERROR, CME_INVALID_PARAM, NULL );
+            }
+            break;
+        }
+
+        case TEL_EXT_GET_CMD:         /* AT*DIAGSWITCH? */
+        default:
+        {
+            ret = ATRESP( *xid_p, ATCI_RESULT_CODE_CME_ERROR, CME_OPERATION_NOT_SUPPORTED, NULL );
+            break;
+        }
+    }
+
+    /* handle the return value */
+    rc = HANDLE_RETURN_VALUE(ret);
+
+    return(rc);
+}
 
 /*******************************************************************
 *  FUNCTION: ciRdup
diff --git a/marvell/lte-telephony/apps/diag/command_api.c b/marvell/lte-telephony/apps/diag/command_api.c
index 3a541fe..1e54ea2 100644
--- a/marvell/lte-telephony/apps/diag/command_api.c
+++ b/marvell/lte-telephony/apps/diag/command_api.c
@@ -223,7 +223,19 @@
 		sleep(3); // wait for CP to disconnect
 		exit(0);
 	}
-
+           else if (strcasecmp(command,"save") == 0) /* save default media */
+            {
+               ret = getMediaByName(arg);
+              if(ret >= 0)
+              {
+                save_diag_default_media_config(ret);
+                 reply = response_success;
+               }
+              else
+              {
+                reply = response_error;
+               }
+            }
 	(void)sendReply(clients[client_id].fd, reply, reply_arg);
 }
 
diff --git a/marvell/lte-telephony/apps/diag/diag_config.c b/marvell/lte-telephony/apps/diag/diag_config.c
index 569ede1..ef00c93 100644
--- a/marvell/lte-telephony/apps/diag/diag_config.c
+++ b/marvell/lte-telephony/apps/diag/diag_config.c
@@ -366,3 +366,37 @@
 	return 0;
 }
 
+int save_diag_default_media_config(int default_media)
+{
+    void * pRoot = NULL;
+    int ret;
+    int tmpVal = 0;
+
+    if ((default_media >= diagNoConnection) && (default_media <= diagFSConnection))
+    {
+        pRoot = mrvl_open_tel_cfg(file_name,FILE_FORMAT);
+        if (pRoot)
+        {
+            ret = mrvl_set_int_value(pRoot, "SystemSettings/default_media", default_media);
+            //ERRMSG("%s: default_media=%d", __FUNCTION__, default_media);
+            if (ret == 0)
+            {
+                diagConfig.sys_settings.default_media = default_media;
+                ret = mrvl_save_tel_cfg(file_name, &pRoot);
+            }
+
+            if(ret < 0)
+            {
+                ERRMSG("failed to save diag config");
+                if (pRoot)
+                {
+                    free(pRoot);
+                    pRoot = NULL;
+                }
+                return -1;
+            }
+        }
+    }
+
+    return 0;
+}
diff --git a/marvell/lte-telephony/apps/diag/diag_config.h b/marvell/lte-telephony/apps/diag/diag_config.h
index 9e237f9..445d4ce 100755
--- a/marvell/lte-telephony/apps/diag/diag_config.h
+++ b/marvell/lte-telephony/apps/diag/diag_config.h
@@ -105,7 +105,7 @@
 void LogcatTaskResume(ActiveConnectionType type);
 void LogcatTaskSuspend(ActiveConnectionType type);
 int change_sdlogfolderNum(void);
-
+int save_diag_default_media_config(int default_media);
 extern unsigned int DiagProdMode;
 extern struct diagConfiguration_tag diagConfig;
 
