Hi,
Background:
I'm fairly new to all things NAND, so please forgive me if I make a mistake in my terminology. My question concerns c6678 support for ONFI nand devices. The NAND which comes with the c6678 EVM is a very old (obsolete), small page nand, made by a company which no longer exists. However, the PDK's platform library for the c6678 seems to have it's nand driver hard-coded for this particular nand (for example eccLoc[] array in evm66x_nand.c, NAND_SPARE_AREA_READ, and many more locations). Our HW design uses a modern ONFI compliant NAND, which does not work with the platform library's nand driver as the page size, block size, number of blocks, ECC layout, and even command set are different.
Problem:
We want to boot the c6678 from NAND. To flash the nand image, the mcsdk provides the nandwriter utility. To boot from nand, the mcsdk provides the IBL. It seems to me that the IBL does not uses the PDK's platform library, and can be configured to read from various nands. however, the nandwriter utility uses the PDK platform library, and cannot write to my nand. Because I can't write the application image to the nand, I cannot boot from nand.
Questions:
1) is the above correct? Especially, is it true that the PDK's nand support is hard coded for non-ONFI nands?
2) is there a ONFI-compliant nand-writer/platform-library somewhere?
3) how are other people dealing with this? do people modify the platform library and add a custom nand-driver?
Thanks,
Joel