XHCI 1.2b 规范摘要(九)

在这里插入图片描述

系列文章目录


XHCI 1.2b 规范摘要(一)
XHCI 1.2b 规范摘要(二)
XHCI 1.2b 规范摘要(三)
XHCI 1.2b 规范摘要(四)
XHCI 1.2b 规范摘要(五)
XHCI 1.2b 规范摘要(六)
XHCI 1.2b 规范摘要(七)
XHCI 1.2b 规范摘要(八)
XHCI 1.2b 规范摘要(九)


文章目录

  • 系列文章目录
  • 5 寄存器接口(Register Interface)
    • 5.1 寄存器约定(Register Conventions)
      • 5.1.1 属性(Attributes)
      • 5.1.2 电源井注意事项(Power Well Considerations)
    • 5.2 PCI 配置寄存器 (USB)
      • 5.2.1 Type 0 PCI Header
      • 5.2.2 类代码寄存器(Class Code Register)
      • 5.2.3 串行总线版本号寄存器 (SBRN)
      • 5.2.4 帧长调整寄存器 (FLADJ)
      • 5.2.5 默认尽力服务延迟 (DBESL)
      • 5.2.6 默认尽力服务延迟深度 (DBESLD)
      • 5.2.7 PCI 电源管理接口(PCI Power Management Interface)
        • 5.2.7.1 PCI 电源管理寄存器(PCI Power Management Registers)
      • 5.2.8 消息信号中断(MSI & MSI-X)功能
        • 5.2.8.1 配置 MSI(MSI configuration)
        • 5.2.8.2 配置 MSI-X(MSI-X configuration)
        • 5.2.8.3 MSI-X 表(MSI-X Table)
        • 5.2.8.4 MSI-X PBA
        • 5.2.8.5 访问 MSI-X 表和 MSI-X PBA
      • 5.2.9 PCI Express Capability
      • 5.2.10 SR-IOV 扩展能力(SR-IOV Extended Capability)
    • 5.3 Host Controller 功能寄存器
      • 5.3.1 功能寄存器长度 (CAPLENGTH)
      • 5.3.2 主机控制器接口版本号 (HCIVERSION)
      • 5.3.3 结构参数1 (HCSPARAMS1)
      • 5.3.4 结构参数2 (HCSPARAMS2)
      • 5.3.5 结构参数3 (HCSPARAMS3)
      • 5.3.6 能力参数1 (HCCPARAMS1)
      • 5.3.7 门铃偏移 (DBOFF)
      • 5.3.8 运行时寄存器空间偏移 (RTSOFF)
      • 5.3.9 功能参数 2 (HCCPARAMS2)
      • 5.3.10 基于虚拟化的可信 IO 寄存器空间偏移 (VTIOSOFF)


5 寄存器接口(Register Interface)

   可扩展的 USB 主机控制器包含许多软件可访问的硬件寄存器。大部分 registers 显示为 Memory-mapped Host Controller Registers 。其他 registers 可能使用非 memory address 机制出现,例如基于 PCI 或 PCIeHost Controller 。对于这些 designs,需要实现相应规范定义的 required registers

   请注意, xHCI 不需要支持独占访问机制 (例如 PCI LOCK) 来访问内存映射寄存器空间。因此,如果软件尝试对 host controller memory-mapped register space 进行独占访问,则结果是不确定的。

在这里插入图片描述

   有关 xHCI 扩展功能寄存器集的细目,请参阅表 7-2。

在这里插入图片描述
在这里插入图片描述

5.1 寄存器约定(Register Conventions)

   如果 xHC 支持 64 位寻址 (AC64 = ‘1’),则软件应仅使用 Qword 访问来写入 64 位寄存器。如果系统无法发出 Qword 访问,则应使用 2 个 Dword 访问来写入 64 位地址字段;先写入低 Dword,然后写入高 Dword。

   如果 xHC 支持 32 位寻址 (AC64 = ‘0’),则包含 64 位地址字段的寄存器的高 Dword 未使用,软件应仅使用 Dword 访问来写入地址。

