1.用tftp命令烧写系统
tftp命令
tftpboot命令使用TFTP协议从服务器下载文件,服务器的IP地址为环境变量serverip。
用法为“tftpboot [loadAddress] [bootfilename]”,
loadAddress表示文件下载后存放的内存地址,bootfilename表示要下载的文件的名称。
nand 相关命令
“nand erase [clean] [off size]”
擦除NAND Flash。加上“clean”时,表示在每个块的第一个扇区的OOB区加写入清除标记;off、size表示要擦除的开始偏移地址和长度,如果省略off和size,表示要擦除整个NAND Flash。
“nand read[.jffs2] addr off size”
从NAND Flash偏移地址off处读出size个字节的数据,存放到开始地址为addr的内存中。是否加后缀“.jffs”的差别只是读操作时的ECC较验方法不同。
“nand write[.jffs2] addr off size”
把开始地址为addr的内存中的size个字节数据,写到NAND Flash的偏移地址off处。是否加后缀“.jffs”的差别只是写操作时的ECC较验方法不同。
从nor启动
nandflash 分区情况
OpenJTAG> mtd
device nand0 <nandflash0>, # parts = 4
#: name size offset mask_flags
0: bootloader 0x00040000 0x00000000 0
1: params 0x00020000 0x00040000 0
2: kernel 0x00200000 0x00060000 0
3: root 0x0fda0000 0x00260000 0
active partition: nand0,0 - (bootloader) 0x00040000 @ 0x00000000
烧写整个系统
1.烧写nandflash中的uboot
tftp 0x30000000 u-boot.bin
nand erase bootloader
nand write 0x30000000 bootloader或者nand write.jffs2 0x30000000 0x0 $(filesize) 注:用tftp下载文件后文件的大小会存在filesize变量里
2.烧写uImage
tftp 0x30000000 uImage
nand erase kernel
nand write.jffs2 0x30000000 kernel或nand write.jffs2 0x30000000 0x60000 $(filesize)
3.烧写文件系统
tftp 0x30000000 fs_qtoqia.yaffs2
nand erase root
nand write.yaffs 0x30000000 0x26000 $(filesize)
或者
tftp 0x30000000 fs_qtoqia.jffs2
nand erase root
nand write.jffs2 0x30000000 0x26000 $(filesize)
注意:
当烧写的是jffs2映象文件,要正确启动的话,还要通过命令行参数指定根文件系统类型为jffs2。
在u-boot菜单里输入字母q退出菜单,然后使用如下命令设置:
OpenJTAG> set bootargs noinitrd root=/dev/mtdblock3 init=/linuxrc console=ttySAC0 rootfstype=jffs2
OpenJTAG> save
指定“rootfstype=jffs2”的原因是:如果不指定,内核首先把它当作YAFFS进行挂载,
如果不成功,再尝试JFFS2。但是对于大多数JFFS2文件系统来说,可以被“错误地”当作YAFFS挂载,但是挂载之后并不能正确使用。
2.用nfs命令烧写系统
nfs 30000000 192.168.1.102:/nfsboot uImage