NOTICE: The Processors Wiki will End-of-Life in December of 2020. It is recommended to download any files or other content you may need that are hosted on processors.wiki.ti.com. The site is now set to read only.

Managed NAND

From Texas Instruments Wiki
Jump to: navigation, search

Raw NAND and TI ROM Bootloaders (RBLs)

Managed NAND has been recommended as a possible alternative to raw NAND. This article discusses and compares raw NAND versus managed NAND support on TI bootloaders and suggests recommendations. Two main challanges while booting from a raw NAND:

Managed NANDs

Managed NANDs are RAW NANDs combined with a memory controller and can support popular interfaces such as MMC (eMMC, moviNAND), SD (eSD) and SPI. The memory controller hides the details of the NAND and provides the intended interface and ECC support. This means that a eMMC/eSD NAND can talk to a embedded TI device through MMC/SD controller.
The limitation arises because the latest eMMC/eSD standard in the market is ahead of what is supported currently in TI devices. The following table lists the IP support in TI DM/OMAP devices.

Devices MMC SD
DM355 3.31 1.1
DM6446 3.31 1.1
DM365 3.31 1.1
DM6467 NA NA
DM6437 NA NA
DM648 NA NA
OMAP3, AM3505/17, OMAP35xx, AM/DM37xx 4.2  2.0
OMAPL1xx, C674x, AM17xx, AM18xx 4 1.1
C6A8xx 4.4 2.1

Performance comparison

  • The table below compares performance throughput (both read and write) for different regular SD cards and managed NAND (eMMC/eSD) cards on DM355 Rev C silicon EVM for three different filesystems EXT2, EXT3 and VFAT mounted on SD/eMMC/eSD cards.
  • The kernel used to test this is from PSPv3.01 Phase 2 Release – 2.6.32-rc1 kernel.
  • The filesystem used is Arago filesystem that can be downloaded from link above.
  • Note that managed NAND performance is comparable with SD and SDHC cards.
  • More detailed results are available on request (please contact your local sales team for support).
Storage Device File System Read (Mbytes/s) Write (Mbytes/s) Comment
Raw NAND JFFS2 5.9 1.97 Buffersize=1024K; 0.8 when buffersize if 100K and 256K
SD EXT2 8.5 3.7 Using Sandisk 2G card
SDHC VFAT 11 8.76 Using Sandisk 16G card
eMMC EXT2 9.87 4.19 Samsung moviNAND 8GB KLM8G4DEFD-A301
eMMC EXT3 9.84 3.63 Samsung moviNAND 8GB KLM8G4DEFD-A301
eMMC VFAT 9.97 6.39 Samsung moviNAND 8GB KLM8G4DEFD-A301
eSD EXT2 10.27 3.54 SanDisk 4GB SDIN2C2-4G
eSD EXT3 9.09 4.36 SanDisk 4GB SDIN2C2-4G
eSD VFAT 10.22 7.24 SanDisk 4GB SDIN2C2-4G

Support in UBL,uBoot and Linux Kernel

To support Managed NAND after boot, all the software components (UBL,uBoot and Linux Kernel) should have MMC/SD boot support. Currently UBL and uBoot doesn't have the required support. Latest kernel, 2.6.32-rc1 from PSPv3.01 Phase 2 has MMC/SD support. However, there are few cards that are not recognized by the kernel correctly as is evident from SD/SDHC/eMMC/eSD Performance comparison above.

Is Managed NAND a good solution?

The following table bring us comparison between RAW and Managed NAND.

Features Raw NAND(MLC) Managed NAND
Nand Interface Issues Yes No
ECC required Yes No
MMC/SD interface No Yes
Speed z ~2z
Special software support No Yes
Advanced features No Yes

Recommendation

1. If price is not a driving factor, SLC NANDs will be supported in most of the current devices for atleast a couple of years.

2. If the device has MMC/SD support, eMMC/eSD is a reasonable solution.

3. If the device with a DSP doesn't have a MMC/SD support (DM648, DM6437, DM6446), and price is a driving factor (to rule out SLC NANDs), software solution for ECC should be considered.

References

1. Presentation on Managed NANDs [1]