qiuri2008

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

mmc command.
         
目前Mboot支持以下mmc命令:

1) mmc read/write.
    
读写命令。Addr = 内存地址, blk# = 起始block数, size = 需要读写的大小。
    比如:#mmc read 0x50000000 0x400b 0x400000, 表示从第0x400b(0x400b*0x200 = 0x801600)处开始读0x400000 bytes大小数据到内存0x50000000 返回打印OK说明读成功。
          #mmc write 0x50000000 0x400b 0x400000, 表示将内存起始处0x50000000开始算的数据共0x400000 bytes写到第0x400b块起始处。返回打印OK说明写成功。
  Mmc write最新的code在末尾加了一个参数1,格式如下:
  #mmc write 0x50000000 0x400b 0x400000 1
  表示本次写操作跳过空白无效数据段不写,默认不加的话则不区分将所有数据写进emmc.
2) mmc read.p/write.p/write.p.continue.
  也是读写命令,与mmc read/write 不同的是第二个参数不是blk#, 而是分区名partition_name,这样省去升级时再手动计算各分区便宜。比如:

  #mmc read.p/write.p 0x50000000 boot 0x400000
  mmc write.p.continue
命令是将数据写到指定分区偏移处。比如:
  #mmc write.p.continue 0x50000000 userdata 0x6400000 0xa00000,0x50000000保存的c长度为0xa00000的数据写到userdata分区0x6400000偏移处。
  同样返回OK说明读/写成功。同样 write.p/write.p.continue在末尾加上了参数1,与mmc write命令同样效果。
3) mmc rescan
  初始化命令,因为在每个命令前都做过,所以用处不多。
4) mmc part
  打印当前分区信息。
5) mmc dev
  显示当前分区以及分区间切换,这里的分区是mmc硬件分区,并不是mmc part列出来的软件分区。用法:#mmc dev 0 1, 如果当前在硬件分区0, 该命令可以切换至硬件分区1
6) mmc list
  列出当前所用mmc设备命令。
7) mmc create
  创建mmc分区,用法:
  #mmc create boot 0x400000, 即创建分区名为boot, 大小0x400000 bytes的分区。需要注意的是分区需要依顺序创建,也就是说如果当前已经有2个分区,再敲这个命令的话boot会算为第3个分区。
8) mmc remove
  移除mmc分区,用法:
  #mmc remove boot,即移除boot分区。
  该命令尽量少用,如果想update分区表的话请配合mmc rmgptmmc create使用。
9) mmc rmgpt
  移除当前所有分区。
10) mmc slc size reliable_write
  设置slc分区大小,size代表要设置的slc分区字节数。
  size0代表不设置slc mode;软件会将size修改为对齐并向上取整,确保实际设置的size不小于用户输入的size
  reliable_write0代表不使能reliable write功能,反之则打开reliable write
  如果想将全部可转化空间都转换为slc mode,可以使用mmc slc 0xffffffff
  开发调试用。
11) mmc ecsd
  打印ecsd寄存器信息,开发调试用。
12) bin2emmc
  将Fat32 U盘中的mmc bin文件烧进mmc中。CL540869支持。
13) mmc setecsd num mask value
  修改ecsd寄存器,可以单个bit修改。比如:
  mmc setecsd B3 0x40 0x40
  表示对ecsdB3寄存器的bit61,而:
  mmc setecsd B3 0x40 0x0
  则表示对ecsdB3寄存器的bit60
  开发调试用,一般情况下禁用。

14) mmc size
  显示当前emmc的可用容量,块大小及块总数
  显示已经设置的slc sizeslc分区的最大sizeemmcreliable write的支持和设置状况。
15) mmc slcchk
  检查当前的slc/mlc配置,相关的状态保存在ENV中。
16) mmc relwrchk
  检查当前的reliable write配置,相关的状态保存在ENV中。
17) mmc slcrelwrchk
  检查当前的slc/mlcreliable write配置,相关的状态保存在ENV中。
18) mmc unlzo
  解压缩lzo分区镜像并写进mmc分区,如将0x50000000地址保存的大小100M的镜像解压写入system分区:
  #mmc unlzo 0x50000000 0x6400000 system
19) mmc erase
  mmc erase blk#/partition_name size, 
如:
  #mmc erase 0 0x400000 => 0block处擦除4M大小
  #mmc erase boot 0x400000 =>擦除boot分区开始往后4M数据
  #mmc erase =>整个chip擦除
20) mmc dd
  mmc/usb
之间互相dump raw data, 会损坏u盘文件系统,使用前请先备份U盘数据。默认用usb port 0
  #mmc dd mmc2usb =>dump mmc中数据到usb
  #mmc dd usb2mmc =>dump usb中数据到
mmc
21) mmc alignsize
  查询SLC分区大小的对齐单位。

posted on 2019-07-08 19:10  江召伟  阅读(2385)  评论(0编辑  收藏  举报