在这里插入图片描述

   注意:USB 传统支持 (USBLEGSUP) 扩展功能需要支持信号量地址的字节访问,请参阅第 7.1 节。

   所有多字节寄存器字段都遵循小端顺序;也就是说,较低的地址包含字段的最低有效部分。字段内的字节/字符应采用小端顺序,即,字符串的第一个字符在最低有效字节,第二个字符在下一个有效字节,依此类推。

5.1.1 属性(Attributes)

   以下表示法用于描述 register 访问属性:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5.1.2 电源井注意事项(Power Well Considerations)

   请参阅第 4.23.1 节。

5.2 PCI 配置寄存器 (USB)

    PCI Configuration Registers (USB)

   专为在基于 PCI 的系统中运行而设计的 xHC 应实现符合 PCI 规范或 PCIe 规范的 PCI 配置空间,具体取决于目标操作环境。实施者应参考 PCI 特别兴趣小组 (SIG) (http://www.pcisig.com) 发布的相应规范。

5.2.1 Type 0 PCI Header

   图 5-1 描述了 xHCPCI 配置空间。基于 PCI 的 xHC 需要实现 PCI,即 0 类 PCI 设备标头,如下所示。xHC 还需要至少实现前两个基址寄存器(BAR 0 和 BAR 1)才能启用 64 位寻址。这些 Base Address Registers 用于指向主机控制器的内存映射 Input/Output (MMIO) 寄存器空间的开头。

在这里插入图片描述

   寄存器指向关系:

在这里插入图片描述

5.2.2 类代码寄存器(Class Code Register)

在这里插入图片描述

   此 register 包含与 Sub-Class Code 和 Base Class Code 定义相关的器件编程接口信息。此寄存器还标识 Base Class Code 和与 Base Class Code 相关的函数子类。

在这里插入图片描述

5.2.3 串行总线版本号寄存器 (SBRN)

    Serial Bus Release Number Register (SBRN)

在这里插入图片描述

   该寄存器包含该通用串行总线主控制器模块所符合的通用串行总线规范的版本。

5.2.4 帧长调整寄存器 (FLADJ)

    Frame Length Adjustment Register (FLADJ)

在这里插入图片描述

   该寄存器位于辅助电源井中。此功能用于调整与生成驱动 SOF 计数器的时钟的时钟源之间的任何偏移。当将新值写入这六个位时,将调整由 xHC 实现的所有 USB 总线的帧长度。其初始编程值取决于硬件 USB 时钟的准确性,并由系统软件(通常是 BIOS)初始化。仅当 USBSTS 寄存器中的 HCHalted (HCH) 位为“1”时才应修改此寄存器。在主机控制器运行时更​​改此寄存器的值会产生未定义的结果。

5.2.5 默认尽力服务延迟 (DBESL)

    Default Best Effort Service Latency (DBESL)

在这里插入图片描述
在这里插入图片描述

   该寄存器包含对 PORTPMSC 最佳努力服务延迟 (BESL) 字段进行编程的最佳值。有关详细信息,请参阅第 4.23.5.1.1.1 节。

   如果不支持 BESL LPM(HLC =“0”或 BLC =“0”),则保留此寄存器。

5.2.6 默认尽力服务延迟深度 (DBESLD)

    Default Best Effort Service Latency Deep (DBESLD)

在这里插入图片描述

   该寄存器包含对 PORTPMSC 最佳努力服务延迟 - 深度 (BESLD) 字段进行编程的最佳值。有关更多信息,请参阅第 4.23.5.1.1.1 节。

   如果不支持 BESL LPM(HLC =“0”或 BLC =“0”),则保留此寄存器。

5.2.7 PCI 电源管理接口(PCI Power Management Interface)

   下图是 PCI 电源管理功能(PCI Power Management Capability)中定义的寄存器的描述。xHCI 兼容主机控制器应实现 PCI 规范中定义的 PCI Power Management Capability,该寄存器与 PCI PM 规范中定义的结构几乎相同,但有一些额外的要求。有关 PCI 电源管理的其他 xHCI 操作要求,请参阅附录 A.1。

在这里插入图片描述

5.2.7.1 PCI 电源管理寄存器(PCI Power Management Registers)

   所有字段在完全通电时都会重置。退出 D3cold 状态时,除 PME_En 和 PME_Status 之外的所有 PCI PM PMCSR 寄存器字段都会重置。如果没有提供辅助电源,则退出 D3cold 状态时 PME_En 和 PME_Status 字段也会重置。

   PCI 功能列表用于为软件提供查找和使用 PCI 电源管理的标准方法。有关电源管理寄存器块的定义,请参阅 PCI PM 规范中的第 3.2 节。

5.2.8 消息信号中断(MSI & MSI-X)功能

    Message Signaled Interrupts (MSI & MSI-X) Capability

   以下是 PCI Message Signaled InterruptMSI) 功能中定义的寄存器的描述。如果 xHC 支持 PCI 或 PCIe,则它应实现 PCI 规范中定义的 PCI MSI 和/或 MSI-X 功能。

