Uboot mmc命令解析&NAND flash uboot命令详解
转载:http://blog.csdn.net/simonjay2007/article/details/43198353
一:mmc的命令如下:
1:对mmc读操作
mmc read addr blk# cnt 2:对mmc写操作
mmc write addr blk# cnt 3:对mmc擦除操作
mmc erase blk# cnt 4:重新搜索mmc设备
mmc rescan 5:列出mmc的分区
mmc part - lists available partition oncurrent mmc device 6:查看当前的设备号,或者设置设备号及分区
mmc dev [dev] [part] - show or set currentmmc device [partition] 7:显示boot分区号
mmc bootpart [dev] [part] - show or setboot partition 8:列出当前的mmc设备
mmc list - lists available devices 9: 打印一些当前mmc设备的信息
mmcinfo 二、mmc命令详细解析
1:mmcinfo
输入:
mmcinfo
显示结果:
Manufacturer ID: 45
OEM: 100
Name: SEM08
Tran Speed: 25000000
Rd Block Len: 512
MMC version 4.0
Clock: 52000000
High Capacity: Yes
Capacity: 7944011776 Bytes
Bus Width: 8-bit DDR
Current Partition for boot: Boot partition 1
2:mmc list -lists available devices
输入:
mmc list
显示如下:
FSL_USDHC: 0
FSL_USDHC: 1
FSL_USDHC: 2
FSL_USDHC: 3
3:mmc dev[dev] [part] - show or set current mmc device [partition]
输入:
mmc dev 3
显示如下:
mmc3(part 0) is current device
分析:表示当前处于EMMC设备的第0个分区
输入:
mmc dev 3 1
显示如下:
mmc3(part 1) is current device
分析:设置当前处于EMMC设备的第1个分区
4:mmc bootpart [dev] [part] - show or set boot partition
输入:
mmc bootpart
显示如下:
Device 3: boot partition 1 is for boot
分析:uboot处于第一个分区
5:mmc part -lists available partition on current mmc device
输入:
mmc part
显示如下:
Partition Map for UNKNOWN device 3 -- Partition Type: DOS
Partition Start Sector Num Sectors Type
1 16384 16384 83
2 32768 16384 83
3 49152 6397952 5 Extd
4 6447104 9150464 83
5 49153 3145727 83
6 3194881 3145727 83
7 6340609 16383 83
8 6356993 8191 83
分析:显示当前EMMC的所有分区
6:mmc read addr blk# cnt
这个命令的作用是读取mmc上的数据到内存上
参数:
addr: 读取到内存的位置
blk: 读取block位置,这个位置是mmc的0地址的偏移量,是16进 制,block单位是512字节
cnt: 读取block个数,要读取到内存的数据大小,是16进制
block单位是512字节 例:
mmc dev 3 0
mmc read 0x10800000 600 10
命令分析:表示从mmc上1536×512个字节开始处(1536是600的十进制),读取16×512个字节(16是10的10进制)到内存0x10800000 处
显示结果:
MMC read: dev #3, block # 1536, count 16 ... 16 blocks read: OK
结果分析:
我们只能从结果看出来读取成功,但不能确定读取的内容是否正确,所以打印下内存的数据,看是否与mmc中的内容一致
输入:
md.b 0x10800000 100
命令分析:打印内存位置0x10800000的100个字节
显示结果:
10800000: b15ecb3c 6f62 746f 6564 616c 3d79 0033 ^.<.bootdelay=3.
10800010: 61626475 6172 6574 313d 3531 3032 0030 baudrate=115200.
10800020: 70696461 7264 313d 3239 312e 3836 312e ipaddr=192.168.1
10800030: 312e3330 7300 7265 6576 6972 3d70 3931 .103.serverip=19
10800040: 2e323631 2e38 2e31 3031 0031 656e 6d74 2.168.1.101.netm
10800050: 73613d6b 3532 2e35 3532 2e35 3532 2e35 ask=255.255.255.
.....
.......
结果分析:
我在mmc位置1536×512的位置储存的是环境变量,与内存打印的一致,读取正确
7:mmc write addr blk# cnt
这个命令的作用是将内存上的数据写入mmc中
参数:
addr: 从内存读取的位置
blk: 写入到mmc中block位置,这个位置是mmc的0地址的偏移量,是16进制,block单位是512字节
cnt: 写入到mmc中block个数,要写入的数据大小,是16进制,
block单位是512字节
例:
mmc dev 3
mmc write 0x108000000 0 100
命令分析:表示从内存0x108000000的位置上读取256*512的数据(256是100的十进制)到mmc上0的位置处,这里就不举例验证了
mmc上0的位置处是分区表,我把内存上的乱数据写进去后,uboot检测不到分区了
8:mmc erase blk# cnt
参数:
blk: 擦除的mmc中block位置,这个位置是mmc的0地址的偏移量,是16进制,block单位是512字节
cnt: 擦除的mmc中block个数,是16进制,block单位是512字节 NAND flash uboot命令详解:
1.nand info/nand device:显示NAND信息
DM365 :>nand info
Device : NAND 32MiB ,3V -bit, sector size KiB
2.nand read(.oob) addr off size
不管是读取data, 使用nand read,还是读取oob,使用命令nand read.oob, 后面跟的地址addr,都是ram的地址, off指的是nand flash的地址, size:指要读取nand flash的数据大小, 但是如果是读取oob, size不能超过一个page的oob size, 如果page size为512个字节, oob size就是16个字节.
DM365 :>nand read
NAND read: device offset 0x58000, size 0x100
bytes read: OK
DM365 :>md
: ea000012 e59ff014 e59ff014 e59ff014 ................
…………
DM365 :>nand read.oob
NAND read: device offset 0x58000, size 0x10
bytes read: OK
DM365 :>md
: ffffffff 2707ffff 33e316ad 44b2e1a1 .......'...3...D
如果一次想读取完整的一个page 的值,包含oob, 使用下面将的命令, nand dump. 3.nand dump [addr] [size]
调用过程: nand dump addr size (common/cmd_nand.c)==> nand_dump() ==> nand_read_raw();
nand dump 不管你的size有多大,至少会dump出一个page的大小:
SMDK2440 # nand dump
Page dump:
ea f0 9f e5 f0 9f e5 f0 9f e5
f0 9f e5 f0 9f e5 f0 9f e5 f0 9f e5
f8 f8 c0 f8 f8
f8 e0 f8 f8 ef be ad de
f8 f8 fa 6d fa
0f e1 1f c0 e3 d3 e3 f0 e1
…………
8c e5 fc 4d eb 9f e5 f0 3c eb
0d eb eb f4 9f e5 e5
eb 0d a0 e1 e5 a0 e3
OOB:
ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff
a6 ab 3c cf 5a
a7 cf f0 a6 3f
0c c3 c3 cc f3
4.nand write - addr off size
这个命令和nand read一样, 只是方向是反的, 是把ram的值写到 nand flash中, 但是这个写只能将1改为0, 不能将0写成1. 这个command会自动skipping bad blocks。
5.nand erase [clean] [off size]
在擦之前会先check是不是坏块,如果是坏块,就不能做擦的动作了。
DM365 :>nand dump 1cc000
Page 001cc000 dump: …………
df 5b bb 6e e7 5a 3d b9 c8 bf
OOB:
ff ff ff ff ff ff ff
ed cc 3a e0 8e f9 ad
DM365 :>nand erase 1cc000
NAND erase: device offset 0x1cc000, size 0x100
Warning: Erase size 0x00000100 smaller than one erase block 0x00004000
Erasing 0x00004000 instead
Erasing at 0x1cc000 -- % complete.
OK
DM365 :>nand dump 1cc000
Page 001cc000 dump:
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
…………
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
OOB:
ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff
DM365 :>mw
DM365 :>mw
DM365 :>mw
DM365 :>mw 8600000c
DM365 :>md
: ................
DM365 :>nand write.oob 1cc000
NAND write: device offset 0x1cc000, size 0x10
bytes written: OK
DM365 :>nand dump 1cc000
Page 001cc000 dump:
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
…………
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
OOB:
00: DM365 :>nand erase 1cc000
NAND erase: device offset 0x1cc000, size 0x100
Warning: Erase size 0x00000100 smaller than one erase block 0x00004000
Erasing 0x00004000 instead
Skipping bad block at 0x001cc000
OK
不常用
"nand scrub - really clean NAND erasing bad blocks (UNSAFE)\n"
"nand markbad off - mark bad block at offset (UNSAFE)\n"
"nand biterr off - make a bit error at offset (UNSAFE)\n"
"nand lock [tight] [status]\n"
" bring nand to lock state or display locked pages\n"
"nand unlock [offset] [size] - unlock section\n");
Uboot mmc命令解析&NAND flash uboot命令详解的更多相关文章
- 记录在tiny6410平台上采用4GSD卡来启动uboot和烧写nand flash uboot
下面这种方法是从网上转的 没有验证 环境:ubuntu 13.04一.首先制作sd启动盘: 插入SD卡 sudo dd iflag=dsync oflag=dsync if=tiny210v2- ...
- Linux命令:修改文件权限命令chmod、chgrp、chown详解
Linux系统中的每个文件和目录都有访问许可权限,用它来确定谁可以通过何种方式对文件和目录进行访问和操作. 文件或目录的访问权 限分为只读,只写和可执行三种.以文件为例,只读权限表示只允许读其内容,而 ...
- ubuntu 下命令行播放器mplayer 使用详解
ubuntu 下命令行播放器mplayer 使用详解 2011-01-02 21:00:42| 分类: Linux/Unix | 标签: |字号大中小 订阅 使用 MPlayer 播放媒体文件最简 ...
- FLASH动作脚本详解
FLASH动作脚本详解 一.FLASH脚本基础入门讲解 二.按钮AS的编写 三.影片剪辑的AS编写 四.动态文本框 五.影片剪辑的拖拽 六.流程控制与循环语句 七.绘图及颜色的AS的编写 八.声音 A ...
- 数据结构图文解析之:AVL树详解及C++模板实现
0. 数据结构图文解析系列 数据结构系列文章 数据结构图文解析之:数组.单链表.双链表介绍及C++模板实现 数据结构图文解析之:栈的简介及C++模板实现 数据结构图文解析之:队列详解与C++模板实现 ...
- Jquery遍历筛选数组的几种方法和遍历解析json对象|Map()方法详解
Jquery遍历筛选数组的几种方法和遍历解析json对象|Map()方法详解 一.Jquery遍历筛选数组 1.jquery grep()筛选遍历数组 $().ready( function(){ v ...
- Nand flash uboot 命令详解【转】
转自:http://blog.chinaunix.net/uid-14833587-id-76513.html nand info & nand device 显示flash的信息: DM36 ...
- Nand flash uboot 命令详解
转:http://blog.chinaunix.net/uid-14833587-id-76513.html nand info & nand device 显示flash的信息: DM365 ...
- linux nand flash常用命令
使用命令前用cat /proc/mtd 查看一下mtdchar字符设备:或者用ls -l /dev/mtd*#cat /proc/mtddev: size erasesize namemt ...
随机推荐
- DP - 字符混编
字符混编 Problem's Link ---------------------------------------------------------------------------- Mea ...
- thinkphp 如何调用百度echarts 数据报表插件
echarts官网网址:http://echarts.baidu.com/ echarts源码地址:http://echarts.baidu.com/build/echarts-2.2.7.zip ...
- 理财---炒股之kdj
http://jingyan.baidu.com/article/ac6a9a5ea4e9032b643eac4f.html 28转换: http://zhidao.baidu.com/link?ur ...
- 单引號转义符q’的使用
当字符串包括单引號时,能够使用转义符q'对单引號进行转义. q'后面的字符能够是: ! [ ] { } ( ) < > 前提是这些字符不会出如今兴许 ...
- Linux Shell Vim 经常使用命令、使用技巧总结
前言 本文总结了自己实际开发中的经常使用命令,不定时更新,方便自己和其它人查阅. 如有其它提高效率的使用技巧.欢迎留言. 本文地址 http://blog.csdn.net/never_cxb/art ...
- 去掉if
修改前 namespace CleanCSharp.Methods.Dirty { class BooleanSwitchingArgumentsExample { p ...
- PHP cURL库函数抓取页面内容
目录 1 为什么要用cURL? 2 启用cURL 3 基本结构 4 检查错误 5 获取信息 6 基于浏览器的重定向 7 用POST方法发送数据 8 文件上传 9 cURL批处理(multi cURL) ...
- 面试题思考:web中关于一些容器基本概念的简单总结
关键字:应用服务器.web服务器.web容器.jsp容器.servlet容器. 1.应用服务器: 作为应用程序服务器,要求可以通过各种协议(包括 HTTP 协议)把商业逻辑暴露给(expose)客户端 ...
- My97DatePicker设置,包括隐藏 清空,设置最大日期等 转载
My97DatePicker是一款非常灵活好用的日期控件.使用非常简单. 1.下载My97DatePicker组件包 2.在页面中引入该组件js文件: <script type=&quo ...
- Django学习笔记第五篇--实战练习一--查询数据库并操作cookie
一.启动项目: django-admin start mysite1 cd mysite1 python manage.py startapp loginapp 根据上文敲命令就可以创建好了一个项目结 ...