Linux-使用uboot命令将Linux镜像和设备树文件下载到DRAM中

一、使用uboot中的tftp命令将Linux镜像和设备树文件下载到DRAM中

  1.uboot中的tftp命令格式如下:

1 tftpboot [loadAddress] [[hostIPaddr:]bootfilename]

  loadAddress:要保存的DRAM地址;

  [[hostIPaddr:]bootfilename]:要下载的文件地址。

  比如使用uboot的tftp命令将tftp文件夹中的zImage下载到DRAM的0x8080 0000地址处,然后再将设备树imx6ull-fire-emmc.dtb下载到DRAM的0x8300 0000地址处,最后使用bootz命令启动:

1 tftp 80800000 zImage
2 tftp 83000000 imx6ull-fire-emmc.dtb
3 bootz 8080000083000000

   注意:在使用tftp服务的时候需要给对应的文件目录以及文件对应的权限,通常设置文件的权限方式为“chmod 777 xxx”;

二、使用uboot中的nfs命令将Linux镜像和设备树文件下载到DRAM中

  1.uboot中的nfs命令格式如下:

1 nfs [loadAddress] [[hostIPaddr:]bootfilename]

  loadAddress:要保存的DRAM地址;

  [[hostIPaddr:]bootfilename]:要下载的文件地址。

  比如使用uboot的nfs命令将nfs文件夹中的zImage下载到DRAM的0x8080 0000地址处,然后再将设备树imx6ull-fire-emmc.dtb下载到DRAM的0x8300 0000地址处,最后使用bootz命令启动:

1 nfs 80800000 192.168.1.110:/home/robot/linux/nfs/zImage
2 nfs 83000000 192.168.1.110:/home/robot/linux/nfs/imx6ull-fire-emmc.dtb
3 bootz 80800000 - 83000000

   注意:在使用nfs服务的时候需要给对应的文件目录以及文件对应的权限,通常设置文件的权限方式为“chmod 777 xxx”;

三、使用uboot中的fatload命令将EMMC中的Linux镜像和设备树文件下载到DRAM中

  1.在EMMC作为Flash的Linux开发板中EMMC通常有3个分区:

  (1)分区0:用来存放uboot;

  (2)分区1:用来存放Linux镜像和设备树;

  (3)分区2:用来存放根文件系统。

  2.使用fatinfo命令查询指定EMMC设置指定分区的文件系统信息,格式如下:

1 fatinfo <interface> [<dev[:part]>]

  interface:表示接口,如emmc;

  dev:表示查询的设备号;

  part:表示查询的分区。

  比如查询EMMC分区1的文件系统信息,命令如下: 

1 fatinfo mmc 1:1

  结果如下图所示:

  EMMC分区1的文件系统为FAT16格式。

  3.使用fstype命令查看EMMC设备某个分区的文件系统格式,命令格式如下:

1 fstype <interface> <dev>:<part>

  interface:表示接口,如emmc;

  dev:表示查询的设备号;

  part:表示查询的分区。 

  比如查看3个分区的文件系统格式,命令如下:

1 fstype mmc 1:0    /* 查看分区0 */
2 fstype mmc 1:1    /* 查看分区1 */
3 fstype mmc 1:2    /* 查看分区2 */

  结果如下图所示:

  

  分区0没有格式化文件系统格式未知;分区1格式为fat;分区2格式为ext4。

  4.使用fatload命令将指定的文件读取到DRAM中,命令格式如下:

1 fatload <interface> [<dev[:part]> [<addr>[<filename> [bytes [pos]]]]]

  interface:接口,如:emmc;

  dev:设备号;

  part:分区;

  addr:保存在DRAM中的起始地址;

  filename:要读取的文件名;

  bytes:读取字节数,如果为0或者省略表示读取整个文件;

  pos:要读的文件相对于文件首地址的偏移,如果为0或者省略表示从文件首地址开始读取;

  比如使用fatload命令将emmc分区1中的zImage下载到DRAM的0x8080 0000地址处,然后再将设备树imx6ull-fire-emmc.dtb下载到DRAM的0x8300 0000地址处,最后使用bootz命令启动:

fatload mmc 1:1 80800000 zImage
fatload mmc 1:1 83000000 imx6ull-fire-emmc.dtb
bootz 80800000 - 83000000
原文地址:https://www.cnblogs.com/wenhao-Web/p/13208933.html