没有合适的资源?快使用搜索试试~ 我知道了~
linux mmc子系统分析
5星 · 超过95%的资源 需积分: 49 94 下载量 37 浏览量
2013-05-17
10:19:18
上传
评论
收藏 54KB DOCX 举报
温馨提示
试读
41页
linux mmc子系统分析 ,非常详尽,协议与linux子系统中关于mmc部分的分析
资源推荐
资源详情
资源评论
如果你想对 mmc 子系统有下列需求的研究,那么恭喜你,找对地方了,更重要的是找对博客了,关于此
mmc 子系统学习笔记是 walfred 在学习过程中记载的,所以错误在所难免,所以请各位读者在阅读时如果
遇到问题,请留言评论,walfred 谢谢你的支持!
本 mmc 子系统主要讨论了下述内容:
关于 mmc 子系统,各硬件平台、各 Linux 版本之间的差异;
阅读 mmc 子系统需要的知识准备;
啥是是 mmc,啥又是 SD,啥又是 SDIO;
一些 LInux 设备模型的重现;
虚拟总线;
mmc 子系统的结构组织;
关于 platform 总线,研究的主线一;
关于 mmc 总线,研究的主线二;
关于 sdio 总线
相关结构体;比如oplatform_device 描述一个 platform 设备,platform driver 描述一个
msmsdcc_driver 设备驱动,描述 mmc card 的结构等等;
host 控制的结构体;
mmc 子系统的代码组织;
BSP 相关代码;
驱动相关代码;
主要代码分析;
mmc card 初始设备;
相关中断,及上下半步各完成什么工作;
定时器相关的一些介绍;
mmc 子系统学习笔记二o关于 mmc 子系统笔记的说明
mmc 子系统是 Linux 设备驱动中一个不可缺少的部分,但科技进步,时代发展,现在 mmc 已经不是从前
的 mmc(Multimedia Card),现在 mmc 子系统已经衍生到 SD,SDIO 相关的技术了,也就是说 mmc 子
系统已经能够管理控制 SD 和 SDIO 相关了,但是由于历史的原因,仍称呼为 mmc 子系统。
mmc 子系统差异说明:
本 mmc 子系统学习笔记一o以 htc g5(android)手机的 linux 内核为例,除设备资源外的差别之外,
和其他 linux 内核无异。
内核版本:2.6.x
linux 设备驱动多分为多层次管理,只有最底层一般会和设备资源相关,故 mmc 子系统的最底层才与
不同厂商打交道,如 s3c,msm,omap 等,但是处理流程一样,无多少变化。
关于 mmc
MMC:Multi Media Card 的缩写,即多媒体卡。24mm*32mm*1.mm。以前的 MMC 规范的数据传
输宽度只有 1 位,最新的 1.0 版 MMC 中拓宽了 4 位和 8 位带宽,时钟频率也达到了 52MHZ,从而理所当
然的支持 50MHZ 的传输速率。值得一提的是,对于 SD 时代提倡的“数据安全”特性,MMC 协会也终于接
纳了具有竞争性的安全卡协议——Secure MMC1.1 规范。o
关于 SD,SDIO
SD(Secure Digital Memory Card),即安全数码存储卡,建议读法是 SD 存储卡。它在 MMC 的基
础上发展而来,并且增加了相对于 MMC 的两个新特色:传输速率比 2.11 版本的 MMC 快了将近 4 倍,另
外 SD 存储卡强调数据的安全,可以设定数据的使用权限,防止他人复制。
在数据和物理规范上,SD 存储卡向前兼容 MMC 卡,在外观上,SD 存储卡只是在厚度上比 MMC 卡
厚了 0.7mm。
更多关于 mmc 和 sd、sdio 的介绍,请查看:SDIO 相关学习
mmc 子系统学习笔记三ommc 子系统知识储备
有了先前的介绍,我们这边需要为阅读 mmc 子系统做一点知识储备,重点储备是关于 Linux 设备模型,
以及中断上下文和进程上下文的一些简单介绍。
Linux 设备模型:
这个 walfred 曾经做好了一个系列,地址是:Linux 设备模型学习笔记阅读
进程上下文和中断上下文:
处理器总处于以下状态中的一种:
1、内核态,运行于进程上下文,内核代表进程运行于内核空间;
2、内核态,运行于中断上下文,内核代表硬件运行于内核空间;
3、用户态,运行于用户空间。
用户空间的应用程序,通过系统调用,进入内核空间。这个时候用户空间的进程要传递很多变量、
参数的值给内核,内核态运行的时候也要保存用户进程的一些寄存器值、变量等。所谓的“进程上下文”,
可以看作是用户进程传递给内核的这些参数以及内核要保存的那一整套的变量和寄存器值和当时的环境等。
硬件通过触发信号,导致内核调用中断处理程序,进入内核空间。这个过程中,硬件的一些变量和
参数也要传递给内核,内核通过这些参数进行中断处理。所谓的“中断上下文”,其实也可以看作就是硬件
传递过来的这些参数和内核需要保存的一些其他环境(主要是当前被打断执行的进程环境)。
mmc 子系统学习笔记四ommc 子系统的结构组织
从这一节起,我们正式进入 mmc 子系统学习笔记内容,这边 walfred 就根据自己的观点,整理了一份
Linux 下 mmc 子系统的结构组织框架,相信带着这个框架来理解学习 mmc 子系统应该会起到不错的效果。
下面是 mmc 子系统的结构组织:
在 Linux 中,系统中 mmc 子系统本身没有任何 README 文档,所以此算一个"帮助文档"。
其将涉及到 3 条总线,2 块设备,2 个驱动。
三条总线
总线名
platform mmc sdio
类型
structbus_type
变量名
platform_bu
s
mmc_bus_typ
e
sdio_bus_type
这个我们可以在/sys/bus 中查看。
两块设备
设备
名
msm_sdcc mmc_card
类型
structplatform_device structmmc_card
备注
msm_sdcc(soc)
由前者 sdcc 的驱动,对 mmc/sd/sdio 的统一抽象
msm_sdcc(全称应该是 sdcardcontroller 集成到 soc,所以属 platform_device,优点具有较好
的移植性和安全性),mmc_card(由前者 sdcc 的驱动,对 mmc/sd/sdio 的统一抽象);
两组驱动
驱动名
msmsdcc_driver mmc_driver
类型
structplatform_driver structmmc_driver
备注
对应与上面的 2 块设备,分别是 msmsdcc_driver,mmc_driver;
它们之间的关系
关于 platform 总线,下文研究的主线一
驱动 msmsdcc_driver,以及设备 msm_sdcc 是通过 platform_bus 关联。
关于 mmc 总线,下文研究的主线二
驱动 mmc_driver,以及设备 mmc_card 是通过该总线关联
关于 sdio 总线
尚未过多研究,此处暂时并考虑。以后会陆续补充。
相关结构体
这是描述一个 platform 设备的
这是 msm_device_sdc 设备
!!" 名
"
#$$#%&'()*+"资源个数
"指向资源的指针
,-.////"
"
这是描述一个 msmsdcc_driver 设备驱动的
00"
"
"
!!"
"
剩余40页未读,继续阅读
wxf120620056
- 粉丝: 1
- 资源: 21
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
前往页