閱讀115 返回首頁    go 阿裏雲 go 技術社區[雲棲]


Hi3531添加16GByte(128Gbit) NAND Flash支持

0.板子上已有Nor Flash了,添加的Nand Flash型號為MT29F128G08CJABAWP,進係統掛接NAND作為一個分區

1.修改uboot
u-boot-2010.06/drivers/mtd/nand/nand_spl_ids.c
第108行,添加這個NAND Flash
{ {0x2C, 0x88, 0x05, 0xC6, 0x89, 0x00, 0x00, 0x00}, 8, _16G, NULL, "MT29F128G08CJABA", _4K,  _1M,       224,    0 },

2.編譯uboot
make ARCH=arm CROSS_COMPILE=arm-hisiv100nptl-linux- godnet_config
make ARCH=arm CROSS_COMPILE=arm-hisiv100nptl-linux-
...
cp ../../../uboot/u-boot-2010.06/u-boot.bin ./
./mkboot.sh reg_info_930_310_620_ddr0_ddr1_slow.bin u-boot.bin

3.修改內核
linux-3.0.y/drivers/mtd/nand/nand_spl_ids.c
第68行,添加這個設備
{ {0x2C, 0x88, 0x05, 0xC6, 0x89, 0x00, 0x00, 0x00}, 8, _16G, NULL, "MT29F128G08CJABA", _4K,  _1M,       224,    0 },

4.編譯內核
cp arch/arm/configs/godnet_defconfig .config
make ARCH=arm CROSS_COMPILE=arm-hisiv100nptl-linux- menuconfig
make ARCH=arm CROSS_COMPILE=arm-hisiv100nptl-linux- uImage
cp arch/arm/boot/uImage ...

5.燒寫u-boot
sf probe 0
mw.b 82000000 ff 100000
tftp 0x82000000 u-boot.bin
sf probe 0
sf erase 0 100000
sf write 82000000 0 100000
reset

6.燒寫內核
mw.b 82000000 ff 400000
tftp 82000000 uImage
sf probe 0
sf erase 100000 400000
sf write 82000000 100000 400000

7.燒寫文件係統
mw.b 82000000 ff b00000
tftp 0x82000000 rootfs_256k.jffs2
sf erase 500000 b00000
sf write 82000000 500000 b00000

8.設置啟動參數
setenv bootargs 'mem=64M console=ttyAMA0,115200 root=/dev/mtdblock2 rootfstype=jffs2 mtdparts=hi_sfc:1M(boot),4M(kernel),11M(rootfs);hinand:16G(nand)'
setenv bootcmd 'sf probe 0;sf read 0x82000000 0x100000 0x400000;bootm 0x82000000'
sa

9.擦除NAND(可選)
nand erase

10.進入係統mount
mount /dev/mtdblock3 /mnt/ -t yaffs2

11.檢查
# df
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/root                11264      4632      6632  41% /
tmpfs                    29196         4     29192   0% /dev
/dev/mtdblock3        16777216     13312  16763904   0% /mnt
一共16GByte,拷貝速度很快

12.其實不修改uboot也可以,這樣uboot就認不到NAND Flash,也就沒法在uboot erase,不過進係統了也可以用。

最後更新:2017-04-03 16:49:03

  上一篇:go 第五章 Spring3.0 、Hibernate3.3與Struts2的整合 基於Annotation
  下一篇:go 仁本項目 android命令備忘