PCIE
文章平均质量分 58
逆风水手
虚拟的狂欢,现实的荒原
展开
-
[pcie]通过sysfs访问PCI设备资源
pcie文件系统说明原创 2024-03-08 13:16:09 · 145 阅读 · 0 评论 -
pcie中aer错误的原因已经如何看寄存器
PCI Express Advanced Error Reporting (AER) 是一种错误检测和报告机制,用于帮助检测和诊断 PCI Express 总线上的错误。如果输出结果中包含“status”和“error”字样,则说明设备存在 AER 错误。如果输出结果中包含“Advanced Error Reporting”或“AER”字样,则说明设备支持 AER。确定存在 AER 错误的 PCIe 设备。此命令将返回设备的 AER 寄存器值,其中包括错误状态、错误计数和错误信息等信息。原创 2024-03-08 13:09:08 · 385 阅读 · 0 评论 -
【PCIE】AER和DPC解释
AER(Advanced Error Reporting)和 DPC(Downstream Port Containment)是PCIe(Peripheral Component Interconnect Express)总线规范中定义的两种不同的错误处理机制,它们在PCIe架构中有一定的关联。原创 2023-08-09 00:15:00 · 3191 阅读 · 0 评论 -
【PCIE】PCIE的驱动和pcie的端口驱动关系
PCIe的端口服务驱动与PCIe驱动之间存在一定的关系,但它们是不同的概念。PCIe驱动是用于管理和操作PCIe设备的驱动程序。它负责与硬件进行通信,并实现对PCIe设备的配置、数据传输以及其他相关操作。PCIe驱动通常涉及设备的初始化、中断处理、寻址、DMA控制等。而PCIe的端口服务驱动是一种特殊类型的驱动程序,它专门用于管理和操作PCIe端口的特定功能和操作。PCIe端口是在主机系统上用于连接PCIe设备的接口,例如插槽或者集成到主板上的接口。原创 2023-08-07 00:30:00 · 797 阅读 · 0 评论 -
【PCIE】Device Control Register (Offset 08h)
(最大传输负载大小)是PCI Express设备控制寄存器中的一个位域,用于设置设备支持的最大传输负载的大小。PCI Express使用数据包(Packet)来传输数据,而数据包由头部和有效载荷(Payload)组成。有效载荷是实际要传输的数据部分。最大传输负载大小定义了设备可以支持的最大有效载荷大小。在"Maximum Payload Size Supported"(MPSS)位域中,[2:0]表示3个比特位,用于编码支持的最大传输负载大小的取值。通常情况下,可能的取值包括:000: 128字节。原创 2023-07-12 13:03:14 · 598 阅读 · 0 评论 -
【PCIE】hot-reset和link disable
如果上游伪端口(Pseudo Port)的任何一个通道连续接收到两个带有热复位位设置为1b、禁用链路位和回环位设置为0b的TS1有序集合,并且两个伪端口上的任何一个通道(接收到TS1有序集合)要么收到EIOS(Electrical Idle Ordered Set),要么推测处于电气空闲状态,那么Retimer将执行以下操作:清除变量RT_LinkUp = 0b,表示链路未连接。将其发送器置于两个伪端口上的电气空闲状态。将变量RT_next_data_rate设置为2.5 GT/s。原创 2023-07-09 00:15:00 · 690 阅读 · 0 评论 -
【PCIE】协议分析之-hot-reset热复位
当高层(higher Layer)指示某些通道进行热复位(Hot Reset)时,以下操作将被执行:所有在配置的链路中的通道都会发送带有热复位位(Hot Reset bit)和配置的链路号、通道号的TS1有序集合。如果在任何通道上接收到两个连续的带有热复位位和配置的链路号、通道号的TS1有序集合,那么:LinkUp = 0b(False),表示链路未连接。如果没有高层指示物理层保持在热复位状态,则进入下一个状态:检测状态(Detect)。原创 2023-07-08 00:30:00 · 1148 阅读 · 0 评论 -
【PCIE】链路训练的TS训练序列解释
TS1和TS2有序集合是PCIe(Peripheral Component Interconnect Express)协议中使用的一种特殊数据包格式。这些有序集合用于在PCIe链路的训练阶段进行通信和控制。TS1(Training Sequence 1)有序集合:TS1有序集合是一个8个字符长的数据包,用于在链路训练开始时进行初始化和同步。TS2(Training Sequence 2)有序集合:TS2有序集合是一个32个字符长的数据包,用于进一步训练和调整链路的参数,以提高数据传输的可靠性和性能。原创 2023-07-07 13:07:55 · 1203 阅读 · 0 评论 -
【PCIE】TLP 发送三阶段和Secondary Bus Reset
TLP 发送的三个阶段涉及到 PCIe 协议栈中的不同层次,具体如下:TLP 发送阶段 1(TS1):这个阶段是在传输层(Transaction Layer)中进行的。在这个阶段,TLP 数据包会进行编码和格式化处理,并添加一些控制信息,如 Stream ID 和序列号等。同时,在这个阶段还会进行一些流控制、纠错等相关处理。TLP 发送阶段 2(TS2):这个阶段是在数据链路层(Data Link Layer)中进行的。原创 2023-06-06 19:58:56 · 1296 阅读 · 1 评论 -
【PCIE】pcie设备协议分析和crash后定位
headerLog和协议的对应入截图中内容completer id就是完成的ID,对应的BDF ,如下图 b5:00.0。原创 2023-05-15 19:28:47 · 773 阅读 · 1 评论 -
PCIe的capability扩展空间字段解释
这是一段关于高级错误报告的信息,其中包含多个字段和值。原创 2023-05-13 16:51:13 · 2901 阅读 · 0 评论 -
Linux系统crash后定位方法-PCIE举例
在Linux操作系统中,"crash"通常是指一种用于分析系统崩溃(crash)的工具或方法。当系统发生崩溃时,可能会产生一些关键信息,如错误日志、内存转储文件等。使用crash工具可以分析这些信息,以便了解崩溃的原因和上下文。crash工具是一个基于命令行的工具,它可以加载系统转储文件,然后提供一系列命令来查看和分析系统状态。例如,可以使用crash工具来查看进程列表、线程列表、内存映射、堆栈跟踪、寄存器值等信息。crash还支持多种操作系统架构和文件系统类型。原创 2023-05-13 16:01:30 · 2575 阅读 · 0 评论 -
PCIE设备在设备上枚举过程
在枚举过程结束时,Root Port (RP)必须设置以下寄存器:Primary Bus, Secondary Bus和Subordinate Bus numbersMemory Base和LimitIO Base和IO Limit。原创 2023-05-12 00:30:00 · 1480 阅读 · 0 评论 -
PCIE-Capability能力集协议解释
分别对应和协议对照,nextpoiter=0表示后面没有capacity了。原创 2023-05-13 00:15:00 · 389 阅读 · 1 评论 -
PCIE使用的有效的命令
红色框框中的第一列对应具体的偏移,第二列对应的是设备的capability id, 第三列对应的是next capability id的偏移。pci capbility配置空间 -xxx。pcie扩展配置空间-xxxx。pci标准配置头空间 -x。原创 2023-05-11 14:14:01 · 574 阅读 · 0 评论 -
PCIE之PCS和PMA含义
在PCIe(Peripheral Component Interconnect Express)中,PCS和PMA都是物理层子层(Physical Layer Sublayer)的组成部分。PCS和PMA一起工作,使得PCIe可以实现高速、可靠的数据传输。原创 2023-05-14 01:00:00 · 4951 阅读 · 0 评论 -
PCIE配置空间分配时机
PCIe的配置空间(Configuration Space)和BAR空间(Base Address Register Space)是由BIOS进行配置和分配的,而不是由操作系统申请的。在启动时,BIOS会扫描PCIe设备并为每个设备分配一个唯一的地址空间。这个地址空间包括了设备的配置空间和BAR空间。其中,配置空间用于存储设备的配置信息,如设备ID、厂商ID、中断号等。而BAR空间则用于映射设备的I/O端口和内存地址。当操作系统启动后,它可以通过读取配置空间中的信息来了解设备的属性和功能。原创 2023-05-08 20:57:20 · 974 阅读 · 0 评论 -
PCIE-打印系统中的PCI设备树的信息的方法
这个代码是用来打印系统中的PCI设备树的信息的。在Linux系统中,PCI设备树是由一些PCI总线和PCI设备组成的树形结构,这个代码的目的就是遍历整个PCI设备树,打印每个设备的信息。该函数首先打印该总线上每个PCI设备的信息,包括它们的厂商ID(vendor ID)和设备ID(device ID),然后递归地调用自身来打印任何下级总线上的设备信息。接着,代码使用一个循环来迭代系统中的所有根PCI总线,并对每个总线调用"dump_pci_tree"函数,从而打印整个PCI设备树的信息。原创 2023-05-06 17:48:06 · 305 阅读 · 0 评论