--- a/fw_env.c +++ b/fw_env.c @@ -790,7 +790,10 @@ static int flash_write_buf (int dev, int erase_offset = (offset / blocklen) * blocklen; /* 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 */