docboot: nandwrite: Input file is not page aligned

Dan Brown dan_brown at
Tue Oct 11 14:02:11 EDT 2005

Joseph M Dupre (AVAB Inc.) wrote:

>3 bootstub sectors, 10 real-mode sectors, 2420 kernel sectors, 1737 
>initrd sectors
Seems reasonable...

>The generated doc_spl is 2201760 bytes.
Also reasonable.  Each page is 512 data + 16 OOB

2201760 = 4170 * (512 + 16)

4170 = 3 + 10 + 2420 + 1737

>I am using the uClibc "Buildroot" toolchain.  Dev machine is i686 and 
>target is i486 with a DOC 2000 (MD2202-D128)
>Originally I was using the MTD utils generated by Buildroot to erase 
>and load the DOC, but they were using mtd source from Debian's 
>archive dated 22/1/05.  I built the current versions of the MTD utils 
>but have the same error.
Well, I guess the next step is to examine the code in nandwrite carefully.  What it does is query the device (in your case /dev/mtd1) to find out the size of the data (should be 512) and oob (should be 16) portions of a page.  It also queries the size of the file to be written, and verifies that the filesize is an integer multiple of the pagesize.  We can get at much of the same info using mtd_debug:

./mtd_debug info /dev/mtd1

Could you send me the output from that?  On my DOC device it says (among other things):

mtd.erasesize = 16384 (16K)
mtd.oobblock = 512
mtd.oobsize = 16

If you get the same result, then we're in really weird territory, and I'd start to wonder if the mtd tools just don't build (or run) properly under uClibc.  Is there any chance you can use a standard glibc environment to doublecheck?


More information about the linux-mtd mailing list