PCIE配置空间设置 当pcie链路信号质量不好,导致Pcie链路报错时需要将链路降速进行测试。链路速率可以通过pcie功能寄存器(PCI Express Capabilities Register)进行配置。Pcie功能寄存器可以通过配置空间中Capabilities Register (0x34)寄存器来查找首地址。 PCIE 设备基本配置空间定义如下:
PCIE 桥基本配置空间如下:
配置空间Capabilities Register (0x34)地址存放Capabilitie首地址。通过lspci命令查看一个pcie桥片配置空间如下:
配置空间0x34地址值为0x40 另外通过lspci –vvv也可以查看配置空间信息如下:
Capabilities也是0x40。 功能寄存器定义如下:
上面桥片功能寄存器对应的如下:
功能寄存器对应的相关值如下: PCI Expres Cap ID:0x10 Next Cap Pointer:0x80 PCI Express Capabilities Register:0x0042(根桥端口Root Port of PCI Express Root Complex*) Link Capabilities:0x01717c13(支持8GT/s) Link Control Register: 0x0,寄存器定义如下:
Link Control 寄存器第Retrain Link (5)位设置成1时速率会重新训练。 Link Control 2 Register: 0x0001,寄存器定义如下:
Link Control 2 寄存器Target Link Speed (0-3位)可以设置速率。 0000b: 强制2.5GT/s 0001b: 2.5GT/s 0010b: 5.0GT/s 重新设置pcie速率配置上面两个寄存器: 1、修改Link Control 2 Register的低4位,设置速率 2、Link Control Register第5位置1,重新训练速率。 修改pcie配置寄存器可以通过setpci工具,输入命令setpci –dumpregs可以查看pcie配置空间可设置寄存器名称,如下所示:setpci –dumpregs cap pos w name 00 W VENDOR_ID 02 W DEVICE_ID 04 W COMMAND 06 W STATUS 08 B REVISION 09 B CLASS_PROG 0a W CLASS_DEVICE 0c B CACHE_LINE_SIZE 0d B LATENCY_TIMER 0e B HEADER_TYPE 0f B BIST 10 L BASE_ADDRESS_0 14 L BASE_ADDRESS_1 18 L BASE_ADDRESS_2 1c L BASE_ADDRESS_3 20 L BASE_ADDRESS_4 24 L BASE_ADDRESS_5 28 L CARDBUS_CIS 2c L SUBSYSTEM_VENDOR_ID 2e W SUBSYSTEM_ID 30 L ROM_ADDRESS 3c B INTERRUPT_LINE 3d B INTERRUPT_PIN 3e B MIN_GNT 3f B MAX_LAT 18 B PRIMARY_BUS 19 B SECONDARY_BUS 1a B SUBORDINATE_BUS 1b B SEC_LATENCY_TIMER 1c B IO_BASE 1d B IO_LIMIT 1e W SEC_STATUS 20 W MEMORY_BASE 22 W MEMORY_LIMIT 24 W PREF_MEMORY_BASE 26 W PREF_MEMORY_LIMIT 28 L PREF_BASE_UPPER32 2c L PREF_LIMIT_UPPER32 30 W IO_BASE_UPPER16 32 W IO_LIMIT_UPPER16 38 L BRIDGE_ROM_ADDRESS 3e W BRIDGE_CONTROL 10 L CB_CARDBUS_BASE 14 W CB_CAPABILITIES 16 W CB_SEC_STATUS 18 B CB_BUS_NUMBER 19 B CB_CARDBUS_NUMBER 1a B CB_SUBORDINATE_BUS 1b B CB_CARDBUS_LATENCY 1c L CB_MEMORY_BASE_0 20 L CB_MEMORY_LIMIT_0 24 L CB_MEMORY_BASE_1 28 L CB_MEMORY_LIMIT_1 2c W CB_IO_BASE_0 2e W CB_IO_BASE_0_HI 30 W CB_IO_LIMIT_0 32 W CB_IO_LIMIT_0_HI 34 W CB_IO_BASE_1 36 W CB_IO_BASE_1_HI 38 W CB_IO_LIMIT_1 3a W CB_IO_LIMIT_1_HI 40 W CB_SUBSYSTEM_VENDOR_ID 42 W CB_SUBSYSTEM_ID 44 L CB_LEGACY_MODE_BASE 01 00 – CAP_PM 02 00 – CAP_AGP 03 00 – CAP_VPD 04 00 – CAP_SLOTID 05 00 – CAP_MSI 06 00 – CAP_CHSWP 07 00 – CAP_PCIX 08 00 – CAP_HT 09 00 – CAP_VNDR 0a 00 – CAP_DBG 0b 00 – CAP_CCRC 0c 00 – CAP_HOTPLUG 0d 00 – CAP_SSVID 0e 00 – CAP_AGP3 0f 00 – CAP_SECURE 10 00 – CAP_EXP 11 00 – CAP_MSIX 12 00 – CAP_SATA 13 00 – CAP_AF 0001 00 – ECAP_AER 0002 00 – ECAP_VC 0003 00 – ECAP_DSN 0004 00 – ECAP_PB 0005 00 – ECAP_RCLINK 0006 00 – ECAP_RCILINK 0007 00 – ECAP_RCECOLL 0008 00 – ECAP_MFVC 000a 00 – ECAP_RBCB 000b 00 – ECAP_VNDR 000d 00 – ECAP_ACS 000e 00 – ECAP_ARI 000f 00 – ECAP_ATS 0010 00 – ECAP_SRIOV 其中10 00 – CAP_EXP表示PCIE功能寄存器,其中10是功能ID。用CAP_EXP+偏移就能读写对应功能寄存器。例如读取功能寄存器Link Control(偏移0x10)的值,输入: setpci -s 00:1c.0 CAP_EXP+0x10.w。 如果要重新强制PCIE速率为2.5GT/s,可以输入以下命令: setpci -s 00:1c.0 CAP_EXP+0x30.b=0x0 setpci -s 00:1c.0 CAP_EXP+0x10.b=0x20 .b:1字节 .w :2个字节 .l: 4个字节
2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/48827.html