返回信息流MMC/SD Card Driver in Linux Part1
Target: MMC/SD Card Driver
Environment: linux-2.6.25
Glossaries
MMC:
SD:
SDIO:
Host Controller:
Linux Block Device (BLK Dev):
Source Code Layout
MMC Core:
MMC Host Controller:
MMC Card Driver:
Reference:
SD Specification Part1 Physical Layer Simplified Specification.pdf
SD Card Specification Simplified Version of Part E1 SDIO Card Specification.pdf
LDDv3
linux-2.6.25.5
http://en.wikipedia.org/wiki/MultiMediaCard
First of all, let’s have a brief view of MMC architecture. MMC has a similar design, which means in the way of architecture design, with other subsystems in Linux kernel driver layer. It often goes with three parts in general, a core layer of the protocol, dozens of individual host controller drivers, and function drivers which indeed enables a specific device. See Figure-1 below:
附件(511KB) Figure_1.bmp
Figure 1 MMC Architecture in Linux Kernel Map
As we can see in this map, MMC Core interacts upward with Linux kernel services/subsystems like VFS, interrupt and etc. Host Controller stands in the middle and plays as the software driver of a practical hardware MMC host controller. For instance, it reads/writes specific IO registers/FIFOs, handles coming irqs and so on. Now we’ve got protocol supports, host controller drivers, and what else makes an actual MMC card works? It’s MMC Card Driver. It also drives a specific MMC card to go to work from the card side.
For more, I think the reason for why there’s only one MMC card driver while there’re so may MMC card instances from different manufacturers is that, MMC has pre-defined its protocols/standards both in SW and HW, so all factories have to follow. In this way, it reduces workloads of driver developers, really a lot.
Besides, as a matter of fact, Linux MMC Core and Host controller does not only support protocol of MMC, but also support SD and SDIO. In this way, SD storage card is also supported by above MMC Card driver. Meanwhile, a lot of no no-block functioned devices could also be supported via MMC/SD physical port, with fashionable functionality ( a MMC/SD card like periphery work as Bluetooth/WIFI adaptor), we call this SDIO.
Ok, there’s no more craps. Let’s start looking at the source code.
From: www.sunflour.info
这是一条镜像帖。来源:北邮人论坛 / embedded-system / #2903同步于 2008/11/29
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Embedded_System机器人发帖
MMC/SD Card Driver in Linux Part1
seifer1983
2008/11/29镜像同步1 回复
订阅后,新回复会通过你的通知中心匿名送达。
1 条回复