SDIO驱动(14)card的CIS读取及解析

本文详细介绍了SDIO卡的Card Information Structure(CIS)及其作用,包括Common CIS和Function CIS的定义。CIS的访问涉及CMD52命令和CIS地址,读取过程通过sdio_read_cis函数实现,解析过程中识别不同类型的tuple并处理数据。重点讨论了CIS的组织结构,如元组的code、link域和数据区域。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

关于CIS需要清楚的:

1、CIS是什么

CIS-Card Information Structure的缩写,CIS的作用:

The CIS includes information on power, function, manufacturer and other things the host
needs to determine if the I/O function(s) is appropriate to power-up.

2、CIS的呈现


CIS位于CIA区域,地址寻址范围0x001000~0x017FFF。CIS有两类:

(1)Common CIS,记录整张card的通用信息,比如厂商、VID等信息。

(2)Function CIS,每一个Function的特有信息。

一个CIS元素的组织结构:


它由结构体sdio_func_tuple表征:

/*
 * SDIO function CIS tuple (unknown to the core)
 */
struct sdio_func_tuple {
	struct sdio_func_tuple *next;
	unsigned char code;
	unsigned char size;
	unsigned char data[0];
};

这里总结下Function:Function代表card的一个具体功能,每一个card具有多个Function,Function的标号为0~7,特别地,0号针对的是CIA(可以简单理解就是用来访问CIA区域的)。在软件层面,Function由struct sdio_func表示,它作为一个device注册到系统中。

3、CIS的访问

需要两个条件:命令CMD52;CIS地址。

对于Common CIS,其地址保存在CCCR的0x09~0x0B地址处的寄存器中,3个寄存器值组成一个24

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值