18dd2bc0fSBen WidawskyWhat: /sys/bus/cxl/flush 28dd2bc0fSBen WidawskyDate: Januarry, 2022 38dd2bc0fSBen WidawskyKernelVersion: v5.18 48dd2bc0fSBen WidawskyContact: linux-cxl@vger.kernel.org 58dd2bc0fSBen WidawskyDescription: 68dd2bc0fSBen Widawsky (WO) If userspace manually unbinds a port the kernel schedules 78dd2bc0fSBen Widawsky all descendant memdevs for unbind. Writing '1' to this attribute 88dd2bc0fSBen Widawsky flushes that work. 98dd2bc0fSBen Widawsky 10b39cb105SDan WilliamsWhat: /sys/bus/cxl/devices/memX/firmware_version 11b39cb105SDan WilliamsDate: December, 2020 12b39cb105SDan WilliamsKernelVersion: v5.12 13b39cb105SDan WilliamsContact: linux-cxl@vger.kernel.org 14b39cb105SDan WilliamsDescription: 15b39cb105SDan Williams (RO) "FW Revision" string as reported by the Identify 16b39cb105SDan Williams Memory Device Output Payload in the CXL-2.0 17b39cb105SDan Williams specification. 18b39cb105SDan Williams 19b39cb105SDan WilliamsWhat: /sys/bus/cxl/devices/memX/ram/size 20b39cb105SDan WilliamsDate: December, 2020 21b39cb105SDan WilliamsKernelVersion: v5.12 22b39cb105SDan WilliamsContact: linux-cxl@vger.kernel.org 23b39cb105SDan WilliamsDescription: 24b39cb105SDan Williams (RO) "Volatile Only Capacity" as bytes. Represents the 25b39cb105SDan Williams identically named field in the Identify Memory Device Output 26b39cb105SDan Williams Payload in the CXL-2.0 specification. 27b39cb105SDan Williams 28b39cb105SDan WilliamsWhat: /sys/bus/cxl/devices/memX/pmem/size 29b39cb105SDan WilliamsDate: December, 2020 30b39cb105SDan WilliamsKernelVersion: v5.12 31b39cb105SDan WilliamsContact: linux-cxl@vger.kernel.org 32b39cb105SDan WilliamsDescription: 33b39cb105SDan Williams (RO) "Persistent Only Capacity" as bytes. Represents the 34b39cb105SDan Williams identically named field in the Identify Memory Device Output 35b39cb105SDan Williams Payload in the CXL-2.0 specification. 364812be97SDan Williams 37bcc79ea3SDan WilliamsWhat: /sys/bus/cxl/devices/memX/serial 38bcc79ea3SDan WilliamsDate: January, 2022 39bcc79ea3SDan WilliamsKernelVersion: v5.18 40bcc79ea3SDan WilliamsContact: linux-cxl@vger.kernel.org 41bcc79ea3SDan WilliamsDescription: 42bcc79ea3SDan Williams (RO) 64-bit serial number per the PCIe Device Serial Number 43bcc79ea3SDan Williams capability. Mandatory for CXL devices, see CXL 2.0 8.1.12.2 44bcc79ea3SDan Williams Memory Device PCIe Capabilities and Extended Capabilities. 45bcc79ea3SDan Williams 46cf1f6877SDan WilliamsWhat: /sys/bus/cxl/devices/memX/numa_node 47cf1f6877SDan WilliamsDate: January, 2022 48cf1f6877SDan WilliamsKernelVersion: v5.18 49cf1f6877SDan WilliamsContact: linux-cxl@vger.kernel.org 50cf1f6877SDan WilliamsDescription: 51cf1f6877SDan Williams (RO) If NUMA is enabled and the platform has affinitized the 52cf1f6877SDan Williams host PCI device for this memory device, emit the CPU node 53cf1f6877SDan Williams affinity for this device. 54cf1f6877SDan Williams 554812be97SDan WilliamsWhat: /sys/bus/cxl/devices/*/devtype 564812be97SDan WilliamsDate: June, 2021 574812be97SDan WilliamsKernelVersion: v5.14 584812be97SDan WilliamsContact: linux-cxl@vger.kernel.org 594812be97SDan WilliamsDescription: 60*86677a4eSDan Williams (RO) CXL device objects export the devtype attribute which 61*86677a4eSDan Williams mirrors the same value communicated in the DEVTYPE environment 62*86677a4eSDan Williams variable for uevents for devices on the "cxl" bus. 634812be97SDan Williams 6483fbdbe4SDan WilliamsWhat: /sys/bus/cxl/devices/*/modalias 6583fbdbe4SDan WilliamsDate: December, 2021 6683fbdbe4SDan WilliamsKernelVersion: v5.18 6783fbdbe4SDan WilliamsContact: linux-cxl@vger.kernel.org 6883fbdbe4SDan WilliamsDescription: 69*86677a4eSDan Williams (RO) CXL device objects export the modalias attribute which 70*86677a4eSDan Williams mirrors the same value communicated in the MODALIAS environment 71*86677a4eSDan Williams variable for uevents for devices on the "cxl" bus. 7283fbdbe4SDan Williams 734812be97SDan WilliamsWhat: /sys/bus/cxl/devices/portX/uport 744812be97SDan WilliamsDate: June, 2021 754812be97SDan WilliamsKernelVersion: v5.14 764812be97SDan WilliamsContact: linux-cxl@vger.kernel.org 774812be97SDan WilliamsDescription: 78*86677a4eSDan Williams (RO) CXL port objects are enumerated from either a platform 79*86677a4eSDan Williams firmware device (ACPI0017 and ACPI0016) or PCIe switch upstream 80*86677a4eSDan Williams port with CXL component registers. The 'uport' symlink connects 81*86677a4eSDan Williams the CXL portX object to the device that published the CXL port 824812be97SDan Williams capability. 837d4b5ca2SDan Williams 847d4b5ca2SDan WilliamsWhat: /sys/bus/cxl/devices/portX/dportY 857d4b5ca2SDan WilliamsDate: June, 2021 867d4b5ca2SDan WilliamsKernelVersion: v5.14 877d4b5ca2SDan WilliamsContact: linux-cxl@vger.kernel.org 887d4b5ca2SDan WilliamsDescription: 89*86677a4eSDan Williams (RO) CXL port objects are enumerated from either a platform 90*86677a4eSDan Williams firmware device (ACPI0017 and ACPI0016) or PCIe switch upstream 91*86677a4eSDan Williams port with CXL component registers. The 'dportY' symlink 92*86677a4eSDan Williams identifies one or more downstream ports that the upstream port 93*86677a4eSDan Williams may target in its decode of CXL memory resources. The 'Y' 94*86677a4eSDan Williams integer reflects the hardware port unique-id used in the 95*86677a4eSDan Williams hardware decoder target list. 9640ba17afSDan Williams 9740ba17afSDan WilliamsWhat: /sys/bus/cxl/devices/decoderX.Y 9840ba17afSDan WilliamsDate: June, 2021 9940ba17afSDan WilliamsKernelVersion: v5.14 10040ba17afSDan WilliamsContact: linux-cxl@vger.kernel.org 10140ba17afSDan WilliamsDescription: 102*86677a4eSDan Williams (RO) CXL decoder objects are enumerated from either a platform 10340ba17afSDan Williams firmware description, or a CXL HDM decoder register set in a 10440ba17afSDan Williams PCIe device (see CXL 2.0 section 8.2.5.12 CXL HDM Decoder 10540ba17afSDan Williams Capability Structure). The 'X' in decoderX.Y represents the 10640ba17afSDan Williams cxl_port container of this decoder, and 'Y' represents the 10740ba17afSDan Williams instance id of a given decoder resource. 10840ba17afSDan Williams 10940ba17afSDan WilliamsWhat: /sys/bus/cxl/devices/decoderX.Y/{start,size} 11040ba17afSDan WilliamsDate: June, 2021 11140ba17afSDan WilliamsKernelVersion: v5.14 11240ba17afSDan WilliamsContact: linux-cxl@vger.kernel.org 11340ba17afSDan WilliamsDescription: 114*86677a4eSDan Williams (RO) The 'start' and 'size' attributes together convey the 115*86677a4eSDan Williams physical address base and number of bytes mapped in the 116*86677a4eSDan Williams decoder's decode window. For decoders of devtype 117*86677a4eSDan Williams "cxl_decoder_root" the address range is fixed. For decoders of 118*86677a4eSDan Williams devtype "cxl_decoder_switch" the address is bounded by the 119*86677a4eSDan Williams decode range of the cxl_port ancestor of the decoder's cxl_port, 120*86677a4eSDan Williams and dynamically updates based on the active memory regions in 121*86677a4eSDan Williams that address space. 12240ba17afSDan Williams 12340ba17afSDan WilliamsWhat: /sys/bus/cxl/devices/decoderX.Y/locked 12440ba17afSDan WilliamsDate: June, 2021 12540ba17afSDan WilliamsKernelVersion: v5.14 12640ba17afSDan WilliamsContact: linux-cxl@vger.kernel.org 12740ba17afSDan WilliamsDescription: 128*86677a4eSDan Williams (RO) CXL HDM decoders have the capability to lock the 129*86677a4eSDan Williams configuration until the next device reset. For decoders of 130*86677a4eSDan Williams devtype "cxl_decoder_root" there is no standard facility to 131*86677a4eSDan Williams unlock them. For decoders of devtype "cxl_decoder_switch" a 132*86677a4eSDan Williams secondary bus reset, of the PCIe bridge that provides the bus 133*86677a4eSDan Williams for this decoders uport, unlocks / resets the decoder. 13440ba17afSDan Williams 13540ba17afSDan WilliamsWhat: /sys/bus/cxl/devices/decoderX.Y/target_list 13640ba17afSDan WilliamsDate: June, 2021 13740ba17afSDan WilliamsKernelVersion: v5.14 13840ba17afSDan WilliamsContact: linux-cxl@vger.kernel.org 13940ba17afSDan WilliamsDescription: 140*86677a4eSDan Williams (RO) Display a comma separated list of the current decoder 141*86677a4eSDan Williams target configuration. The list is ordered by the current 142*86677a4eSDan Williams configured interleave order of the decoder's dport instances. 143*86677a4eSDan Williams Each entry in the list is a dport id. 14440ba17afSDan Williams 14540ba17afSDan WilliamsWhat: /sys/bus/cxl/devices/decoderX.Y/cap_{pmem,ram,type2,type3} 14640ba17afSDan WilliamsDate: June, 2021 14740ba17afSDan WilliamsKernelVersion: v5.14 14840ba17afSDan WilliamsContact: linux-cxl@vger.kernel.org 14940ba17afSDan WilliamsDescription: 150*86677a4eSDan Williams (RO) When a CXL decoder is of devtype "cxl_decoder_root", it 15140ba17afSDan Williams represents a fixed memory window identified by platform 15240ba17afSDan Williams firmware. A fixed window may only support a subset of memory 15340ba17afSDan Williams types. The 'cap_*' attributes indicate whether persistent 15440ba17afSDan Williams memory, volatile memory, accelerator memory, and / or expander 15540ba17afSDan Williams memory may be mapped behind this decoder's memory window. 15640ba17afSDan Williams 15740ba17afSDan WilliamsWhat: /sys/bus/cxl/devices/decoderX.Y/target_type 15840ba17afSDan WilliamsDate: June, 2021 15940ba17afSDan WilliamsKernelVersion: v5.14 16040ba17afSDan WilliamsContact: linux-cxl@vger.kernel.org 16140ba17afSDan WilliamsDescription: 162*86677a4eSDan Williams (RO) When a CXL decoder is of devtype "cxl_decoder_switch", it 163*86677a4eSDan Williams can optionally decode either accelerator memory (type-2) or 164*86677a4eSDan Williams expander memory (type-3). The 'target_type' attribute indicates 165*86677a4eSDan Williams the current setting which may dynamically change based on what 16640ba17afSDan Williams memory regions are activated in this decode hierarchy. 167