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 rmgpt和mmc create使用。
9) mmc rmgpt
移除当前所有分区。
10) mmc slc size reliable_write
设置slc分区大小,size代表要设置的slc分区字节数。
size为0代表不设置slc mode;软件会将size修改为对齐并向上取整,确保实际设置的size不小于用户输入的size;
reliable_write为0代表不使能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
表示对ecsd的B3寄存器的bit6置1,而:
mmc setecsd B3 0x40 0x0
则表示对ecsd的B3寄存器的bit6置0
开发调试用,一般情况下禁用。
14) mmc size
显示当前emmc的可用容量,块大小及块总数
显示已经设置的slc size,slc分区的最大size,emmc对reliable write的支持和设置状况。
15) mmc slcchk
检查当前的slc/mlc配置,相关的状态保存在ENV中。
16) mmc relwrchk
检查当前的reliable write配置,相关的状态保存在ENV中。
17) mmc slcrelwrchk
检查当前的slc/mlc和reliable 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 => 从0号block处擦除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分区大小的对齐单位。