mmc
文章平均质量分 86
ooonebook
这个作者很懒,什么都没留下…
展开
-
[mmc subsystem] host(第一章)——概述
一、host简单说明host,也可以理解为host controller,是指mmc总线上的主机端,mmc总线的控制器,每个host controller对应一条mmc总线。host controller会控制命令线、数据线和时钟线,从而实现mmc总线上的通讯。 上层发送mmc请求时,就是通过host controller产生对应的mmc通讯时序,下发至mmc设备,与mmc设备通讯。注意,h原创 2017-02-16 21:49:09 · 3400 阅读 · 3 评论 -
[sd card] mmc_blk层为sd card创建块设备流程
一、块设备框架以下内容摘自http://blog.csdn.net/jianchi88/article/details/7212370.1、块设备框架图块设备框架图2、说明各个层次说明由通用块层(Generic Block Layer)负责维持一个I/O请求在上层文件系统与底层物理磁盘之间的关系。在通用块层中,通常用一个bio结构体来对应一个I/O请求。在Linux中,驱动对块设备的输入或输出(原创 2017-03-10 19:53:59 · 4944 阅读 · 0 评论 -
[sd card] sd card初始化流程
以SD 3.0为例。 建议先参考《SD card初始化时的总线设置》。一、sd card初始化流程思路说明通过《SD_Ver3.00_Final_090416》协议中“4.2 Card Identification Mode ”和“4.3 Data Transfer Mode ”来进行说明。1、sd card操作模式和卡状态通过sd card有如上card状态以及对应的操作模式。inactive原创 2017-03-06 23:21:51 · 7354 阅读 · 0 评论 -
[sd card] sd card块设备(mmc_blk)读写流程学习笔记
零、说明前面介绍完sd card的协议中的初始化之后,接下来就是如何将sd card实现为一个块设备以及其读写流程的实现。 对应代码在drivers/mmc/card目录下block.c 、queue.c中。先研究sd card作为一个块设备的读写流程。 在学习sdcard块读写的过程中主要围绕以下几个问题进行学习:关于sd card 读写地址的问题?向mmc core发起mmc读写请求的接原创 2017-03-08 21:49:37 · 5875 阅读 · 0 评论 -
[sd card] SD card初始化时的总线设置
==============================================================零、在sd card初始化过程中,对于bus主要设置以下东西1、时钟,输出频率2、工作电压(注意和信号电压区分开来) 如下范围: (1)MMC_VDD_165_195 0x00000080 /* VDD原创 2017-03-05 15:42:09 · 7606 阅读 · 1 评论 -
[sd card] mmc硬件总线扫描流程(以sd card为例)
一、扫描mmc硬件总线扫描mmc硬件总线,也就是检测mmc硬件总线上是否有挂载card。更加通俗的,就是卡槽上是否有插入card。1、扫描mmc硬件总线的时机mmc core在如下情况下会去扫描mmc硬件总线:启动一个host的时候而调用mmc_detect_change 当启动一个host的时候,并不知道当前是否有card插入,此时需要调用mmc_detect_change来假设card插入状原创 2017-03-18 14:16:37 · 9694 阅读 · 0 评论 -
[mmc subsystem] mmc core(第六章)——mmc core主模块
一、说明1、mmc core概述mmc core主模块是mmc core的实现核心。也是本章的重点内容。 对应代码位置drivers/mmc/core/core.c。 其主要负责如下功能:mmc core初始化,包括注册mmc bus、mm host class等等mmc host的管理和维护,包括为其他模块提供mmc_host的操作接口,如下 host的启动和停止host的占用和释放原创 2017-02-14 19:55:07 · 5718 阅读 · 1 评论 -
[mmc subsystem] mmc core(第五章)——card相关模块(mmc type card)
mmc core中,card模块的概述和功能说明原创 2017-02-12 14:32:08 · 6120 阅读 · 1 评论 -
[mmc subsystem] mmc core(第四章)——host模块说明
mmc core中host模块的概述以及功能说明原创 2017-02-12 14:28:49 · 5217 阅读 · 1 评论 -
[mmc subsystem] mmc core(第三章)——bus模块说明
mmc core中bus模块的功能说明原创 2017-02-12 14:25:22 · 3823 阅读 · 1 评论 -
[mmc subsystem] mmc core(第一章)——概述
一、mmc core简单说明对应代码路径为drivers/mmc/core/.0、几个概念首先要理解以下几个概念mmc host:对应物理上的mmc控制器(host controller)。对应软件中的mmc_host结构体。mmc card:对应物理上的mmc设备。对应软件中的mmc_card结构体。mmc driver:用于驱动mmc card,实现对应的实际功能。对应软件中的mmc_dr原创 2017-02-12 14:22:08 · 6532 阅读 · 1 评论 -
[mmc subsystem] mmc core(第二章)——数据结构和宏定义说明
一、host相关1、struct mmc_hoststruct mmc_host是mmc core由host controller抽象出来的结构体,用于代表一个mmc host控制器。 * 数据结构如下:struct mmc_host { struct device *parent; // 对应的host controller的device struct devic原创 2017-02-14 19:52:13 · 4609 阅读 · 1 评论 -
[mmc subsystem] 概念与框架
mmc概念mmc软件框架和概述原创 2017-02-12 14:17:44 · 8449 阅读 · 2 评论 -
[mmc subsystem] host(第四章)——host实例(sdhci-msm说明)
一、说明sdhci-msm是指高通的mmc host,其使用了标准SDHC标准。故可以使用前面说的《host(第二章)——sdhci》和《host(第三章)——sdhci-pltfm说明》的接口。 后续代码以msm8916平台的host实现以及linux 4.6.0版本中的sdhci-msm的实现为例,这部分代码都是开源的。 由于有一些寄存器内容需要文档的支撑但我们并没有,所以这里只是简单地介绍原创 2017-02-16 21:52:44 · 3243 阅读 · 0 评论 -
[mmc subsystem] host(第三章)——sdhci-pltfm说明
一、sdhci-pltfm说明sdhci-pltfm并不是实际某个host的driver。 sdhci-pltfm是指在sdhci core的基础上,提供了统一对sdhci_host的必要属性进行解析和设置的方法。 但是,对于sdhci类的host driver来说,使用sdhci-pltfm并不是必须的,host driver也可以自己来实现对应的操作。 通过《host(第二章)——sdhc原创 2017-02-16 21:51:33 · 2828 阅读 · 1 评论 -
[mmc subsystem] host(第二章)——sdhci
一、sdhci core说明1、sdhci说明具体参考《host(第一章)——概述》 SDHC:Secure Digital(SD) Host Controller,是指一套sd host控制器的设计标准,其寄存器偏移以及意义都有一定的规范,并且提供了对应的驱动程序,方便vendor进行host controller的开发。 vendor按照这套标准设计host controller之后,可以直原创 2017-02-16 21:50:22 · 12632 阅读 · 3 评论 -
[emmc] emmc总线设置
一、说明1、设置总线时需要设置的内容时钟频率 host需要提供给emmc对应的时钟。如上述所说,不同的总线速度模式对应不同的最大时钟频率。 只需要设置host侧即可。总线速度模式的设置 这是host和emmc card通讯的一种时序规范,因此,host和emmc的总线速度模式必须匹配起来才能正常通讯。 需要设置host侧和emmc侧。总线宽度模式的设置 host和emmc通讯的DAT原创 2017-03-13 21:56:57 · 18261 阅读 · 3 评论