PCIe 配置空间:Status 寄存器

2023-05-16

1. Status 寄存器位置

在这里插入图片描述

2. Status 寄存器细节

在这里插入图片描述

2.1 特殊位

对于 PCIe 设备,status 寄存器中有几个 bit 的值是固定的。

  • Bit 4:Capability List,该位必须为 1,因为 PCIe 设备中有些 Capability 是必须的。
  • Bit 5:66 MHz Capable,该位必须为 0,PCIe 中用不到。
  • Bit 7:Fast Back-to-Back Capable,该位必须为 0,PCIe 中用不到。
  • Bit 9~10:DEVSEL Timing,该位必须为 0,PCIe 中用不到。


2.2 功能位

  • Interrupt Status
    • 该状态位用于表明当前有 INTx 中断待处理(pending)。
    • 如果该位为 1,并且 Command 寄存器中的 Interrupt Disable 位为 0,则设备向外发送 INTx 中断。
    • 复位后该位默认值为 0。


  • Master Data Parity Error
    • Endpoint
      • 在 Command 寄存器的 Parity Error Response 位为 1 的情况下,Endpoint 收到一个 Poisoned TLP 或者发出一个 Poisoned TLP 时,将该位置 1。
    • Root Port 或者 Switch Upstream Port 或者 Switch Downstream Port
      • 在 Command 寄存器的 Parity Error Response 位为 1 的情况下,如果端口收到一个流向 Downstream 方向的 Poisoned Completion 或者收到一个流向 Upstream 方向的 Poisoned Request,则将该位置为 1。
    • 如果 Comand 寄存器的 Parity Error Response 为 0,那么该位在任何情况下都是 0。
    • 复位后默认值是 0。


  • Signalled Target Abort
    • 设备收到 Posted 或者 Non-Posted 请求后,如果对该请求产生一个 Completer Abort 错误,则将该位置为 1。如果收到的是 Non-Posted 请求,则该设备需要向请求端回复一个带 Completion Abort Completion Status 的 completion。
    • 复位后默认值是 0。


  • Received Target Abort
    • 设备发出请求后,如果收到带有 Completer Abort Completion Status 的 Completion,就会将该位置 1。
    • 复位后默认值是 0。


  • Received Master Abort
    • 设备发出请求后,如果收到带有 Unsupported Request Completion Status 的 Completion,就会将该位置 1。
    • 复位后默认值是 0。


  • Signalled System Error
    • 在 Command 寄存器的 SERR# Enable 位设置为 1 的前提下,如果设备发送过 ERR_FATAL 或者 ERR_NONFATAL 消息,那么会将该位置为 1。
    • 复位后默认值是 0。


  • Detected Parity Error
    • 当设备收到 Poisoned TLP 时会将该位置 1。该位的设置不受 Command 寄存器的 Parity Error Response 位的影响。
    • 对于 Switch,当它从 Primary 侧收到 Poisoned TLP 时,会将该位置 1。
    • 复位后默认值是 0。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PCIe 配置空间:Status 寄存器 的相关文章

