Other Parts Discussed in Thread: AM3505
Dear Sir or Madam,
We are using a CM-T3517 computer-on-module ("COM") from Compulab. It contains the subject microcontroller and a Hynix H27U1G8F2BTR-BC NAND chip. Our target system software ( Yocto embedded Linux) needs to be able to update x-loader ("x-load.bin.ift" also known as "MLO") in nand block 0. After erasing block 0 and programming it with a new version of the x-loader (in the target system) the system does not boot. I know that block 0 should be treated differently as far as error correction. I have used "nanddump" to read out the x-loader from block 0 and the files show no difference. Here are example commands that I use:
flash_eraseall /dev/mtd0 or
flash_erase /dev/mtd0 0 0
nandwrite -p --noecc /dev/mtd0 x-load.bin.ift
nanddump --noecc -l 34614 -f x-load.bin.ift.dump /dev/mtd0
diff x-load.bin.ift x-load.bin.ift.dump
I'm guessing that the 1-bit ECC scheme is not being done correctly by either "nandwrite" or the kernel driver for the Nand. I know that block 0 is special because its error-correcting has to match what the ROM loader expects.
Thanks for your help,
Kirby Cartwright
(Contract) Software Engineer - Sustaining