xhci主机规范初探(2) --数据结构预览

xHC预计将在虚拟内存环境中运行,其中一个连续的物理内存块的大小将受到系统的页面大小的限制。xHC用于管理设备和端点的数据结构旨在适应这种限制,通过将数据结构保持在4K字节(所支持的最小页面大小)下,或者提供机制连接非连续的物理内存块以形成更大、逻辑连续的数据结构,例如指向用于向主机传输USB数据的数据结构的圆形缓冲区。由这些数据结构所引用的数据缓冲区可以是字节对齐的,并从1个连续物理数据的字节引用到64K字节。

1.Device Context Base Address Array

设备上下文基础地址阵列(DCBAA)为xHC提供了一个基于插槽ID的查找表,用于访问与每个插槽相关联的设备上下文数据结构。此数据结构由指向设备上下文数据结构的指针数组组成。当检测到设备附加时:系统软件初始化设备上下文数据结构,从xHC请求插槽ID,并将新创建的设备上下文的指针插入插槽ID的位置指示的DCBAA中。请注意,设备上下文基础地址阵列中的第一个条目(插槽ID=“0”)已被xHCI Scratchpad机制使用。

2.Device Context

设备上下文数据结构由xHC管理,并用于向系统软件报告设备配置和状态信息。设备上下文数据结构由由32个数据结构组成的数组组成。第一个上下文数据结构(索引=‘0’)是一个插槽上下文数据结构。其余的上下文数据结构(索引1-31)是端点上下文数据结构。

作为枚举USB设备的过程的一部分,系统软件在主机内存中为该设备分配一个设备上下文数据结构,并将其初始化为‘0’。然后,将数据结构的所有权通过地址设备命令传递给xHC。xHC维护设备上下文的所有权,直到使用Disable Slot命令禁用设备插槽

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值