diff --git a/package/uboot-envtools/patches/003-nor-eraselen.patch b/package/uboot-envtools/patches/003-nor-eraselen.patch
new file mode 100644
index 0000000000000000000000000000000000000000..267398640404c693697332b9267af30d1e10efb7
--- /dev/null
+++ b/package/uboot-envtools/patches/003-nor-eraselen.patch
@@ -0,0 +1,14 @@
+--- a/fw_env.c
++++ b/fw_env.c
+@@ -605,7 +605,10 @@ static int flash_write_buf (int dev, int
+ 	erase_offset = offset & ~(blocklen - 1);
+ 
+ 	/* Maximum area we may use */
+-	erase_len = top_of_range - erase_offset;
++	if (mtd_type == MTD_NANDFLASH)
++		erase_len = top_of_range - erase_offset;
++	else
++		erase_len = blocklen;
+ 
+ 	blockstart = erase_offset;
+ 	/* Offset inside a block */