uboot sf 指令详解

举报
小麦大叔 发表于 2021/12/03 23:31:41 2021/12/03
【摘要】 之前在做的一个项目中,使用了spi-flash,uboot启动过程简单提到过,bootcmd和bootargs ; 我在这里打开了全志的SOC的配置文件,在uboot的include/configs/su...

之前在做的一个项目中,使用了spi-flash,uboot启动过程简单提到过,bootcmdbootargs
我在这里打开了全志的SOC的配置文件,在uboot的include/configs/suniv.h路径下,具体如下图所示:

bootcmd一般都会包含 bootm 或者 bootz 指令 ;

  • bootz:因为kernel和rootfs都保存在flash中,所以要先将他们搬运到ram中;
  • bootm:搬运完之后开始启动内核;

这里还有一个就是sf指令,下面简单介绍一下sf指令;
ubootsf 命令可以用来访问 SPI NOR flash;具体如下图所示:

使用方法:

检测 SPI NOR flash

syntax: sf probe [bus:]cs [hz] [mode]

  
 
  • 1

sf probe 2:0

在使用sf read sf write之前,一定要调用sf probe

sf erase

用来擦除blocks;


syntax:sf erase offset len

  
 
  • 1
  • 2

sf erase 0x0 0x300000

擦除偏移0x0处, 到0x300000之间的擦除块, 擦除操作是以erase block为单位的, 要求offset和len参数必须是erase block对齐的.

sf write

syntax: sf write mem-addr offset len

sf write 0x42000000 0x0 0x300000

  
 
  • 1

把内存0x42000000处的数据, 写入flash的偏移0x0, 写入数据长度为0x300000, 操作偏移和长度最小单位是Byte

sf read

syntax: sf read mem-addr offset len

sf read 0x82000000 0x10000 0x20000

  
 
  • 1

把flash偏移0x10000(64KB)处, 长度为0x20000(128KB)的数据, 写入到内存0x82000000, 操作偏移和长度最小单位是Byte

文章来源: great.blog.csdn.net,作者:小麦大叔,版权归原作者所有,如需转载,请联系作者。

原文链接:great.blog.csdn.net/article/details/117756488

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。