Actions
Feature #14501
closedpcieadm could decode rcld
Start date:
Due date:
% Done:
100%
Estimated time:
Difficulty:
Medium
Tags:
Gerrit CR:
Description
I recently found a few older Intel systems that happened to have a Root Complex Link Declaration extended capability. This adds support for decoding those.
Updated by Robert Mustacchi 6 months ago
To test this, I decoded a few different devices with this capability:
rm@beowulf:~$ /usr/lib/pci/pcieadm show-cfgspace -f rc/00-1b-00.pci rcld Root Complex Link Declaration Capability (0x5) Capability Header: 0x10005 |--> Capability ID: 0x5 |--> Capability Version: 0x1 |--> Next Capability Offset: 0x0 Self Description: 0xf000100 |--> Element Type: Configuration Space Element (0x0) |--> Number of Entries: 0x1 |--> Component ID: 0x0 |--> Port Number: 0xf Link 1 Description: 0x1 |--> Link Valid: yes (0x1) |--> Link Type: RCRB (0x0) |--> Assosciate RCRB: no (0x0) |--> Target Component ID: 0x0 |--> Target Port Number: 0x0 Link 1 Address: 0xfed1c000 rm@beowulf:~$ /usr/lib/pci/pcieadm show-cfgspace -f rc/00-1c-00.pci rcld Root Complex Link Declaration Capability (0x5) Capability Header: 0x10005 |--> Capability ID: 0x5 |--> Capability Version: 0x1 |--> Next Capability Offset: 0x0 Self Description: 0x1000100 |--> Element Type: Configuration Space Element (0x0) |--> Number of Entries: 0x1 |--> Component ID: 0x0 |--> Port Number: 0x1 Link 1 Description: 0x1 |--> Link Valid: yes (0x1) |--> Link Type: RCRB (0x0) |--> Assosciate RCRB: no (0x0) |--> Target Component ID: 0x0 |--> Target Port Number: 0x0 Link 1 Address: 0xfed1c000 rm@beowulf:~$ /usr/lib/pci/pcieadm show-cfgspace -f rc/00-1c-04.pci rcld Root Complex Link Declaration Capability (0x5) Capability Header: 0x10005 |--> Capability ID: 0x5 |--> Capability Version: 0x1 |--> Next Capability Offset: 0x0 Self Description: 0x5000100 |--> Element Type: Configuration Space Element (0x0) |--> Number of Entries: 0x1 |--> Component ID: 0x0 |--> Port Number: 0x5 Link 1 Description: 0x1 |--> Link Valid: yes (0x1) |--> Link Type: RCRB (0x0) |--> Assosciate RCRB: no (0x0) |--> Target Component ID: 0x0 |--> Target Port Number: 0x0 Link 1 Address: 0xfed1c000
One of these were from a Westmere based system, while others were from an Ivy Bridge client system. I then ran the full util-tests test suite which has a bunch of regression tests and related for pcieadm:
rm@beowulf:~$ pfexec /opt/util-tests/bin/utiltest Test: /opt/util-tests/tests/allowed-ips (run as root) [00:00] [PASS] Test: /opt/util-tests/tests/ar/artest (run as root) [00:01] [PASS] Test: /opt/util-tests/tests/chown_test (run as root) [00:00] [PASS] Test: /opt/util-tests/tests/date_test (run as root) [00:00] [PASS] Test: /opt/util-tests/tests/find/findtest (run as root) [00:00] [PASS] Test: /opt/util-tests/tests/grep_test (run as root) [00:02] [PASS] Test: /opt/util-tests/tests/head/head_test (run as root) [00:00] [PASS] Test: /opt/util-tests/tests/libjedec_test (run as root) [00:00] [PASS] Test: /opt/util-tests/tests/libsff/libsff (run as root) [00:00] [PASS] Test: /opt/util-tests/tests/make_test (run as root) [00:00] [PASS] Test: /opt/util-tests/tests/mdb/mdbtest (run as root) [00:02] [PASS] Test: /opt/util-tests/tests/mergeq/mqt (run as root) [00:00] [PASS] Test: /opt/util-tests/tests/mergeq/wqt (run as root) [00:00] [PASS] Test: /opt/util-tests/tests/pcidbtest (run as root) [00:01] [PASS] Test: /opt/util-tests/tests/pcieadm-priv (run as root) [00:02] [PASS] Test: /opt/util-tests/tests/pcieadmtest (run as root) [00:03] [PASS] Test: /opt/util-tests/tests/printf_test (run as root) [00:00] [PASS] Test: /opt/util-tests/tests/set-linkprop (run as root) [00:00] [PASS] Test: /opt/util-tests/tests/sleep/sleeptest (run as root) [00:15] [PASS] Test: /opt/util-tests/tests/smbios (run as root) [00:00] [PASS] Test: /opt/util-tests/tests/svr4pkg_test (run as root) [00:00] [PASS] Test: /opt/util-tests/tests/xargs_test (run as root) [00:00] [PASS] Test: /opt/util-tests/tests/awk/runtests.sh (run as nobody) [02:55] [PASS] Test: /opt/util-tests/tests/ctf/precheck (run as root) [00:00] [PASS] Test: /opt/util-tests/tests/ctf/ctftest (run as root) [00:06] [PASS] Test: /opt/util-tests/tests/demangle/afl-fast (run as root) [00:01] [PASS] Test: /opt/util-tests/tests/demangle/gcc-libstdc++ (run as root) [00:00] [PASS] Test: /opt/util-tests/tests/demangle/llvm-stdcxxabi (run as root) [00:00] [PASS] Test: /opt/util-tests/tests/libcustr/custr_remove (run as root) [00:00] [PASS] Test: /opt/util-tests/tests/libcustr/custr_trunc (run as root) [00:00] [PASS] Test: /opt/util-tests/tests/libnvpair_json/json_00_blank (run as root) [00:00] [PASS] Test: /opt/util-tests/tests/libnvpair_json/json_01_boolean (run as root) [00:00] [PASS] Test: /opt/util-tests/tests/libnvpair_json/json_02_numbers (run as root) [00:00] [PASS] Test: /opt/util-tests/tests/libnvpair_json/json_03_empty_arrays (run as root) [00:00] [PASS] Test: /opt/util-tests/tests/libnvpair_json/json_04_number_arrays (run as root) [00:00] [PASS] Test: /opt/util-tests/tests/libnvpair_json/json_05_strings (run as root) [00:00] [PASS] Test: /opt/util-tests/tests/libnvpair_json/json_06_nested (run as root) [00:00] [PASS] Test: /opt/util-tests/tests/libnvpair_json/json_07_nested_arrays (run as root) [00:00] [PASS] Test: /opt/util-tests/tests/sed/sed_addr (run as root) [00:00] [PASS] Test: /opt/util-tests/tests/sed/multi_test (run as root) [00:00] [PASS] Results Summary PASS 40 Running Time: 00:03:37 Percent passed: 100.0% Log directory: /var/tmp/test_results/20220217T012015
Updated by Robert Mustacchi 6 months ago
- Subject changed from pcieadm could decode rclb to pcieadm could decode rcld
Updated by Electric Monk 6 months ago
- Status changed from New to Closed
- % Done changed from 0 to 100
git commit 4dde95dacc64b35aa9882fcbd0a847355d130734
commit 4dde95dacc64b35aa9882fcbd0a847355d130734 Author: Robert Mustacchi <rm@fingolfin.org> Date: 2022-02-18T01:48:17.000Z 14501 pcieadm could decode rcld Reviewed by: Jason King <jason.brian.king@gmail.com> Reviewed by: Andy Fiddaman <andy@omnios.org> Approved by: Dan McDonald <danmcd@joyent.com>
Actions