【Hi3516A】烧写u-boot,kernel 以及rootfs到开发板

如果待移植单板中已有U-boot运行,则可以通过串口或网卡与服务器连接,直接移植更新U-boot;而如果是第一次烧写,则需要使用fastboot或者DS-5工具进行烧写。由于我的单板中已有U-boot运行,所以我采用网口分别将u-boot,kernel,rootfs烧写到Flash中,单板默认为从SPI Flash启动,所以本次也采用的是SPI Flash烧写方法。

前期准备:

1.首先保证开发板能ping通主机

单板上电后,敲任意键进入u-boot,设置serverip(即tftp服务器的ip)、ipaddr(单板ip),服务器ip与单板ip需在同一网段下(网线接到同一个路由器即可)

setenv serverip xx.xx.xx.xx
setenv ipaddr xx.xx.xx.xx

在这里插入图片描述
设置完成后记得保存saveenv环境变量值

保证网络通畅(注意:只能开发板ping主机,主机无法ping开发板)

hisilicon # ping 192.168.12.96
ETH0: PHY(phyaddr=1, rgmii) link UP: DUPLEX=FULL : SPEED=100M
MAC:   00-00-23-34-45-66
host 192.168.12.96 is alive //出现 is  alive 表示ping通了

在这里插入图片描述
注: 采用tftp服务最好先关闭防火墙,否则很有可能传输失败,如果ping不通也有可能是防火墙未关闭的原因

2.准备好要烧写的镜像
在这里插入图片描述

烧写映像文件到SPI Flash,以16M SPI Flash为例:
//地址空间说明
|      1M       |      3M       |      12M      |
|---------------|---------------|---------------|
|     boot      |     kernel    |     rootfs    |

//以下的操作均基于图示的地址空间分配,你也可以根据实际情况进行调整
一、烧写u-boot

步骤1. u-boot运行起来后,在串口终端中输入:

mw.b 0x82000000 ff 0x100000  //对内存初始化
tftp 0x82000000 u-boot-hi3516a.bin //将u-boot下载到内存
sf probe 0  //探测并初始化SPI flash
sf erase 0x0 0x100000  //擦除1M大小
sf write 0x82000000 0x0 0x100000  //从内存写入SPI Flash

在这里插入图片描述

步骤2. 重启系统后可以看到U-boot烧写成功

reset

在这里插入图片描述

扫描二维码关注公众号,回复: 10182250 查看本文章
二、烧写kernel
mw.b 82000000 ff 300000  //对内存初始化
tftp 82000000 uImage_hi3516a  //将内核镜像下载到内存
sf probe 0  //探测并初始化SPI Flash
sf erase 100000 300000  //擦除3M大小
sf write 82000000 100000 300000 //从内存写入SPI Flash
三、烧写rootfs
mw.b 82000000 ff C00000  //对内存初始化
tftp 0x82000000 rootfs_hi3516a_64k.jffs2 //将根文件系统下载到内存
sf probe 0  //探测并初始化SPI Flash
sf erase 400000 C00000  //擦除12M大小
sf write 82000000 400000 C00000  //从内存写入SPI Flash
四、设置启动参数
setenv bootargs 'mem=64M console=ttyAMA0,115200 root=/dev/mtdblock2 rootfstype=jffs2 mtdparts=hi_sfc:1M(boot),3M(kernel),12M(rootfs)'

setenv bootcmd 'sf probe 0;sf read 0x82000000 0x100000 0x300000;bootm 0x82000000'

saveenv  //保存
五、启动新系统
reset   //重新进入新系统

NAND Flash烧写方法如下:

步骤1. u-boot运行起来后,在串口终端中输入:

nand erase 0 100000    //擦除 1M 大小
mw.b 0x82000000 ff 100000  //对内存初始化
tftp 0x82000000 u-boot-hi3516a.bin //将u-boot镜像下载到内存
nand write 0x82000000 0 100000 //从内存写入 NAND Flash

步骤2. 重启系统后可以看到U-boot烧写成功

来自官方的提示: 烧写NAND Flash 和 SPI-NAND Flash 使用同样nand命令,因此要求单板上两种NAND Flash不能共存

发布了37 篇原创文章 · 获赞 13 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/Chen_qi_hai/article/details/104611717