diff --git a/mbtk/mbtk_otad/Makefile b/mbtk/mbtk_otad/Makefile
index 28ba357..1ddd589 100755
--- a/mbtk/mbtk_otad/Makefile
+++ b/mbtk/mbtk_otad/Makefile
@@ -13,7 +13,8 @@
 # -Wno-error=unused-function
 CFLAGS +=
 
-DEFINE += -DCONFIG_AB_SYSTEM
+# -DCONFIG_AB_SYSTEM_DFOTA
+DEFINE += -DCONFIG_AB_SYSTEM -DCONFIG_AB_SYSTEM_DFOTA
 
 MY_FILES_PATH:=$(LOCAL_PATH)/src
 
diff --git a/mbtk/mbtk_otad/inc/tim.c b/mbtk/mbtk_otad/inc/tim.c
index b7c2ae5..cb0c976 100755
--- a/mbtk/mbtk_otad/inc/tim.c
+++ b/mbtk/mbtk_otad/inc/tim.c
@@ -468,4 +468,3 @@
 	OTA_DEBUG("%s: index: %d, size: 0x%x\n", __func__, DDRTimIndex, pTimInfo->ImageSize);
 	return NoError;
 }
-
diff --git a/mbtk/mbtk_otad/src/otad.c b/mbtk/mbtk_otad/src/otad.c
index 400c2b9..3cb6db3 100755
--- a/mbtk/mbtk_otad/src/otad.c
+++ b/mbtk/mbtk_otad/src/otad.c
@@ -34,7 +34,11 @@
 static int complete_read(int fd, char *buf, int size);
 static int complete_write(int fd, char *buf, int size);
 #include "tim.h"
+
+#if !defined(CONFIG_AB_SYSTEM_DFOTA)
 #include "tim.c"
+#endif
+
 #include "getfotav.c"
 
 #if 0
@@ -76,6 +80,7 @@
 #ifdef CONFIG_AB_SYSTEM
 #define MIN_RLS_VERSION 846
 
+#if !defined(CONFIG_AB_SYSTEM_DFOTA)
 static int upgrade_precheck(char *fotav)
 {
 	char *p;
@@ -98,6 +103,7 @@
 	/* support upgrade */
 	return 0;
 }
+#endif
 
 static int complete_read(int fd, char *buf, int size);
 static int complete_write(int fd, char *buf, int size);
@@ -145,7 +151,7 @@
 	unsigned int fotav_offset_in_fbf;
 	char fotav[128];
 #endif
-	char mtd_fbf[64];
+	char mtd_fbf[300];
 	struct version_info ver;
 };
 struct ota_server server_cfg;
@@ -859,6 +865,7 @@
 	return ret;
 }
 
+#if !defined(CONFIG_AB_SYSTEM_DFOTA)
 static int get_file_size(const char *path)
 {
 	int filesize = -1;
@@ -869,6 +876,7 @@
 		filesize = statbuff.st_size;
 	return filesize;
 }
+#endif
 
 static int system_sync()
 {
@@ -1860,8 +1868,7 @@
 #endif
 
 
-#ifdef CONFIG_AB_SYSTEM
-
+#if defined(CONFIG_AB_SYSTEM) && !defined(CONFIG_AB_SYSTEM_DFOTA)
 #ifdef CONFIG_PARTITION_EMMC
 static int emmc_boot_lock_unlock(int no, int lock)
 {
@@ -3414,11 +3421,7 @@
 	#define MAX_LINE_SIZE 128
 	char buf[MAX_LINE_SIZE] = {0};
 
-#if 1
-    server_cfg.interval = 5;
-    server_cfg.first_interval = 1;
-    server_cfg.progress_notify = 10;
-#else
+#if 0
     /*
     ota.@ota[0]=ota
     ota.@ota[0].fbf_address='0x2A60000'
@@ -3634,7 +3637,7 @@
 			#ifndef CONFIG_PARTITION_EMMC
 				sscanf(erasesize, "%x", &server_cfg.block_size);
 			#endif
-			snprintf(server_cfg.mtd_fbf, 64, "/dev/%s", name);
+			snprintf(server_cfg.mtd_fbf, 300, "/dev/%s", name);
 			server_cfg.fbf_addr = pCurrentMtdInfo->flash_start_offset;
 			OTA_DEBUG("Get MTD info: 0x%x\n", server_cfg.fbf_addr);
 			OTA_DEBUG(" name: %s\n", server_cfg.mtd_fbf);
@@ -3676,7 +3679,7 @@
 			int bln=0;
 			sscanf(name, "mtd%d", &bln);
 			server_cfg.fbf_addr = get_mtd_offset(bln);
-			snprintf(server_cfg.mtd_fbf, 64, "/dev/%s", name);
+			snprintf(server_cfg.mtd_fbf, 300, "/dev/%s", name);
 			OTA_DEBUG("Get MTD info:\n");
 			OTA_DEBUG(" name: %s\n", server_cfg.mtd_fbf);
 			OTA_DEBUG(" size: %08x\n", server_cfg.fbf_length);
