+ int block;
+ int page = ONENAND_START_PAGE, offset = 0;
+ int pagesize = 0, erase_shift = 0;
+ int erasesize = 0, nblocks = 0;
+
+ if (onenand_readw(ONENAND_REG_TECHNOLOGY)) {
+ pagesize = 4096; /* MLC OneNAND has 4KiB pagesize */
+ erase_shift = 18;
+ } else {
+ pagesize = 2048;
+ erase_shift = 17;
+ }
+
+ erasesize = ONENAND_PAGES_PER_BLOCK * pagesize;
+ nblocks = (CONFIG_SYS_MONITOR_LEN + erasesize - 1) >> erase_shift;