5.2.8.1 配置 MSI(MSI configuration)

   图 5-3 说明了 Message Signaled Interrupt (MSI) Configuration 功能布局,它由 7 个字段组成。有关 MSI 功能结构的定义,请参阅 PCI 规范中的第 6.8.1 节。

在这里插入图片描述

5.2.8.2 配置 MSI-X(MSI-X configuration)
5.2.8.3 MSI-X 表(MSI-X Table)
5.2.8.4 MSI-X PBA
5.2.8.5 访问 MSI-X 表和 MSI-X PBA

    Accessing the MSI-X Table and MSI-X PBA

5.2.9 PCI Express Capability

   下面描述的结构代表 PCI Express 功能结构,该结构应针对任何设计为在支持 PCIe 的系统内作为 PCIe 设备运行的 xHC 实施。请参阅 PCIe 规范的第 7.8 节,了解有关此结构实现的详细信息。

在这里插入图片描述

5.2.10 SR-IOV 扩展能力(SR-IOV Extended Capability)

5.3 Host Controller 功能寄存器

    Host Controller Capability Registers

   所有 Capability Registers 都是只读 (RO) 的。这些 registers 的偏移量都是相对于主机控制器的 MMIO 地址空间的开头的。在本文档中,主机控制器的 MMIO 地址空间的开头称为 Base

在这里插入图片描述

5.3.1 功能寄存器长度 (CAPLENGTH)

    Capability Registers Length (CAPLENGTH)

   地址: Base + (00h)

5.3.2 主机控制器接口版本号 (HCIVERSION)

    Host Controller Interface Version Number (HCIVERSION)

    例如,0100h 对应于 xHCI 版本 1.0.0,或者 0110h 对应于 xHCI 版本 1.1.0,依此类推。

5.3.3 结构参数1 (HCSPARAMS1)

    Structural Parameters 1 (HCSPARAMS1)

在这里插入图片描述

在这里插入图片描述

5.3.4 结构参数2 (HCSPARAMS2)

    Structural Parameters 2 (HCSPARAMS2)

在这里插入图片描述

5.3.5 结构参数3 (HCSPARAMS3)

    Structural Parameters 3 (HCSPARAMS3)

在这里插入图片描述

5.3.6 能力参数1 (HCCPARAMS1)

    Capability Parameters 1 (HCCPARAMS1)

在这里插入图片描述

5.3.7 门铃偏移 (DBOFF)

    Doorbell Offset (DBOFF)

   此 register 定义 Doorbell Array 基址与 Base 的偏移量。

在这里插入图片描述
在这里插入图片描述

5.3.8 运行时寄存器空间偏移 (RTSOFF)

    Runtime Register Space Offset (RTSOFF)

   此 register 定义 xHCI Runtime RegistersBase 的偏移量。