随机推荐

  • [samba] NT_STATUS_ACCESS_DENIED

    因为团队内部有同学使用windows 但是服务端都部署在linux下 为了修改后可以通过及时刷新浏览器看到效果 所以采用samba 尽管samba有很大的安全风险 我们只有内网访问 所以还好 进行文件共享 整体配置都没有问题 但是使用smb
  • 程序员编程艺术:第四章、现场编写类似strstr/strcpy/strpbrk的函数

    第四章 现场编写类似strstr strcpy strpbrk的函数 前奏 有网友向我反应 xff0c 之前三章 xff08 http t cn hgVPmH xff09 的面试题目 xff0c 是否有点太难了 诚如他所说 xff0c 绝大
  • 从头到尾彻底理解KMP(2014年8月22日版)

    从头到尾彻底理解KMP 作者 xff1a July 时间 xff1a 最初写于2011年12月 xff0c 2014年7月21日晚10点 全部删除重写成此文 xff0c 随后的半个多月不断反复改进 后收录于新书 编程之法 xff1a 面试和
  • 基于HAL的嵌入式学习(STM32F407)——点亮你的LED

    前言 本人通过自身的一些学习 xff0c 通过使用CubeMX来完成嵌入式学习过程中的硬件配置 xff0c 结合使用Keil5来进行程序编写 xff0c 进而完成对于工程目标的编程问题 硬件介绍 xff1a 本人使用的是一款芯片为STM32
  • Docker入门(二) - 容器内访问宿主机硬件资源

    https blog csdn net tianhuanqingyun article details 91580778 边缘设备而言 xff0c 在支持容器化运行的条件下 xff0c 需要在容器内获取宿主机的硬件资源 xff0c 完成与宿
  • jQuery使用prop属性全选与取消全选

    jQuery使用prop属性全选与取消全选 在使用jQuery开发全选或取消全选时 xff0c 用 attr 34 checked 34 获取 checkbox 的 checked属性时 如果是选中状态可以取到值 但是在未选中的时候获取值就
  • angularjs笔记

    基础概念 ng app 指令告诉 AngularJS xff0c 元素是 AngularJS 应用程序 的 34 所有者 34 ng model 指令把输入域的值绑定到应用程序变量 name ng bind 指令把应用程序变量 name 绑
  • virtualbox已有虚拟硬盘扩容(不修改原有数据)

    virtualbox为ubuntu添加虚拟硬盘 大概的步骤如下 xff1a 在virtualbox上注册一个虚拟硬盘使用fdisk对硬盘进行分区mkfs ext4格式化硬盘修改uuid VBoxManage internalcommands
  • react资源

    MUI The React UI library for faster and easier web development React Table Lightweight and extensible data tables for Re
  • gitbook之node版本问题

    执行gitbook build出现错误 xff0c 执行gitbook serve也是会出错 错误如下 xff1a gitbook build usr local lib node modules gitbook cli node modu
  • 结构体定义寄存器方法(很流行哦)

    ARM寄存器数量之多 xff0c 叹为观止 xff01 幸运的是 xff0c 它都是以模块分布 xff0c 再依托C语言的模块化编程 xff0c 用户就没有必要记忆那么多的寄存器名称了 xff01 拿LPC1114来说 xff0c 单片机内
  • Arduino Uno安装设备时,出现了一个错误,这个INF中的服务安装段落无效

    问题 xff1a 在windows系统下 xff0c Uno安装设备时 xff0c 出现了一个错误 xff0c 这个INF中的服务安装段落无效 原因 xff1a 缺少系统文件 解决方案 xff1a 1 先下载 xff1a usbser zi
  • Vmware Unity模式

    ubuntu 12 04 之Vmware Unity模式 安装VMware Toolsudo add apt repository ppa gnome3 team gnome3sudo apt get install gnome shell
  • 状态机实现的三种方法-C语言

    1 参考 xff1a https www cnblogs com aaronLinux p 5705457 html 2 转载 xff1a http kb cnblogs com page 528972 3 参考 xff1a FSM TCP
  • 代码函数调用关系图

    代码函数调用关系 Graphviz 43 CodeViz http www linuxidc com Linux 2015 01 111501 htmCallgraph xff1a 静态分析 C 程序函数调用关系图cflow 43 grap
  • 错误:try using -rpath or -rpath-link

    在使用到动态库的时候 xff0c 出现错误如下 xff1a arm linux bin span class hljs keyword ld span warning libssl span class hljs preprocessor
  • Nestjs框架安装与启动

    Nest是构建高效可扩展的 Node js Web 应用程序的框架 默认使用JavaScript的超集TypeScript进行开发 环境准备 查看node和npm版本 node version v10 11 0 npm version 6
  • Vcpkg安装指定版本包或自定义安装包

    文章目录 前言寻找版本安装后话 前言 windows一直用着vcpkg作为C 43 43 跨平台开发的包管理 xff0c 有些依赖要指定版本库 xff0c vcpkg目前最新的openssl版本是3 1 0 xff0c 我想安装其他版本为例
  • git push不用输入密码(方法一)-git-credentials

    install git credentials sh 命令步骤 xff1a touch git credentialsecho 34 http username password 64 localhost 34 gt gt git cred
  • PCIe 配置空间:Status 寄存器

    1 Status 寄存器位置 2 Status 寄存器细节 2 1 特殊位 对于 PCIe 设备 xff0c status 寄存器中有几个 bit 的值是固定的 Bit 4 xff1a Capability List xff0c 该位必须为