迅为龙芯iTOP2K1000开发板NAND FLASH启动(烧写系统到nand)
核心板上板载了一个大小为 512mb 的 nand flash,所以我们可以直接将系统烧写到 nand 上,从 nand上来启动系统,这样就不用通过固态或者 U 盘了。
这里我们使用 tftp 来烧写系统,我们需要在 Ubuntu 系统上搭建 tftp 服务,如大家不清楚要如何在 Ubuntu上安装 tftp,请参考手册 4.4 章节。
这里大家也可以使用别的媒介来烧录,如果 U 盘,烧写思路为将 U 盘或者 tftp 中的镜像拷贝到对应的nand flash 分区,所以使用 tftp 烧写的本质是通过网络将 pmon,内核,文件系统等镜像拷贝到 nand flash分区。
1、准备系统镜像
搭建好 tftp 服务后,我们需要将要烧写的 PMON 镜像,内核镜像,文件系统镜像拷贝到虚拟机 Ubuntu
的 tftp 目录下,如下图所示:
<ignore_js_op>
2、设置网络
首先,我们需要进到 PMON 命令行下,使用命令 ifaddr syn0 192.168.1.10 设置开发板的 IP 地址和虚拟机 Ubuntu 的 IP 在同一个网段下,并可以 ping 通虚拟机,如下图所示:
<ignore_js_op>
烧写完成后重启开发板 PMON 即可更新成功。
3、加载 PMON 镜像
注意:这里不建议大家在没有 Ejtag 的情况下对 PMON 进行操作,以免开发板变砖。
设置完网络后,我们输入命令 load -f 0xbfc00000 -r tftp://192.168.1.38/gzrom-dtb.bin,其中 192.168.1.38北京迅为电子有限公司 基于国产龙芯 SOC
为虚拟机 Ubuntu 的 IP 地址,如下图所示
<ignore_js_op>
烧写完成后重启开发板 PMON 即可更新成功。
4、分区格式化 nand flash
在 pmon 命 令 行 下 输 入 命 令 mtd_erase /dev/mtd0 , 分 区 格 式 化 分 区 mtd0 , 如 下 图 所 示 :
<ignore_js_op>
在 pmon 命令行下输入命令 mtd_erase /dev/mtd1 分区格式化分区 mtd1,如下图所示:
<ignore_js_op>
5 、拷贝文件系统镜像
在 PMON 目录下输入命令 devcp tftp://192.168.1.38/rootfs.yaffs2 /dev/mtd1y 拷贝内核镜像到开发板nand flash 的/dev/mtd1 分区,其中 y 是以 yaffs2 格式拷贝,192.168.1.38 为虚拟机 Ubuntu 的 IP 地址,拷贝成功如下图所示:
<ignore_js_op>
6、拷贝内核镜像
在 PMON 目录下输入命令 devcp tftp://192.168.1.38/vmlinuz /dev/mtd0 拷贝内核镜像到开发板 nand
flash 的 mtd0 分区,其中 192.168.1.38 为虚拟机 Ubuntu 的 IP 地址,拷贝成功如下图所示:、
<ignore_js_op>
7、设置环境变量
设置环境变量 al1 的值,使用命令 set al1 /dev/mtd0。设置完如下图所示:
<ignore_js_op>
设置环境变量 append 的值,使用命令 set append "console=ttyS0,115200 init=/linuxrc rootfstype=yaffs2 rwroot=/dev/mtdblock1",设置完如下图所示:
<ignore_js_op>
然后输入 saveenv 保存,如下图所示:
<ignore_js_op>
设置完成以后,重启开发板,登录账号为 root,密码为 topeet,启动成功如下图所示:
<ignore_js_op>
至此,给 nand flash 烧写系统完毕。