大家好,欢迎来到IT知识分享网。
一、uboot下,nandflash,norflash,emmc不同介质,烧镜像的命令和启动配置
我的板卡,是按hisi的推荐,设计的启动方式,接的是spi接口的norflash,作为启动介质(不需要初始化),nand(需要初始化)作为烧录镜像文件(uboot,kernel,fs),以及存储文件的硬盘。
1、烧写映像文件到SPI Nor Flash
以16M SPI Nor Flash为例。地址空间说明
1M | 4M | 11M |
---|---|---|
boot | kernel | rootfs |
以下的操作均基于图示的地址空间分配,您也可以根据实际情况进行调整。 |
烧写u-boot sf probe 0 mw.b ff tftp u-boot-hi3521d.bin sf probe 0 sf erase 0 sf write 0 reset 烧写内核 mw.b ff tftp uImage_hi3521d sf probe 0 sf erase sf write 烧写文件系统 mw.b ff b00000 tftp rootfs_hi3521d_64k.jffs2 sf probe 0 sf erase b00000 sf write b00000
5)设置启动参数
setenv bootargs 'mem=64M console=ttyAMA0, root=/dev/mtdblock2 rootfstype=jffs2 rw mtdparts=hi_sfc:1M(boot),4M(kernel),11M(rootfs)' setenv bootcmd 'sf probe 0;sf read 0x 0x 0x;bootm 0x' saveenv
2、烧写映像文件到NAND Flash
以64M NAND Flash为例。地址空间说明
1M | 4M | 32M | 27M |
---|---|---|---|
boot | kernel | rootfs | other |
以下的操作均基于图示的地址空间分配,您也可以根据实际情况进行调整。 |
烧写u-boot mw.b ff tftp u-boot-hi3521d.bin nand erase 0 nand write 0 reset 烧写内核 mw.b ff tftp uImage_hi3521d nand erase nand write 烧写文件系统 mw.b ff tftp rootfs_hi3521d_2k_4bit.yaffs2 nand erase nand write.yaffs 96d200 #注意:96d200为rootfs文件实际大小(16进制)
5)设置启动参数
setenv bootargs 'mem=64M console=ttyAMA0, root=/dev/mtdblock2 rootfstype=yaffs2 rw mtdparts=hinand:1M(boot),4M(kernel),32M(rootfs),27M(test)' setenv bootcmd 'nand read 0x 0x 0x;bootm 0x' sa
3、emmc烧录
1M(boot),16M(kernel),512M(rootfs),28G(data)
//kernel tftp 0x uImage_hi3559av100_multi-core mmc write 0x0 0x 0x800 0x8000 //length 0x8000 * 512bytes //rootfs tftp 0x rootfs_multi-core_512M.ext4 mmc write.ext4sp 0x0 0x 0x8800 0x //length 0x * 512bytes
设置启动参数
setenv bootcmd 'mmc read 0 0x 0x35000 0x30cb; go_a53up,0x; mmc read 0x0 0x 0x800 0x412c;bootm 0x'; setenv bootargs 'mem=512M console=ttyAMA0, root=/dev/mmcblk0p3 rw rootwait rootfstype=ext4 blkdevparts=mmcblk0:1M(boot),16M(kernel),512M(rootfs),28G(data)'
setenv bootcmd 'mmc read 0 0x 0x800 0x4800; bootm 0x' setenv bootargs 'mem=512M console=ttyAMA0, rw rootwait root=/dev/mmcblk0p3 rootfstype=ext4 blkdevparts=mmcblk0:1M(boot),16M(kernel),512M(rootfs),28G(data)'
配置norflash,nandflash,emmc启动参数总结:
norflash :root=/dev/mtdblock2 nandflash :root=/dev/mtdblock2 emmc :root=/dev/mmcblk0p3
二、hisi3520dv400,HiTool.exe工具烧录镜像
烧录好后,设置uboot环境变量,ip,服务器ip等。
setenv baudrate setenv use_mdio 0 setenv ethaddr=d2:34:88:84:c2:b0 setenv bootfile "uImage" setenv bootdelay 3 setenv filesize CA0000 setenv fileaddr setenv gatewayip 192.168.0.1 setenv netmask 255.255.255.0 setenv ipaddr 192.168.0.199 setenv serverip 192.168.0.7 setenv bootargs 'mem=128M console=ttyAMA0, root=/dev/mtdblock2 rootfstype=jffs2 rw mtdparts=hi_sfc:1M(boot),4M(kernel),24M(rootfs)' setenv bootcmd 'sf probe 0;sf read 0x 0x 0x;bootm 0x' setenv stdin serial setenv stdout serial setenv stderr serial setenv verify n saveenv printenv reset
1、Windows上tftp服务器工具
也可以使用Windows下的tftp工具,如下图,下载一个工具,
在Windows,安装tftp32工具,将要下载的镜像,放入同一级目录,目录名称不能有中文最好,打开工具,自动识别到当前目录和ip,没有就自己手动填对。
将kernel,和fs放入到工具目录下,启动tftp工具,点击hisi工具烧录,重新断电上电,一分钟可烧完。
方法2、linux下的tftp服务器或Windows下tftp服务工具,通过uboot下tftp命令下载
注意:如果是emmc,就要用emmc命令,如果是nand,就要用nand命令,我是spi norflash,用spi命令
setenv baudrate setenv use_mdio 0 setenv ethaddr=d2:34:88:84:c2:b0 setenv bootfile "uImage" setenv bootdelay 3 setenv filesize CA0000 setenv fileaddr setenv gatewayip 192.168.0.1 setenv netmask 255.255.255.0 setenv ipaddr 192.168.0.199 setenv serverip 192.168.0.7 setenv bootargs 'mem=128M console=ttyAMA0, root=/dev/mtdblock2 rootfstype=jffs2 rw mtdparts=hi_sfc:1M(boot),4M(kernel),24M(rootfs)' setenv bootcmd 'sf probe 0;sf read 0x 0x 0x;bootm 0x' setenv stdin serial setenv stdout serial setenv stderr serial setenv verify n saveenv printenv reset
uboot要先设置好serverip,就是主机ip,在linux系统,搭建好tftp服务器,一定要确保能通
烧写u-boot
sf probe 0 mw.b ff tftp u-boot-hi3520dv400.bin sf probe 0 sf erase 0 sf write 0 reset
烧写内核
mw.b ff tftp uImage_hi3520dv400 sf probe 0 sf erase sf write
烧写文件系统
mw.b ff tftp rootfs_hi3520.jffs2 sf probe 0 sf erase sf write
nfs挂载: setenv baudrate setenv use_mdio 0 setenv ethaddr=d2:34:88:84:c2:b0 setenv bootfile "uImage" setenv bootdelay 3 setenv filesize CA0000 setenv fileaddr setenv gatewayip 192.168.0.1 setenv netmask 255.255.255.0 setenv ipaddr 192.168.0.99 setenv serverip 192.168.0.85 setenv bootargs 'mem=128M noinitrd init=/linuxrc console=ttyAMA0, root=/dev/nfs rw nfsroot=192.168.0.85:/root/2109/decode/rootfs_hi3520,v3 ip=192.168.0.142:192.168.0.85:192.168.0.1:255.255.255.0::eth0:off' setenv bootcmd 'sf probe 0;sf read 0x 0x 0x;bootm 0x' setenv stdin serial setenv stdout serial setenv stderr serial setenv verify n saveenv printenv reset
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/137805.html