自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(48)
  • 资源 (7)
  • 收藏
  • 关注

原创 [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 9577

原创 [emmc] emmc总线设置

一、说明1、设置总线时需要设置的内容时钟频率 host需要提供给emmc对应的时钟。如上述所说,不同的总线速度模式对应不同的最大时钟频率。 只需要设置host侧即可。总线速度模式的设置 这是host和emmc card通讯的一种时序规范,因此,host和emmc的总线速度模式必须匹配起来才能正常通讯。 需要设置host侧和emmc侧。总线宽度模式的设置 host和emmc通讯的DAT

2017-03-13 21:56:57 18108 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 4881

原创 [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 5780

原创 [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 7289

原创 [sd card] SD card初始化时的总线设置

==============================================================零、在sd card初始化过程中,对于bus主要设置以下东西1、时钟,输出频率2、工作电压(注意和信号电压区分开来)    如下范围:   (1)MMC_VDD_165_195        0x00000080    /* VDD

2017-03-05 15:42:09 7484 1

原创 [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 3220

原创 [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 2812 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 12433 3

原创 [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 3284 3

原创 [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 5675 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 4558 1

原创 [mmc subsystem] mmc core(第五章)——card相关模块(mmc type card)

mmc core中,card模块的概述和功能说明

2017-02-12 14:32:08 6058 1

原创 [mmc subsystem] mmc core(第四章)——host模块说明

mmc core中host模块的概述以及功能说明

2017-02-12 14:28:49 5194 1

原创 [mmc subsystem] mmc core(第三章)——bus模块说明

mmc core中bus模块的功能说明

2017-02-12 14:25:22 3810 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 6430 1

原创 [mmc subsystem] 概念与框架

mmc概念mmc软件框架和概述

2017-02-12 14:17:44 8385 2

原创 [project X]tiny210 操作说明(合入到主基线的版本)

本篇文章是tiny210合入project X项目主基线之后的操作说明,是[project X] tiny210 操作说明 的更新。 另外,该操作针对于initramfs格式的rootfs以及fit-uImage的uImage格式(对initramdisk和legacy uImage不支持)。零、项目说明project X项目是由wowo发起的,希望能够在一个项目中可以支持多个板子的项目。 在w

2017-02-05 11:33:44 1974 1

原创 [uboot] uboot启动kernel篇(三)——uboot解析uImage的kernel信息

bootm启动kernel的过程中解析Legacy-uImage的原理和流程。bootm启动kernel的过程中解析FIT-uImage的原理和流程。

2016-12-09 21:47:25 8473 1

原创 [uboot] uboot启动kernel篇(二)——bootm跳转到kernel的流程

bootm命令执行流程跳转到kernel的流程

2016-12-06 22:54:11 27027 3

原创 [uboot] uboot启动kernel篇(一)——Legacy-uImage & FIT-uImage

一、uImage编译kernel之后,会生成Image或者压缩过的zImage。但是这两种镜像的格式并没有办法提供给uboot的足够的信息来进行load、jump或者验证操作等等。因此,uboot提供了mkimage工具,来将kernel制作为uboot可以识别的格式,将生成的文件称之为uImage。 uboot支持两种类型的uImage。Legacy-uImage FIT-uImage

2016-12-06 22:51:19 22242 6

原创 [uboot] (番外篇)uboot dm-gpio使用方法以及工作流程

uboot的dm框架下gpio的使用方法uboot的dm框架下gpio的工作流程uboot的dm框架下gpio driver的实现

2016-11-25 21:17:56 14897 7

原创 [uboot] (番外篇)uboot串口&console&stdio设备工作流程

uboot串口输出流程console工作流程stdio设备工作流程

2016-11-23 22:23:23 8680 2

原创 [uboot] (番外篇)uboot 驱动模型

uboot引入了驱动模型(driver model),这种驱动模型为驱动的定义和访问接口提供了统一的方法。提高了驱动之间的兼容性以及访问的标准型。uboot驱动模型和kernel中的设备驱动模型类似,但是又有所区别。在后续我们将驱动模型(driver model)简称为DM,其实在uboot里面也是这样简称的。这篇文章里介绍的DM的流程以及如何使用。

2016-11-19 20:19:51 41346 17

原创 [uboot] (番外篇)uboot之fdt介绍

介绍uboot中的device tree的配置以及使用。简单流程介绍等等

2016-11-17 20:36:11 27210 5

原创 [uboot] (第六章)uboot流程——命令行模式以及命令处理介绍

以下例子都以project X项目tiny210(s5pv210平台,armv7架构)为例[uboot] uboot流程系列: [project X] tiny210(s5pv210)上电启动流程(BL0-BL2) [project X] tiny210(s5pv210)从存储设备加载代码到DDR [uboot] (第一章)uboot流程——概述 [uboot] (第二章)uboot流程——

2016-11-14 20:39:26 12600 1

原创 [uboot] (第五章)uboot流程——uboot启动流程

uboot启动流程

2016-11-07 20:12:07 16622

原创 [uboot] (番外篇)uboot relocation介绍

uboot relocation

2016-11-05 21:29:22 13253 2

原创 [uboot] (番外篇)global_data介绍

以下例子都以project X项目tiny210(s5pv210平台,armv7架构)为例[uboot] uboot流程系列: [project X] tiny210(s5pv210)上电启动流程(BL0-BL2) [uboot] (第一章)uboot流程——概述 [uboot] (第二章)uboot流程——uboot-spl编译流程==============================

2016-11-02 22:05:49 10338

原创 [uboot] (第四章)uboot流程——uboot编译流程

uboot编译流程简单介绍

2016-11-01 21:23:36 15315 3

原创 [project X] tiny210(s5pv210)从存储设备加载代码到DDR

[uboot] uboot流程系列: [project X] tiny210(s5pv210)上电启动流程(BL0-BL2) [uboot] (第一章)uboot流程——概述 [uboot] (第二章)uboot流程——uboot-spl编译流程参考文档: S5PV210-iROM-ApplicationNote-Preliminary-20091126 S5PV210_UM_REV1.1

2016-10-29 16:51:01 6756

原创 [uboot] (第三章)uboot流程——uboot-spl代码流程

以下例子都以project X项目tiny210(s5pv210平台,armv7架构)为例。[uboot] uboot流程系列: [project X] tiny210(s5pv210)上电启动流程(BL0-BL2)[uboot] (第一章)uboot流程——概述[uboot] (第二章)uboot流程——uboot-spl编译流程建议参考文章 [kernel 启动流程] (第二章)第一阶段之—

2016-10-28 16:24:14 14359

原创 [uboot] (第二章)uboot流程——uboot-spl编译流程

以下例子都以project X项目tiny210(s5pv210平台,armv7架构)为例[uboot] uboot流程系列: [project X] tiny210(s5pv210)上电启动流程(BL0-BL2)建议先看《[project X] tiny210(s5pv210)上电启动流程(BL0-BL2)》,根据例子了解一下上电之后的BL0\BL1\BL2阶段,以及各个阶段的运行位置,功能。=

2016-10-27 20:40:47 19600 1

原创 [uboot] (第一章)uboot流程——概述

[uboot] uboot流程系列: [project X] tiny210(s5pv210)上电启动流程(BL0-BL2)建议先看《[project X] tiny210(s5pv210)上电启动流程(BL0-BL2)》,根据例子了解一下上电之后的BL0\BL1\BL2阶段,以及各个阶段的运行位置,功能。==============================================

2016-10-26 22:30:45 16093 4

原创 [project X] tiny210(s5pv210)上电启动流程(BL0-BL2)

建议参考文档:S5PV210-iROM-ApplicationNote-Preliminary-20091126 S5PV210_UM_REV1.1项目介绍参考 [project X] tiny210 操作说明===================================================================零、说明本文主要以友善之臂的tiny210板子作说明,

2016-10-24 22:06:04 16460 4

原创 [project X] tiny210 uboot移植进度说明

这份移植进度是当时在project X项目移植对应版本上的uboot到tiny210上的时候写的。 现在回过头来,想要整理一些uboot的移植心得和学习笔记,所以先把当时的移植进度发出来,方便后续文档整理的思路。零、项目说明project X项目是由wowo发起的,希望能够在一个项目中可以支持多个板子的项目。 在wowo的project X项目上对友善之臂tiny210的板子进行支持。 目前已

2016-10-19 22:30:55 1983

原创 [kernel 启动流程] (第七章)第一阶段之——跳转到start_kernel

零、说明本文是《[kernel 启动流程] (第一章)概述》的延伸, 阅读本文前建议先阅读《[kernel 启动流程] (第一章)概述》1、kernel启动流程第一阶段简单说明arch/arm/kernel/head.Skernel入口地址对应stextENTRY(stext)第一阶段要做的事情,也就是stext的实现内容设置为SVC模式,关闭所有中断获取CPU ID,提取相应的proc

2016-10-19 17:42:19 6251 1

原创 [kernel 启动流程] (第六章)第一阶段之——打开MMU

零、说明本文是《[kernel 启动流程] (第一章)概述》的延伸, 阅读本文前建议先阅读《[kernel 启动流程] (第一章)概述》1、kernel启动流程第一阶段简单说明arch/arm/kernel/head.Skernel入口地址对应stextENTRY(stext)第一阶段要做的事情,也就是stext的实现内容设置为SVC模式,关闭所有中断获取CPU ID,提取相应的proc

2016-10-19 15:52:39 7104 2

原创 [kernel 启动流程] (第五章)第一阶段之——临时内核页表的创建

本文是基于arm平台。例子都是以tiny210(s5pv210 armv7)为基础的。零、说明本文是《[kernel 启动流程] (第一章)概述》的延伸, 阅读本文前建议先阅读《[kernel 启动流程] (第一章)概述》1、kernel启动流程第一阶段简单说明arch/arm/kernel/head.Skernel入口地址对应stextENTRY(stext)第一阶段要做的事情,也就是st

2016-10-18 16:58:03 5847 2

原创 [kernel 启动流程] (第四章)第一阶段之——dtb的验证

本文是基于arm平台。例子都是以tiny210(s5pv210 armv7)为基础的。零、说明本文是《[kernel 启动流程] (第一章)概述》的延伸, 阅读本文前建议先阅读《[kernel 启动流程] (第一章)概述》1、kernel启动流程第一阶段简单说明arch/arm/kernel/head.Skernel入口地址对应stextENTRY(stext)第一阶段要做的事情,也就是st

2016-10-12 14:48:27 7215 1

S5PV210-iROM-ApplicationNote-Preliminary-20091126

介绍了s5pv210 IROM的操作以及启动模式。 对于s5pv210平台的boot开发很有帮助。

2016-10-20

S5PV210_UM_REV1.1

S5PV210 的datasheet,详细的引脚介绍和寄存器介绍。

2016-10-20

ARMV7官方数据手册

armv7架构的datasheet,详细的介绍了armv7架构的几种工作模式,以及各个模式寄存器功能等等。

2016-10-20

ARM的CP15协处理器的寄存器

很详细地介绍了arm cp15协处理器的操作说明和寄存器的功能等等,对于arm MMU的学习很有帮助。

2016-10-20

s5pv210 芯片手册

s5pv210 芯片手册

2016-10-18

arm cp15协处理器寄存器

2016-10-18

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除