nand booting

kernel: v2.6.37
[    1.281738] omap2-nand driver initializing
[    1.286376] NAND device: Manufacturer ID: 0xad, Chip ID: 0xbc (Hynix )
[    1.293182] Creating 5 MTD partitions on "omap2-nand.0":
[    1.298736] 0x000000000000-0x000000080000 : "X-Loader"
[    1.305541] 0x000000080000-0x0000001c0000 : "U-Boot"
[    1.312347] 0x0000001c0000-0x000000280000 : "U-Boot Env"
[    1.319213] 0x000000280000-0x000000780000 : "Kernel"
[    1.327484] 0x000000780000-0x000020000000 : "File System"
# cat /proc/mtd
dev:    size   erasesize  name
mtd0: 00080000 00020000 "X-Loader"
mtd1: 00140000 00020000 "U-Boot"
mtd2: 000c0000 00020000 "U-Boot Env"
mtd3: 00500000 00020000 "Kernel"
mtd4: 1f880000 00020000 "File System"

写一些文件到空的NAND里,首先需要从其它的地方启动。比如MMC/SD 卡启动
1. MMC/SD卡启动需要的文件(MLO & U-Boot)
把需要写入nand 的文件放在MMC/SD卡的FAT分区上
那么就可以从SD卡读出并写入NAND
2. x-loader
编译x-loader并生成x-loader.bin.ift,把它放入MMC/SD卡的第一个FAT分区,用以下的命令写入X-loader 到NAND
# mmc init
# fatload mmc 0:1 80000000 MLO
# nandecc hw 2
# nand erase 0 80000
# nand write 80000000 0 80000
3. u-boot
编译u-boot并生成u-boot.bin放入MMC/SD卡的第一个FAT分区
# mmc init
# fatload mmc 0:1 80000000 u-boot.bin
# nandecc hw 2
# nand erase 80000 160000
# nand write 80000000 80000 160000
4.kernel
# mmc init
# fatload mmc 0:1 80000000 uImage
# nandecc hw 1
# nand erase 280000 400000
# nand write 80000000 280000 400000
5.File system
 # nand info
Device 0: nand0, sector size 128 KiB
物理擦除块大小128 KiB


6.making UBIFS
# git clone git://git.infradead.org/mtd-utils.git
# cd mtd-utils
# make

#!/bin/sh
./mkfs.ubifs -r rootfs -m 2048 -e 126976 -c 3991 -o ubifs.img
./ubinize -o ubi.img -O 2048 -m 2048 -p 128KiB -s 512 ubinize.cfg
# cat ubinize.cfg
[ubifs]
mode=ubi
image=ubifs.img
vol_id=0
vol_size=450MiB
vol_type=dynamic
vol_name=rootfs
vol_flags=autoresize

7.fastboot
fastboot erase xloader
fastboot flash xloader MLO

fastboot erase bootloader
fastboot flash bootloader u-boot.bin

fastboot erase boot 
fastboot flash boot uImage

fastboot erase system
fastboot flash system ubi.img

8.setenv
#setenv nandboot 'echo Booting from nand ...; nand read ${loadaddr} ${boot_nand_offset} ${boot_nand_size}; bootm ${loadaddr}'
# setenv bootcmd 'run nandboot'
# setenv bootargs 'console=ttyO2,115200n8 androidboot.console=ttyO2 mem=512M ubi.mtd=4,2048 rootfstype=ubifs \
    root=ubi0:rootfs rootdelay=1 init=/init ip=off omap_vout.vid1_static_vrfb_alloc=y  \
    omapdss.def_disp=lcd omapfb.mode=lcd:800x480MR-16 vram=8M omapfb.vram=0:8M mpurate=1000'
#saveenv
#boot

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值