一、DCBAAP(设备上下文及地址数组指针 寄存器):
xhci里面的Operational 寄存器组里面的设备上下文基地址数组指针寄存器(Device Context Base Address Array Pointer Register,DCBAAP),用于保存设备上下文基地址数组(DCBAA)的指针(也就是这个数组的首地址)。
P418
二、DCBAA(设备上下文基地址数组,内存数据结构):
DCBAA和xHCI的设备槽相关联(Device Slot),也就是一个Slot对应DCBAA里面的一个条目,可以通过Slot ID来索引对应的设备上下文(Device Context)数据结构,也就是可以将DCBAA看为是一个查找表。在初始化xHCI时每个条目都会初始化为0。注意DCBAA的首个条目(Slot ID=0)是被xHCI的暂存机制(xHCI Scratchpad Mechanism)使用的。
并且设备上下文基地址数组的首地址,在xHCI被设置为“run”模式(也就是USBCMD寄存器的R/S bit位置1)之前,应该被写入到DCBAAP寄存器中,同时Scratchpad Buffer Array的首地址也要在此之前放入到设备上下文及地址数组的第0个条目。如下图xHCI协议中所示。

每个slot又会对应一个Doorbell寄存器,软件可以通过写对应的寄存器,来告知xHCI使用对应slot,所对应的设备上下文。
当使用某个slot,也即是enable某个slot后,需要构造对应的设备上下文数据结构,然后将其首地址放入DCBAA数组里面对应的条目中。
三、DC(设备上下文数据结构,内存数据结构)
设备上下文数据

本文详细介绍了xHCI(USB eXtensible Host Controller Interface)中的设备上下文管理,包括DCBAAP寄存器、DCBAA数组和Device Context数据结构。DCBAAP保存设备上下文基地址数组的指针,DCBAA则是一个查找表,通过SlotID索引设备上下文。每个设备上下文包含Slot Context和Endpoint Context,用于报告设备配置和状态。设备上下文在启用Slot后,其首地址需放入DCBAA,且xHC使用Slot State来标识设备状态。
最低0.47元/天 解锁文章
646

被折叠的 条评论
为什么被折叠?



