This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Selecting Flash NAND, NOR, eMMC boot time

Other Parts Discussed in Thread: AM3352

Can anyone provide some details on the differences between using NAND, NOR, and eMMC to boot from? 

The BBB and the EVMSK both use eMMC or SDK cards for storing code and data, is that because they are easier to work with from a design standpoint? 

I see several posts about using NAND Flash but not too much on using NOR, why is that? 

My understanding is that NOR allows XIP, and hence faster boot up, does anybody have any info on how much faster the boot up is? Can you do XIP from NAND Flash?

My understand is that NOR Flash is more reliable than NAND Flash for storing boot code and the OS, is that still true?

We are designing the AM3352 with Linux into a board mostly for networking web server kind of stuff; reliability and low design risk is important. Boot time is somewhat important we'd like it to be less than a couple of seconds tops, which seems doable. The data on the Flash is going to be pretty static, mostly code and a small number of configuration parameters. 

Thanks,
Matt S. 

  • Hi Matt,

    It's entirely a designer's decision. XIP stands for "eXecute In Place", meaning that the code can be run directly from the memory device instead of being uploaded to RAM. NAND memories are block devices, so XIP is impossible on them.

    Yes, NAND memories tend to "flip" bits over time, and there is an ECC mechanism implemented in the NAND interface that corrects this. The other alternative is managed NAND or eMMC, which behaves like an SD card with internal handling of ECC, bad block management etc.

    You can check section 26 of the AM335X TRM Rev. J for details on AM335X initialization.

  • Thank you for responding but I was hoping for some more specifics.

    I understand what XIP is but I was wondering what kind of speed up one could expect over using NAND? 

    I also understand the concepts of managed NAND and ECC, etc. Has it gotten to the point where ECC algorithms are so good that we really don't need to worry about NAND bit flip errors for storing U-BOOT and OS. 

    It seems that going with a single NAND device for storing U-BOOT, OS, and configuration data is simpler and probably cheaper than using NOR for  U-BOOT and OS and some other technology (NAND or EEPROM) for storing configuration data to an EEPROM or auxiliary NAND device. I'm wondering if there are any real downsides to using just NAND Flash.?