71 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			71 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| What:		/sys/kernel/debug/cxl/memX/inject_poison
 | |
| Date:		April, 2023
 | |
| KernelVersion:	v6.4
 | |
| Contact:	linux-cxl@vger.kernel.org
 | |
| Description:
 | |
| 		(WO) When a Device Physical Address (DPA) is written to this
 | |
| 		attribute, the memdev driver sends an inject poison command to
 | |
| 		the device for the specified address. The DPA must be 64-byte
 | |
| 		aligned and the length of the injected poison is 64-bytes. If
 | |
| 		successful, the device returns poison when the address is
 | |
| 		accessed through the CXL.mem bus. Injecting poison adds the
 | |
| 		address to the device's Poison List and the error source is set
 | |
| 		to Injected. In addition, the device adds a poison creation
 | |
| 		event to its internal Informational Event log, updates the
 | |
| 		Event Status register, and if configured, interrupts the host.
 | |
| 		It is not an error to inject poison into an address that
 | |
| 		already has poison present and no error is returned. If the
 | |
| 		device returns 'Inject Poison Limit Reached' an -EBUSY error
 | |
| 		is returned to the user. The inject_poison attribute is only
 | |
| 		visible for devices supporting the capability.
 | |
| 
 | |
| 
 | |
| What:		/sys/kernel/debug/memX/clear_poison
 | |
| Date:		April, 2023
 | |
| KernelVersion:	v6.4
 | |
| Contact:	linux-cxl@vger.kernel.org
 | |
| Description:
 | |
| 		(WO) When a Device Physical Address (DPA) is written to this
 | |
| 		attribute, the memdev driver sends a clear poison command to
 | |
| 		the device for the specified address. Clearing poison removes
 | |
| 		the address from the device's Poison List and writes 0 (zero)
 | |
| 		for 64 bytes starting at address. It is not an error to clear
 | |
| 		poison from an address that does not have poison set. If the
 | |
| 		device cannot clear poison from the address, -ENXIO is returned.
 | |
| 		The clear_poison attribute is only visible for devices
 | |
| 		supporting the capability.
 | |
| 
 | |
| What:		/sys/kernel/debug/cxl/einj_types
 | |
| Date:		January, 2024
 | |
| KernelVersion:	v6.9
 | |
| Contact:	linux-cxl@vger.kernel.org
 | |
| Description:
 | |
| 		(RO) Prints the CXL protocol error types made available by
 | |
| 		the platform in the format:
 | |
| 
 | |
| 			0x<error number> <error type>
 | |
| 
 | |
| 		The possible error types are (as of ACPI v6.5):
 | |
| 
 | |
| 			0x1000	CXL.cache Protocol Correctable
 | |
| 			0x2000	CXL.cache Protocol Uncorrectable non-fatal
 | |
| 			0x4000	CXL.cache Protocol Uncorrectable fatal
 | |
| 			0x8000	CXL.mem Protocol Correctable
 | |
| 			0x10000	CXL.mem Protocol Uncorrectable non-fatal
 | |
| 			0x20000	CXL.mem Protocol Uncorrectable fatal
 | |
| 
 | |
| 		The <error number> can be written to einj_inject to inject
 | |
| 		<error type> into a chosen dport.
 | |
| 
 | |
| What:		/sys/kernel/debug/cxl/$dport_dev/einj_inject
 | |
| Date:		January, 2024
 | |
| KernelVersion:	v6.9
 | |
| Contact:	linux-cxl@vger.kernel.org
 | |
| Description:
 | |
| 		(WO) Writing an integer to this file injects the corresponding
 | |
| 		CXL protocol error into $dport_dev ($dport_dev will be a device
 | |
| 		name from /sys/bus/pci/devices). The integer to type mapping for
 | |
| 		injection can be found by reading from einj_types. If the dport
 | |
| 		was enumerated in RCH mode, a CXL 1.1 error is injected, otherwise
 | |
| 		a CXL 2.0 error is injected.
 |