Merge tag 'trace-printf-v6.13' of git://git.kernel.org/pub/scm/linux/kernel/git/trace...
[drm/drm-misc.git] / Documentation / ABI / testing / debugfs-cxl
blob12488c14be64a089f2b8d9477fe8308e09da338b
1 What:           /sys/kernel/debug/cxl/memX/inject_poison
2 Date:           April, 2023
3 KernelVersion:  v6.4
4 Contact:        linux-cxl@vger.kernel.org
5 Description:
6                 (WO) When a Device Physical Address (DPA) is written to this
7                 attribute, the memdev driver sends an inject poison command to
8                 the device for the specified address. The DPA must be 64-byte
9                 aligned and the length of the injected poison is 64-bytes. If
10                 successful, the device returns poison when the address is
11                 accessed through the CXL.mem bus. Injecting poison adds the
12                 address to the device's Poison List and the error source is set
13                 to Injected. In addition, the device adds a poison creation
14                 event to its internal Informational Event log, updates the
15                 Event Status register, and if configured, interrupts the host.
16                 It is not an error to inject poison into an address that
17                 already has poison present and no error is returned. If the
18                 device returns 'Inject Poison Limit Reached' an -EBUSY error
19                 is returned to the user. The inject_poison attribute is only
20                 visible for devices supporting the capability.
23 What:           /sys/kernel/debug/memX/clear_poison
24 Date:           April, 2023
25 KernelVersion:  v6.4
26 Contact:        linux-cxl@vger.kernel.org
27 Description:
28                 (WO) When a Device Physical Address (DPA) is written to this
29                 attribute, the memdev driver sends a clear poison command to
30                 the device for the specified address. Clearing poison removes
31                 the address from the device's Poison List and writes 0 (zero)
32                 for 64 bytes starting at address. It is not an error to clear
33                 poison from an address that does not have poison set. If the
34                 device cannot clear poison from the address, -ENXIO is returned.
35                 The clear_poison attribute is only visible for devices
36                 supporting the capability.
38 What:           /sys/kernel/debug/cxl/einj_types
39 Date:           January, 2024
40 KernelVersion:  v6.9
41 Contact:        linux-cxl@vger.kernel.org
42 Description:
43                 (RO) Prints the CXL protocol error types made available by
44                 the platform in the format:
46                         0x<error number> <error type>
48                 The possible error types are (as of ACPI v6.5):
50                         0x1000  CXL.cache Protocol Correctable
51                         0x2000  CXL.cache Protocol Uncorrectable non-fatal
52                         0x4000  CXL.cache Protocol Uncorrectable fatal
53                         0x8000  CXL.mem Protocol Correctable
54                         0x10000 CXL.mem Protocol Uncorrectable non-fatal
55                         0x20000 CXL.mem Protocol Uncorrectable fatal
57                 The <error number> can be written to einj_inject to inject
58                 <error type> into a chosen dport.
60 What:           /sys/kernel/debug/cxl/$dport_dev/einj_inject
61 Date:           January, 2024
62 KernelVersion:  v6.9
63 Contact:        linux-cxl@vger.kernel.org
64 Description:
65                 (WO) Writing an integer to this file injects the corresponding
66                 CXL protocol error into $dport_dev ($dport_dev will be a device
67                 name from /sys/bus/pci/devices). The integer to type mapping for
68                 injection can be found by reading from einj_types. If the dport
69                 was enumerated in RCH mode, a CXL 1.1 error is injected, otherwise
70                 a CXL 2.0 error is injected.