在这里插入图片描述

5.3.9 功能参数 2 (HCCPARAMS2)

    Capability Parameters 2 (HCCPARAMS2)

在这里插入图片描述

5.3.10 基于虚拟化的可信 IO 寄存器空间偏移 (VTIOSOFF)

    Virtualization Based Trusted IO Register Space Offset (VTIOSOFF)

在这里插入图片描述

   
 


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/906841.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【JavaEE初阶】网络原理(5)

欢迎关注个人主页:逸狼 创造不易,可以点点赞吗~ 如有错误,欢迎指出~ 目录 路由选择 数据链路层>以太网 MTU mac地址和IP地址的区别 空间范围不同 应用范围不同 ARP协议/ARP数据包 DNS(域名解析系统) 路由选择 每个路由器,无法知道整个网络…

图书管理系统汇报

【1A536】图书管理系统汇报 项目介绍1.用户登录注册功能1. 1用户角色管理2.图书管理功能2.1 添加图书2.2 编辑图书2.3 删除图书 3.图书搜索和筛选3.1 图书搜索3.2 图书筛选 4.图书借阅、图书归还4.1 图书借阅4.2 图书归还 5.用户信息管理5.1上传头像5.2修改头像5.3 修改密码 项…

清晰易懂的JavaScript进阶部分——DOM操作 (节点获取,节点属性修改,节点创建与插入,CSS样式的修改)

DOM操作(Document Object Model 文档对象模型)指的是通过JavaScript来操作网页的结构和内容。DOM提供了一种以文档树形式表示HTML或XML文档的方式,可以使用JavaScript来访问和修改网页的元素、属性和文本内容,且提供了一系列的函数…

服务器虚拟化

前言 服务器虚拟化是一种技术,它通过将一台物理服务器的软件环境分割成多个独立分区,使每个分区都能模拟出一台完整的虚拟服务器。这种技术利用虚拟化技术充分发挥服务器的硬件性能,提高运营效率,节约能源并降低经济成本。 通过…

如何在Linux下部署自己的ZFile开源网盘

ZFile 项目介绍 ZFile是一个功能强大、灵活的开源网盘系统,为用户提供安全便捷的文件存储和共享方案。 项目概述 ZFile由ZFile, Inc.开发和维护,基于Docusaurus构建。其用户友好的界面支持多种文件存储和共享功能,并具备高度的可定制性和扩…

StandardThreadExecutor源码解读与使用(tomcat的线程池实现类)

🏷️个人主页:牵着猫散步的鼠鼠 🏷️系列专栏:Java源码解读-专栏 🏷️个人学习笔记,若有缺误,欢迎评论区指正 目录 目录 1.前言 2.线程池基础知识回顾 2.1.线程池的组成 2.2.工作流程 2…

VBA字典与数组第二十讲:如何在代码运行时创建数组

《VBA数组与字典方案》教程(10144533)是我推出的第三套教程,目前已经是第二版修订了。这套教程定位于中级,字典是VBA的精华,我要求学员必学。7.1.3.9教程和手册掌握后,可以解决大多数工作中遇到的实际问题。…

J2:ResNet50v2算法实战与解析

