pci

[转]老男孩读PCIe之六:配置和地址空间

我与影子孤独终老i 提交于 2019-11-27 13:03:49
转自: http://www.ssdfans.com 每个PCIe设备,有这么一段空间,Host软件可以读取它获得该设备的一些信息,也可以通过它来配置该设备,这段空间就叫做PCIe的配置空间。不同于每个设备的其它空间,PCIe设备的配置空间是协议规定好的,哪个地方放什么内容,都是有定义的。PCI或者PCI-X时代就有配置空间的概念,那时的配置空间如下: 整个配置空间就是一系列寄存器的集合,其中Type 0是Endpoint的配置,Type 1是Bridge(PCIe时代就是Switch)的配置,都由两部分组成:64 Bytes的Header+192Bytes的Capability结构,后者是设备告诉Host它有多牛逼,都会什么绝活。 进入PCIe时代,PCIe能耐更大,192 Bytes不足以罗列它的绝活。为了保持后向兼容,又要不把绝活落下,怎么办?很简单,我扩展后者的空间,整个配置空间由256 Bytes扩展成4KB,前面256 Bytes保持不变: PCIe有什么能耐(Capability)我们不看,我们先挑软柿子捏,先看看只占64 Bytes的Configuration Header。 像Device ID,Vendor ID,Class Code和Revision ID,是只读寄存器,PCIe设备通过这些寄存器告诉Host软件,这是哪个厂家的设备、设备ID是多少

[转]老男孩读PCIe之四:TLP类型

一世执手 提交于 2019-11-27 12:52:33
转自: http://www.ssdfans.com PCIe邮包从树根出发怎样翻山越岭到达端点? 想要和老男孩还有全世界的大牛讨论SSD及存储相关技术?加nanoarch为微信好友,拉你进ssdfans微信群 。 欢迎给ssdfans投稿,投稿就能加入ssdfans作者群,和冬瓜哥,蛋蛋等大咖切磋武艺。 Host与PCIe设备之间,或者PCIe设备与设备之间,数据传输都是以Packet形式进行的。事务层根据上层(软件层或者应用层)请求(Request)的类型、目的地址和其它相关属性,把这些请求打包,产生TLP,也就是Transaction Layer Packet。然后这些TLP往下,经历数据链路层,物理层,最终到达目标设备。 根据软件层的不同请求,事务层产生四种不同的TLP请求: Memory IO Configuration Message 前三种分别用于访问内存空间、IO空间、配置空间,这三种请求在PCI或者PCI-X时代就有了;最后的Message请求是PCIe新加的。在PCI或者PCI-X时代,像中断、错误以及电源管理相关信息,都是通过边带信号(sideband signal)进行传输的,但PCIe干掉了这些边带信号线,所有的通讯都是走带内信号,即通过Packet传输,因此,过去一些由边带信号线传输的数据,比如中断信息、错误信息等,现在就交由Message来传输了。

反射内存安装使用方法

别等时光非礼了梦想. 提交于 2019-11-27 08:09:01
物理安装 PCI反射内存 兼容的系统外观不同,并且有不同的安装流程,建议安装前 检查主机系统的安装程序,以下步骤简单的描述了一个 PCI反射内存卡的安装程序。 打开机箱,确保在安装前已经设置的节点 ID。板上还可以设置 所需的模式。 确保 PCI 连接器正确插入,安装螺丝。 关闭机箱,接通电源。 来源: https://blog.csdn.net/weixin_43549463/article/details/99585621

反射内存卡编程

一个人想着一个人 提交于 2019-11-27 08:08:49
反射内存卡编程 基本 RFM5565 反射内存写入和读取操作需要很少或根本不需要编程知识。反射内存板上电后进入功能模式。用户将需要访问 PCI配置寄存器(基址寄存器 0,1,2 和 3)获取系统 BIOS 分配寄存器组和反射内存的基址。反射内存的寄存器组的基址和内存地址可以比较随意,。对于超出了基本的设置,如启用或禁用中断或 DMA 周期的操作,用户必须知道三个寄存器组内具体寄存器分配,本章提供的这些信息。 这三个寄存器组如下: PCI 配置寄存器 本地配置寄存器 反射内存控制和状态寄存器 PCI 配置寄存器 PCI 配置寄存器位于 256 字节的 PCI 配置空间,它遵循 PCI 规范V2.2 定义的模板。第一个 64 字节的 PCI 配置空间完全由预定的标头组成的。在该区域中,每个设备只实现必要和相关的寄存器。然而,所有的寄存器和位功能存在必须符合 PCI 规范的定义。除了第一个64 字节边界,每个设备都可以实现额外的设备独特的寄存器。虽然 PCI 配置寄存器可在任何时候访问,但一般他们都很少被用户修改。 表 3-1 PCI 配置寄存器 来源: https://blog.csdn.net/weixin_43549463/article/details/99586126