海思3516u-boot参数设置说明

一、使用HiTool烧写:

nor/nand flash与emmc使用的镜像不一致,nor/nand flash可使用官方SDK中编译好的镜像来烧写,emmc需配置config为emmc方式重新编译出镜像才能烧写;

烧写nor/nand flash或emmc前,先将启动模式配置到相应模式:

海思3516u-boot参数设置说明_第1张图片海思3516u-boot参数设置说明_第2张图片海思3516u-boot参数设置说明_第3张图片

参考《HiBurn 工具使用指南.pdf》将镜像烧写到flash/emmc中

二、配置u-boot:

nor flash-32M:

setenv bootargs 'mem=512M console=ttyAMA0,115200 root=/dev/mtdblock2 rootfstype=jffs2 rw mtdparts=hi_sfc:1M(boot),4M(kernel),27M(rootfs)'  

setenv bootcmd 'sf probe 0;sf read 0x81000000 0x100000 0x400000;bootm 0x81000000'

nand flash-32M:

setenv bootargs 'mem=512M console=ttyAMA0,115200 root=/dev/mtdblock2 rootfstype=jffs2 rw mtdparts=hi_nand:1M(boot),4M(kernel),27M(rootfs)'  

setenv bootcmd 'nand read 0x81000000 0x100000 0x400000;bootm 0x81000000'

emmc-16G:

setenv bootargs 'mem=512M console=ttyAMA0,115200 root=/dev/mmcblk0p3 rootwait rootfstype=ext4 rw blkdevparts=mmcblk0:1M(boot),4M(kernel),14905M(rootfs)'  

setenv bootcmd 'mmc read 0 0x81000000 0x800 0x2000;bootm 0x81000000'

说明:

bootargs:

  1. mem=xxxM 分配给Linux操作系统的内存大小;

  2. root=/dev/xxx 指定根文件系统所在的设备号、分区号;

  3. rootfstype=xxx 指定根文件系统类型;

  4. rw 声明启动权限,即以读写方式启动;

  5. rootwait 指等待设备/dev/mmcblk0p1设备就绪后才尝试挂载rootfs,仅emmc需要该参数;

  6. mtdparts/blkdevparts 根据flash/emmc总容量划定各分区大小;

bootcmd:

  • sf read 0x81000000 0x100000 0x400000; OR nand read 0x81000000 0x100000 0x400000;

           0x81000000 将flash读取到内存的地址

           0x100000 flash读起始地址    

           0x400000 flash读长度

  • mmc read 0 0x81000000 0x800 0x2000;

           0 emmc设备号

           0x81000000 将emmc读取到内存的地址

           0x800 emmc读起始块号

           0x2000 emmc读长度块计数

emmc 块号/块计数计算方法:

海思3516u-boot参数设置说明_第4张图片

根据u-boot启动时打印的信息,得知emmc的块大小为512byte(如上图);

kernel起始地址为1M(1*1024*1024byte),则起始块号为:blk#=1*1024*1024/512=2048,转换为16进制为0x800;

kernel长度为4M(4*1024*1024byte),则块长度计数为:cnt=4*1024*1024/512=8192,转换为16进制为0x2000。

你可能感兴趣的:(海思3516u-boot参数设置说明)