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
nand booting
最新推荐文章于 2024-07-15 21:36:43 发布