J2周:ResNet50V2算法实战与解析 论文解读1、ResNetV2结构与ResNet结构对比☕2、关于残差结构的不同尝试☕3、关于激活的尝试☕ Pytorch实现ResNet50V2算法1、导入库并设置GPU2、导入和检查数据3、划分数据集4、搭建ResNet-50V2模型Residual BlockStack(堆…

MFC图形函数学习04——画矩形函数

MFC中绘制矩形函数是MFC的基本绘图函数,它的大小和位置由左上角和右下角的坐标决定;若想绘制的矩形边框线型、线宽、颜色以及填充颜色都还需要其它函数的配合。 一、绘制矩形函数 原型:BOOL Rectangle(int x1,int y1,int x2,int y2); …

新手BUG:在声明了返回值的函数中不写返回值

本文对两个分别以int和string为返回值类型的函数进行分析,说明了在有返回值的函数中不写返回值会产生的问题。然后给出在编译阶段检查出这样的问题的办法。 一、背景 在软件测试环节发现,函数会在返回之前coredump。经过排查发现,在这个会…

机器人技术革新:人工智能的强力驱动

内容概要 在当今世界,机器人技术与人工智能的结合正如星星与大海,彼此辉映。随着科技的不断进步,人工智能不仅仅是为机器人赋予了“聪明的大脑”,更是推动了整个行业的快速发展。回顾机器人技术的发展历程,我们会发现…

外网访问 Immich 照片管理软件

Immich 是一个自托管的照片和视频备份的平台,它允许用户在私有服务器上存储、管理和分享他们的照片,视频等媒体文件。 第一步,本地部署安装 Immich 1,检查 Docker 服务状态,确保 Docker 正常运行。 systemctl statu…

电脑软件:推荐一款免费且实用的电脑开关机小工具

目录 一、软件简介 二、软件功能 三、软件特点 四、使用说明 五、软件下载 今天给大家推荐一款免费且实用的电脑开关机小工具KShutdown,有需要的朋友可以下载试一下! 一、软件简介 KShutdown是一款精巧且实用的定时自动关机小工具,对于…

Manus在虚拟现实仿真模拟中的应用案例分享

Manus虚拟现实手套作为一种高精度的人机交互设备,在仿真模拟领域展现出了巨大的应用潜力。通过提供实时、准确的手指动作捕捉数据,Manus手套为多个行业带来了前所未有的仿真体验,推动了技术发展和应用创新。 技术特点 1. 高精度手指跟踪 Ma…

ensp中acl的使用

拓扑图及其要求如下 基础配置 检查此上R2配置错误,undo重新写 检查手写配置无误 按要求写配置 要求1完成 因为一个接口的入或者出方向上 只能调用一张acl表格,所以要求二照样在R1上面写 要求3

5. STM32之TIM实验--输出比较(PWM输出,电机,四轴飞行器,智能车,机器人)--(实验5:PWM驱动直流电机)

作者:Whappy,日期:2024.10.29,决战STM32 直流电机的控制就比较简单了,只有数据线和地线,正接正转,反接反转,为了方便,本实验采用H桥电路来控制电机的正反转,H桥电路也很简单,就是4个MOS管构成的2路推挽输出电路. 注:基本上大功率器件,单片机基本上是无法驱动的,都是要靠一部分…

Python基础知识汇总(建议收藏再观看)!

1.执行脚本的两种方式 Python a.py 直接调用Python解释器执行文件 chomd x a.py ./a.py #修改a.py文件的属性,为可执行,在用 ./ 执行a.py 文件 2、简述位、字节的关系 1bytes8bit ,2**8256,可以代表256中变化, 3、简述 ascii、unicode、…

Java中IO的高级操作

目录 缓冲流 缓冲字节输入流: 缓冲字节输出流: 缓冲字符输入流: 缓冲字符输出流: 转换流 转换流字符输入: 转换流字符输出: 练习案例: 打印流 字节打印流: 字符打印流&a…

Matlab高光谱遥感

原文链接:Matlab高光谱遥感https://mp.weixin.qq.com/s?__bizMzUzNTczMDMxMg&mid2247623643&idx5&sne4557ed43728f851140b100f42286988&chksmfa8da23ccdfa2b2a4d795bf4087f672faaa7082d1f52e046616ab7bf196a6eef89ea553d06b1&token1392391660&…

ssm+jsp663数学课程评价系统的设计与开发

博主介绍:专注于Java(springboot ssm 等开发框架) vue .net php phython node.js uniapp 微信小程序 等诸多技术领域和毕业项目实战、企业信息化系统建设,从业十五余年开发设计教学工作 ☆☆☆ 精彩专栏推荐订阅☆☆☆☆☆不…