diff --git a/ROMFS/CMakeLists.txt b/ROMFS/CMakeLists.txt
index bcc4fb58a64d9af76ca876a1d00f8a70d8b6d65f..062ef498eb1ad6784c662f7e7fafdea87e3af04d 100644
--- a/ROMFS/CMakeLists.txt
+++ b/ROMFS/CMakeLists.txt
@@ -189,17 +189,53 @@ add_custom_command(OUTPUT romfs.img romfs.txt
 	COMMENT "ROMFS: generating image"
 	)
 
-# create nsh_romfsimg.c
-find_program(XXD xxd)
-if(NOT XXD)
-    message(FATAL_ERROR "xxd not found")
+if(CONFIG_FS_CROMFS)
+	#TODO:build gencromfs tool from nuttx and path to it.
+	find_program(GENCROMFS gencromfs)
+	if(NOT GENCROMFS)
+		message(FATAL_ERROR "gencromfs not found")
+	endif()
+	# create nsh_romfsimg.c
+	add_custom_command(OUTPUT nsh_romfsimg.c
+		COMMAND ${CMAKE_COMMAND} -E remove -f nsh_romfsimg.c
+		COMMAND ${GENCROMFS} ${romfs_gen_root_dir}  nsh_romfsimg.c
+		DEPENDS
+			${romfs_gen_root_dir}/init.d/rcS
+			${romfs_gen_root_dir}/init.d/rc.autostart
+			romfs_extras.stamp
+			romfs_pruned.stamp
+		COMMENT "ROMFS: generating image"
+		)
+
+else()
+	find_program(GENROMFS genromfs)
+	if(NOT GENROMFS)
+		message(FATAL_ERROR "genromfs not found")
+	endif()
+	# create romfs.img
+	add_custom_command(OUTPUT romfs.img romfs.txt
+		COMMAND ${CMAKE_COMMAND} -E remove -f romfs.img romfs.txt
+		COMMAND ${GENROMFS} -f romfs.img -d ${romfs_gen_root_dir} -V "NSHInitVol" -v > romfs.txt 2>&1
+		DEPENDS
+			${romfs_gen_root_dir}/init.d/rcS
+			${romfs_gen_root_dir}/init.d/rc.autostart
+			romfs_extras.stamp
+		COMMENT "ROMFS: generating image"
+		)
+
+		# create nsh_romfsimg.c
+		find_program(XXD xxd)
+		if(NOT XXD)
+		    message(FATAL_ERROR "xxd not found")
+		endif()
+		add_custom_command(OUTPUT nsh_romfsimg.c
+			COMMAND ${CMAKE_COMMAND} -E remove -f nsh_romfsimg.c
+			COMMAND ${XXD} -i romfs.img nsh_romfsimg.c
+			COMMAND sed 's/unsigned/const unsigned/g' nsh_romfsimg.c > nsh_romfsimg.c.tmp && ${CMAKE_COMMAND} -E rename nsh_romfsimg.c.tmp nsh_romfsimg.c
+			DEPENDS romfs.img
+			)
 endif()
-add_custom_command(OUTPUT nsh_romfsimg.c
-	COMMAND ${CMAKE_COMMAND} -E remove -f nsh_romfsimg.c
-	COMMAND ${XXD} -i romfs.img nsh_romfsimg.c
-	COMMAND sed 's/unsigned/const unsigned/g' nsh_romfsimg.c > nsh_romfsimg.c.tmp && ${CMAKE_COMMAND} -E rename nsh_romfsimg.c.tmp nsh_romfsimg.c
-	DEPENDS romfs.img
-	)
+
 
 add_library(romfs STATIC nsh_romfsimg.c)
 add_dependencies(romfs prebuild_targets)