前提条件:开发板上已经通过别的方式把u-boot烧录好了
下面介绍一下通过tftp功能,烧录整个系统的方法
a、u-boot烧录u-boot
如果开发板nor flash里面已经烧录有u-boot,可以通过nor flash里面u-boot的tftp功能烧录bootloader到nandflash
1、下载bootloader到ram
tftp 30000000 u-boot.bin
2、擦除bootloader分区
nand erase bootloader
3、烧录u-boot到nandflash
nand write 30000000 bootloader
b、u-boot烧录kernel
1、下载kernel到ram
tftp 30000000 uImage
2、擦除kernel分区
nand erase kernel
3、烧录kernel到nandflash
nand write.jffs2 30000000 kernel
c、u-boot烧录rootfs
1、下载rootfs到ram
tftp 30000000 first_fs.yaffs2
2、擦除root分区
nand erase root
3、烧录root到nandflash
nand write.yaffs2 30000000 root
烧录完成之后,文件系统还是跑不起来,卡在下面这地方:
Warning: unable to open an initial console.
Failed to execute /linuxrc. Attempting defaults...
Kernel panic - not syncing: No init found. Try passing init= option to kernel.
解决方法:
在烧录文件系统时,不能把根文件系统烧录到整个root分区,这样会破坏根文件系统。
要按照文件系统本身的大小进行烧录,命令如下:
nand write.yaffs 30000000 0x00260000 $(filesize)
烧录完成之,整个系统一切正常