I was wondering about the following warnings while bootings linux 3.15.0-rc5:
[ 0.998885] nand: device found, Manufacturer ID: 0x98, Chip ID: 0xd1 [ 1.005485] nand: Toshiba NAND 128MiB 3,3V 8-bit [ 1.010165] nand: 128MiB, SLC, page size: 2048, OOB size: 64 [ 1.016176] Scanning device for bad blocks [ 1.022444] Bad eraseblock 1 at 0x000000020000 [ 1.027444] Bad eraseblock 2 at 0x000000040000 [ 1.032612] Bad eraseblock 3 at 0x000000060000 I noticed that these are the FCB pages for the NAND boot. Google found me this old thread. Nevertheless, I applied the patch on our custom i.MX28 board and the warnings disappeared. But I still have some questions and remarks: Marek Vasut-3 wrote > Fix the method of flashing FCB blocks into NAND. The new env > writes all four FCB blocks and also does not scrub such a big > part of the NAND. This fixed complains about busted NAND blocks > in Linux. > > + "update_nand_write_fcb=" \ > + "setenv i ${update_nand_count} ; " \ > + "setenv update_nand_offset 0x0 ; " \ > + "setexpr update_nand_step " \ > + "${update_nand_stride} * ${nand_writesize} ; " \ > + "while test ${i} -gt 0 ; do " \ > + "echo ${update_nand_offset} ; " \ > + "nand scrub -y ${update_nand_offset} " \ > + "${nand_erasesize} ; " \ > + "nand write.raw ${loadaddr} " \ > + "${update_nand_offset} " \ > + "${update_nand_stride} ; " \ Why not just write a page (which contains the FCB) instead of the whole stride? There is also a problem about scrubbing of size 128K (which is the erase size) and writing 128K (which is the size of a search area with 64 pages). This works for the default settings (fuses not blown) of search stride = 1*64 and search count = 4. But if the fuses is blown and stride = 2*64 and count = 2 it will scrub 128K and write 256K (size of 128 pages). So the second half of the search area is not erased before writing. Marek Vasut-3 wrote > "update_nand_full=" /* Update FCB, DBBT and FW */ \ > "if tftp ${update_nand_full_filename} ; then " \ > "run update_nand_get_fcb_size ; " \ > - "nand scrub -y 0x0 ${filesize} ; " \ > - "nand write.raw ${loadaddr} 0x0 ${fcb_sz} ; " \ > + "run update_nand_write_fcb ; " \ > "setexpr update_off ${loadaddr} + ${update_nand_fcb} ; " \ > "setexpr update_sz ${filesize} - ${update_nand_fcb} ; " \ > "nand write ${update_off} ${update_nand_fcb} ${update_sz} ; " \ Running update_nand_write_fcb erases and writes the FCB search area. The remaining bytes of the u-boot.nand file are writting before erasing the corresponding NAND flash bytes. I added something like this before: "setexpr update_off ${loadaddr} + ${update_nand_fcb} ; " \ "setexpr update_sz ${filesize} - ${update_nand_fcb} ; " \ + "nand erase ${update_nand_fcb} ${update_sz}; " \ "nand write ${update_off} ${update_nand_fcb} ${update_sz} ; " \ Is there any reason why this patch is not applied to the u-boot-imx repo? -- View this message in context: http://u-boot.10912.n7.nabble.com/PATCH-1-3-tools-mxsboot-Staticize-functions-tp162080p180393.html Sent from the U-Boot mailing list archive at Nabble.com. _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot