if (DEVTYPE(dev) == MTD_ABSENT) {
blocklen = count;
erase_len = blocklen;
+ erasesize = erase_len;
block_seek = 0;
write_total = blocklen;
} else {
/* Maximum area we may use */
erase_len = environment_end(dev) - erase_offset;
+ if (DEVTYPE(dev) == MTD_NANDFLASH) {
+ /*
+ * NAND: calculate which blocks we are writing. We have
+ * to write one block at a time to skip bad blocks.
+ */
+ erasesize = blocklen;
+ } else {
+ erasesize = erase_len;
+ }
/* Offset inside a block */
block_seek = DEVOFFSET(dev) - erase_offset;
data = buf;
}
- if (DEVTYPE(dev) == MTD_NANDFLASH) {
- /*
- * NAND: calculate which blocks we are writing. We have
- * to write one block at a time to skip bad blocks.
- */
- erasesize = blocklen;
- } else {
- erasesize = erase_len;
- }
-
erase.length = erasesize;
/* This only runs once on NOR flash and SPI-dataflash */