DM355 NAND Partitions

DM355 EVM supports Big Block NAND up to 2GB, both MLC and SLC technologies.


The production boards have 2GB SLC NAND chip - MT29F16G08FAA, with a block size of 128KB. The 2GB MLC NAND chip - MT29F16G08QAA, has a block size of 256KB. Both the NAND chips have a page size of 2K.


There are two chip selects required to program the NAND space (1GB each), thus the NAND driver in U-Boot and Kernel treat the NAND chip as two NAND devices.


A bad block table is maintained by the U-Boot, in the last two blocks of each NAND device (for each 1GB space). When U-Boot comes up for the first time on a new NAND device, it scans through the NAND space to identify bad blocks and creates the bad block table. This bad block table is consulted by both U-Boot and Kernel on any writes to the NAND space.


The Initial 16 blocks are allocated for the bootloader components - UBL, U-Boot and Environment space.

Block 1 through 7  : UBL descriptor and UBL

Block 8 through 9  : U-Boot descriptor

Block 10 through 14 : U-Boot

Block 15  : U-boot Environment variables

Note that extra blocks are allocated for the UBL and U-Boot to make sure there is at least one good block available for the corresponding descriptor and binary.


The U-Boot allows the user to upgrade itself into a new version. Based on the bootloader partition table above, U-Boot starts at the 10th block. So for SLC chips you should be using 0x140000 and for MLC chips you should be using 0x280000 as offsets during U-Boot upgrade from U-Boot.

For 2GB SLC NAND chip (MT29F16G08FAA):

tftp 0x80700000 u-boot-1.2.0-dm355_evm.bin

nand erase 0x140000 0x20000

nand write 0x80700000 0x140000 0x20000

For 2GB MLC NAND chip (MT29F16G08QAA):

tftp 0x80700000 u-boot-1.2.0-dm355_evm.bin

nand erase 0x280000 0x20000

nand write 0x80700000 0x280000 0x20000


The Kernel image can be loaded starting Block 16, which is at offset 0x200000 for SLC NAND chip and 0x400000 for MLC NAND chip. To avoid confusion, I recommend using 0x400000 for both the chips. 4MB space is allocated for the Kernel. The Kernel also creates MTD partitions for NAND flash components:

"bootloader": block 0 - block 14

"params": block 15

"kernel": 4MB starting block 16

"filesystem1": 512MB for the reduced filesystem (busybox based)

"filesystem2": Remaining ~1.45GB, could be used for the MV target filesystem

The "filesystem1" partition has been created to use a reduced filesystem. There is a known issue with YAFFS2 mount time. If a single filesystem with complete MV target filesystem, on each reboot it could take up to 15 mins to complete the mount process.

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值