1What:		/sys/bus/cxl/flush
2Date:		Januarry, 2022
3KernelVersion:	v5.18
4Contact:	linux-cxl@vger.kernel.org
5Description:
6		(WO) If userspace manually unbinds a port the kernel schedules
7		all descendant memdevs for unbind. Writing '1' to this attribute
8		flushes that work.
9
10
11What:		/sys/bus/cxl/devices/memX/firmware_version
12Date:		December, 2020
13KernelVersion:	v5.12
14Contact:	linux-cxl@vger.kernel.org
15Description:
16		(RO) "FW Revision" string as reported by the Identify
17		Memory Device Output Payload in the CXL-2.0
18		specification.
19
20
21What:		/sys/bus/cxl/devices/memX/ram/size
22Date:		December, 2020
23KernelVersion:	v5.12
24Contact:	linux-cxl@vger.kernel.org
25Description:
26		(RO) "Volatile Only Capacity" as bytes. Represents the
27		identically named field in the Identify Memory Device Output
28		Payload in the CXL-2.0 specification.
29
30
31What:		/sys/bus/cxl/devices/memX/pmem/size
32Date:		December, 2020
33KernelVersion:	v5.12
34Contact:	linux-cxl@vger.kernel.org
35Description:
36		(RO) "Persistent Only Capacity" as bytes. Represents the
37		identically named field in the Identify Memory Device Output
38		Payload in the CXL-2.0 specification.
39
40
41What:		/sys/bus/cxl/devices/memX/serial
42Date:		January, 2022
43KernelVersion:	v5.18
44Contact:	linux-cxl@vger.kernel.org
45Description:
46		(RO) 64-bit serial number per the PCIe Device Serial Number
47		capability. Mandatory for CXL devices, see CXL 2.0 8.1.12.2
48		Memory Device PCIe Capabilities and Extended Capabilities.
49
50
51What:		/sys/bus/cxl/devices/memX/numa_node
52Date:		January, 2022
53KernelVersion:	v5.18
54Contact:	linux-cxl@vger.kernel.org
55Description:
56		(RO) If NUMA is enabled and the platform has affinitized the
57		host PCI device for this memory device, emit the CPU node
58		affinity for this device.
59
60
61What:		/sys/bus/cxl/devices/*/devtype
62Date:		June, 2021
63KernelVersion:	v5.14
64Contact:	linux-cxl@vger.kernel.org
65Description:
66		(RO) CXL device objects export the devtype attribute which
67		mirrors the same value communicated in the DEVTYPE environment
68		variable for uevents for devices on the "cxl" bus.
69
70
71What:		/sys/bus/cxl/devices/*/modalias
72Date:		December, 2021
73KernelVersion:	v5.18
74Contact:	linux-cxl@vger.kernel.org
75Description:
76		(RO) CXL device objects export the modalias attribute which
77		mirrors the same value communicated in the MODALIAS environment
78		variable for uevents for devices on the "cxl" bus.
79
80
81What:		/sys/bus/cxl/devices/portX/uport
82Date:		June, 2021
83KernelVersion:	v5.14
84Contact:	linux-cxl@vger.kernel.org
85Description:
86		(RO) CXL port objects are enumerated from either a platform
87		firmware device (ACPI0017 and ACPI0016) or PCIe switch upstream
88		port with CXL component registers. The 'uport' symlink connects
89		the CXL portX object to the device that published the CXL port
90		capability.
91
92
93What:		/sys/bus/cxl/devices/portX/dportY
94Date:		June, 2021
95KernelVersion:	v5.14
96Contact:	linux-cxl@vger.kernel.org
97Description:
98		(RO) CXL port objects are enumerated from either a platform
99		firmware device (ACPI0017 and ACPI0016) or PCIe switch upstream
100		port with CXL component registers. The 'dportY' symlink
101		identifies one or more downstream ports that the upstream port
102		may target in its decode of CXL memory resources.  The 'Y'
103		integer reflects the hardware port unique-id used in the
104		hardware decoder target list.
105
106
107What:		/sys/bus/cxl/devices/decoderX.Y
108Date:		June, 2021
109KernelVersion:	v5.14
110Contact:	linux-cxl@vger.kernel.org
111Description:
112		(RO) CXL decoder objects are enumerated from either a platform
113		firmware description, or a CXL HDM decoder register set in a
114		PCIe device (see CXL 2.0 section 8.2.5.12 CXL HDM Decoder
115		Capability Structure). The 'X' in decoderX.Y represents the
116		cxl_port container of this decoder, and 'Y' represents the
117		instance id of a given decoder resource.
118
119
120What:		/sys/bus/cxl/devices/decoderX.Y/{start,size}
121Date:		June, 2021
122KernelVersion:	v5.14
123Contact:	linux-cxl@vger.kernel.org
124Description:
125		(RO) The 'start' and 'size' attributes together convey the
126		physical address base and number of bytes mapped in the
127		decoder's decode window. For decoders of devtype
128		"cxl_decoder_root" the address range is fixed. For decoders of
129		devtype "cxl_decoder_switch" the address is bounded by the
130		decode range of the cxl_port ancestor of the decoder's cxl_port,
131		and dynamically updates based on the active memory regions in
132		that address space.
133
134
135What:		/sys/bus/cxl/devices/decoderX.Y/locked
136Date:		June, 2021
137KernelVersion:	v5.14
138Contact:	linux-cxl@vger.kernel.org
139Description:
140		(RO) CXL HDM decoders have the capability to lock the
141		configuration until the next device reset. For decoders of
142		devtype "cxl_decoder_root" there is no standard facility to
143		unlock them.  For decoders of devtype "cxl_decoder_switch" a
144		secondary bus reset, of the PCIe bridge that provides the bus
145		for this decoders uport, unlocks / resets the decoder.
146
147
148What:		/sys/bus/cxl/devices/decoderX.Y/target_list
149Date:		June, 2021
150KernelVersion:	v5.14
151Contact:	linux-cxl@vger.kernel.org
152Description:
153		(RO) Display a comma separated list of the current decoder
154		target configuration. The list is ordered by the current
155		configured interleave order of the decoder's dport instances.
156		Each entry in the list is a dport id.
157
158
159What:		/sys/bus/cxl/devices/decoderX.Y/cap_{pmem,ram,type2,type3}
160Date:		June, 2021
161KernelVersion:	v5.14
162Contact:	linux-cxl@vger.kernel.org
163Description:
164		(RO) When a CXL decoder is of devtype "cxl_decoder_root", it
165		represents a fixed memory window identified by platform
166		firmware. A fixed window may only support a subset of memory
167		types. The 'cap_*' attributes indicate whether persistent
168		memory, volatile memory, accelerator memory, and / or expander
169		memory may be mapped behind this decoder's memory window.
170
171
172What:		/sys/bus/cxl/devices/decoderX.Y/target_type
173Date:		June, 2021
174KernelVersion:	v5.14
175Contact:	linux-cxl@vger.kernel.org
176Description:
177		(RO) When a CXL decoder is of devtype "cxl_decoder_switch", it
178		can optionally decode either accelerator memory (type-2) or
179		expander memory (type-3). The 'target_type' attribute indicates
180		the current setting which may dynamically change based on what
181		memory regions are activated in this decode hierarchy.
182
183
184What:		/sys/bus/cxl/devices/endpointX/CDAT
185Date:		July, 2022
186KernelVersion:	v5.20
187Contact:	linux-cxl@vger.kernel.org
188Description:
189		(RO) If this sysfs entry is not present no DOE mailbox was
190		found to support CDAT data.  If it is present and the length of
191		the data is 0 reading the CDAT data failed.  Otherwise the CDAT
192		data is reported.
193