Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
138 commits
Select commit Hold shift + click to select a range
a191a20
cxl/port: Quiet warning messages from the cxl_test environment
djbw Sep 15, 2023
3c2cfb6
cxl/pci: Update comment
weiny2 May 17, 2023
3f3cba8
ACPICA: Add defines for CDAT SSLBIS
davejiang Oct 1, 2023
f9addaa
cxl/pci: Remove hardirq handler for cxl_request_irq()
djbw Oct 4, 2023
1d2abdd
tools/testing/cxl: Make cxl_memdev_state available to other command e…
djbw Oct 4, 2023
10c718c
tools/testing/cxl: Add 'sanitize notifier' support
djbw Oct 4, 2023
99127f3
cxl/mbox: Remove useless cast in cxl_mem_create_range_info()
AlisonSchofield Aug 15, 2023
29c5651
MAINTAINERS: Add tools/testing/cxl files to CXL
stellarhopper Oct 26, 2023
34e21a3
tools/testing/cxl: Slow down the mock firmware transfer
stellarhopper Oct 26, 2023
35a9769
cxl/port: Rename @comp_map to @reg_map in struct cxl_register_map
Oct 18, 2023
f5bf437
cxl/port: Pre-initialize component register mappings
Oct 18, 2023
15295e7
cxl/pci: Store the endpoint's Component Register mappings in struct c…
Oct 18, 2023
98bfc30
cxl/hdm: Use stored Component Register mappings to map HDM decoder ca…
Oct 18, 2023
f415dc2
cxl/pci: Remove Component Register base address from struct cxl_dev_s…
Oct 18, 2023
cfe12bf
cxl/port: Remove Component Register base address from struct cxl_port
Oct 18, 2023
1a64e39
cxl/pci: Add RCH downstream port AER register discovery
Oct 27, 2023
20f4a41
PCI/AER: Refactor cper_print_aer() for use by CXL driver module
ktbowman Oct 18, 2023
5aa96fd
cxl/pci: Update CXL error logging to use RAS register address
ktbowman Oct 18, 2023
f2348ca
cxl/pci: Map RCH downstream AER registers for logging protocol errors
ktbowman Oct 18, 2023
d048b7a
cxl/pci: Add RCH downstream port error logging
ktbowman Oct 18, 2023
f7d58d9
cxl/pci: Disable root port interrupts in RCH mode
ktbowman Oct 18, 2023
b8ef520
PCI/AER: Forward RCH downstream port-detected errors to the CXL.mem d…
Oct 18, 2023
aa0cbf8
PCI/AER: Unmask RCEC internal errors to enable RCH downstream port er…
Oct 18, 2023
36dcb1d
cxl/core/regs: Rename phys_addr in cxl_map_component_regs()
Oct 18, 2023
be1d389
cxl/core/regs: Rework cxl_map_pmu_regs() to use map->dev for devm
Oct 18, 2023
48841d6
cxl: Add decoders_committed sysfs attribute to cxl_port
davejiang Oct 16, 2023
01cc081
cxl: Export QTG ids from CFMWS to sysfs as qos_class attribute
davejiang Oct 12, 2023
8bb9162
cxl: Add checksum verification to CDAT from CXL
davejiang Oct 12, 2023
93e18c5
cxl: Add support for reading CXL switch CDAT table
davejiang Oct 12, 2023
954ab22
acpi: Move common tables helper functions to common lib
davejiang Oct 12, 2023
05a81ae
ACPI: Add helper acpi_use_parent_companion
hkallweit Oct 15, 2023
2d09469
cxl/hdm: Fix && vs || bug
Oct 31, 2023
a7ab948
cxl/pci: Change CXL AER support check to use native AER
ktbowman Nov 2, 2023
2bdd537
lib/fw_table: Remove acpi_parse_entries_array() export
djbw Nov 2, 2023
0b555d3
ACPI: Fix ARM32 platforms compile issue introduced by fw_table changes
davejiang Nov 22, 2023
dd0f4ee
cxl: Add Support for Get Timestamp
Aug 29, 2023
fcd642e
cxl/cdat: Free correct buffer on checksum error
weiny2 Nov 17, 2023
6ebc2f2
cxl: Fix unregister_region() callback parameter assignment
davejiang Dec 14, 2023
ec69327
lib/firmware_table: tables: Add CDAT table parsing support
davejiang Dec 21, 2023
99f553a
acpi: numa: Add helper function to retrieve the performance attributes
davejiang Dec 21, 2023
c1fa91f
cxl: Add callback to parse the DSMAS subtables from CDAT
davejiang Dec 21, 2023
afceb9c
cxl: Add callback to parse the DSLBIS subtable from CDAT
davejiang Dec 21, 2023
971cfba
cxl: Add callback to parse the SSLBIS subtable from CDAT
davejiang Dec 21, 2023
fa13f7d
cxl: Add support for _DSM Function for retrieving QTG ID
davejiang Dec 21, 2023
e994308
cxl: Calculate and store PCI link latency for the downstream ports
davejiang Dec 21, 2023
8523840
tools/testing/cxl: Add hostbridge UID string for cxl_test mock hb dev…
davejiang Dec 21, 2023
bbf5567
cxl: Store the access coordinates for the generic ports
davejiang Dec 21, 2023
4192c90
cxl: Add helper function that calculate performance data for downstre…
davejiang Dec 21, 2023
8a10396
cxl: Compute the entire CXL path latency and bandwidth data
davejiang Dec 21, 2023
2db53db
cxl: Store QTG IDs and related info to the CXL memory device context
davejiang Dec 21, 2023
b49d3d7
cxl: Export sysfs attributes for memory device QoS class
davejiang Dec 21, 2023
661f190
cxl: Check qos_class validity on memdev probe
davejiang Dec 21, 2023
688060e
cxl/region: Add dev_dbg() detail on failure to allocate HPA space
AlisonSchofield Dec 23, 2023
8309381
cxl/region: use %pap format to print resource_size_t
rddunlap Jan 2, 2024
6830c5f
cxl/trace: Pass UUID explicitly to event traces
weiny2 Dec 21, 2023
78dd661
cxl: Introduce put_cxl_root() helper
davejiang Jan 5, 2024
75c12b3
cxl: Convert find_cxl_root() to return a 'struct cxl_root *'
davejiang Jan 5, 2024
8dcfe2e
cxl: Fix device reference leak in cxl_port_perf_data_calculate()
davejiang Jan 5, 2024
29ddf59
cxl: Refactor to use __free() for cxl_root allocation in cxl_find_nvd…
davejiang Jan 5, 2024
743a424
cxl: Refactor to use __free() for cxl_root allocation in cxl_endpoint…
davejiang Jan 5, 2024
90707ab
cxl/events: Promote CXL event structures to a core header
weiny2 Dec 21, 2023
e00f930
cxl/events: Create common event UUID defines
weiny2 Dec 21, 2023
ee3b706
cxl/events: Remove passing a UUID to known event traces
weiny2 Dec 21, 2023
8792524
cxl/events: Separate UUID from event structures
weiny2 Dec 21, 2023
95113a6
cxl/events: Create a CXL event union
weiny2 Dec 21, 2023
f7bec55
acpi/ghes: Process CXL Component Events
weiny2 Dec 21, 2023
c47253e
cxl/pci: Register for and process CPER events
weiny2 Dec 21, 2023
b504138
cxl/core: use sysfs_emit() for attr's _show()
irides Jan 12, 2024
539ec1a
tools/testing/cxl: Disable "missing prototypes / declarations" warnings
djbw Jan 16, 2024
ad0c65d
tools/testing/nvdimm: Disable "missing prototypes / declarations" war…
djbw Jan 16, 2024
d4be63d
cxl/pci: Skip irq features if MSI/MSI-X are not supported
weiny2 Jan 18, 2024
35e06b5
cxl/pci: Skip to handle RAS errors if CXL.mem device is detached
ming4li Jan 29, 2024
3151567
cxl/cper: Fix errant CPER prints for CXL events
weiny2 Jan 31, 2024
f74adf0
cxl: Change 'struct cxl_memdev_state' *_perf_list to single 'struct c…
davejiang Feb 6, 2024
c800d0b
cxl: Remove unnecessary type cast in cxl_qos_class_verify()
davejiang Feb 6, 2024
e4c037c
cxl: Fix sysfs export of qos_class for memdev
davejiang Feb 6, 2024
59bf116
cxl/test: Add support for qos_class checking
davejiang Feb 6, 2024
2740cf4
acpi/ghes: Remove CXL CPER notifications
djbw Feb 18, 2024
871b2c2
ACPI: HMAT: Introduce 2 levels of generic port access class
davejiang Mar 8, 2024
5fd9a0c
ACPI: HMAT / cxl: Add retrieval of generic port coordinates for both …
davejiang Mar 8, 2024
a90a132
cxl: Split out combine_coordinates() for common shared usage
davejiang Mar 8, 2024
c6c99b4
cxl: Split out host bridge access coordinates
davejiang Mar 8, 2024
62ffe43
cxl: Move QoS class to be calculated from the nearest CPU
davejiang Mar 8, 2024
6146c8f
cxl: Set cxlmd->endpoint before adding port device
davejiang Mar 8, 2024
0d5aa3c
cxl/region: Calculate performance data for a region
davejiang Mar 8, 2024
89503e2
cxl/region: Add sysfs attribute for locality attributes of CXL regions
davejiang Mar 8, 2024
0415865
cxl/region: Add memory hotplug notifier for cxl region
davejiang Mar 8, 2024
ebe186d
cxl/region: Deal with numa nodes not enumerated by SRAT
davejiang Mar 8, 2024
5fd85d0
EINJ: Migrate to a platform driver
benhartcheatham Mar 11, 2024
aadd869
EINJ: Add CXL error type support
benhartcheatham Mar 11, 2024
2c9a72c
EINJ, Documentation: Update EINJ kernel doc
benhartcheatham Mar 11, 2024
8db32af
cxl/core: Add CXL EINJ debugfs files
benhartcheatham Mar 11, 2024
ed9f4b4
cxl: Fix the incorrect assignment of SSLBIS entry pointer initial loc…
davejiang Mar 1, 2024
47a1353
cxl/pci: Rename DOE mailbox handle to doe_mb
Feb 16, 2024
61e22fc
cxl/pci: Get rid of pointer arithmetic reading CDAT table
Feb 16, 2024
9cc1a45
lib/firmware_table: Provide buffer length argument to cdat_table_parse()
Feb 17, 2024
10d217d
Documentation/ABI/testing/debugfs-cxl: Fix "Unexpected indentation"
djbw Mar 15, 2024
4727ef4
ACPI: APEI: EINJ: mark remove callback as non-__exit
arndb Mar 20, 2024
8cbed48
cxl: Remove checking of iter in cxl_endpoint_get_perf_coordinates()
davejiang Apr 3, 2024
69da9a3
cxl: Fix retrieving of access_coordinates in PCIe path
davejiang Apr 3, 2024
40871a8
cxl: Fix incorrect region perf data calculation
davejiang Apr 3, 2024
7503407
cxl: Consolidate dport access_coordinate ->hb_coord and ->sw_coord in…
davejiang Apr 3, 2024
3e5f046
cxl: Add checks to access_coordinate calculation to fail missing data
davejiang Apr 3, 2024
77bb49a
cxl: Fix cxl_endpoint_get_perf_coordinate() support for RCH
davejiang Apr 26, 2024
41c359d
ACPI: APEI: EINJ: Fix einj_dev release leak
djbw May 21, 2024
293015d
cxl/region: Fix a race condition in memory hotplug notifier
yhuang-intel Jun 18, 2024
d305888
cxl/pci: Get AER capability address from RCRB only for RCH dport
ming4li Aug 9, 2024
580b7a7
cxl/test: Skip cxl_setup_parent_dport() for emulated dports
ming4li Aug 9, 2024
e24093e
EINJ, CXL: Fix CXL device SBDF calculation
benhartcheatham Sep 27, 2024
fc77bee
drivers/base/node: Add a helper function node_update_perf_attrs()
davejiang Aug 29, 2025
b22ba69
cxl, acpi/hmat: Update CXL access coordinates directly instead of thr…
davejiang Aug 29, 2025
fe616b1
cxl/core: Fix cxl_dport debugfs EINJ entries
benhartcheatham Jan 9, 2026
9f0bdde
timers: Split out timer_types.h
Dec 11, 2023
7085bef
workqueue: Split out workqueue_types.h
Dec 11, 2023
2dd4edc
MAINTAINERS: repair file entry in COMPUTE EXPRESS LINK
Apr 11, 2024
986848c
cxl/region: Move cxl_trace_hpa() work to the region driver
AlisonSchofield Apr 30, 2024
afa4eaf
cxl/core: Add region info to cxl_general_media and cxl_dram events
AlisonSchofield Apr 30, 2024
fc4e9e6
cxl/acpi: Cleanup __cxl_parse_cfmws()
djbw Apr 5, 2024
4df66b4
acpi/ghes: Process CXL Component Events
weiny2 Apr 27, 2024
0529b9e
cxl/pci: Process CPER events
weiny2 Apr 27, 2024
5745ba3
cxl/cper: Fix non-ACPI-APEI-GHES build
weiny2 May 1, 2024
ea98f9b
cxl/cper: Remove duplicated GUID defines
weiny2 May 2, 2024
11b46b9
cxl/core: Fold cxl_trace_hpa() into cxl_dpa_to_hpa()
AlisonSchofield Jul 3, 2024
d17bc7b
cxl: Restore XOR'd position bits during address translation
AlisonSchofield Jul 3, 2024
6091f33
cxl: Remove defunct code calculating host bridge target positions
AlisonSchofield Jul 3, 2024
e5aa562
cxl: move cxl headers to new include/cxl/ directory
davejiang Sep 5, 2024
d517abb
cleanup: Add usage and style documentation
djbw Mar 29, 2024
9143d72
efi/cper, cxl: Prefix protocol error struct and function names with cxl_
skoralah Jan 23, 2025
3ec8961
efi/cper, cxl: Make definitions and structures global
skoralah Jan 23, 2025
d5d37a3
efi/cper, cxl: Remove cper_cxl.h
skoralah Jan 23, 2025
e1ce095
acpi/ghes, cper: Recognize and cache CXL Protocol errors
skoralah Jan 23, 2025
53f4da7
acpi/ghes, cxl/pci: Process CXL CPER Protocol Errors
skoralah Mar 10, 2025
e20e6cf
cxl/pci: Add trace logging for CXL PCIe Port RAS errors
skoralah Mar 10, 2025
b630c75
cxl/ras: Fix CPER handler device confusion
djbw Jun 12, 2025
a7f502a
cxl: Move hpa_to_spa callback to a new root decoder ops structure
AlisonSchofield Aug 4, 2025
1895405
cxl: Define a SPA->CXL HPA root decoder callback for XOR Math
AlisonSchofield Aug 4, 2025
b1fcb8b
cxl/region: Introduce SPA to DPA address translation
AlisonSchofield Aug 4, 2025
7c1b5a3
cxl: Fix CXL_HEADERLOG_SIZE to match RAS Capability size
ktbowman Jun 5, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 34 additions & 0 deletions Documentation/ABI/testing/debugfs-cxl
Original file line number Diff line number Diff line change
Expand Up @@ -33,3 +33,37 @@ Description:
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.
98 changes: 98 additions & 0 deletions Documentation/ABI/testing/sysfs-bus-cxl
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,23 @@ Description:
Payload in the CXL-2.0 specification.


What: /sys/bus/cxl/devices/memX/ram/qos_class
Date: May, 2023
KernelVersion: v6.8
Contact: linux-cxl@vger.kernel.org
Description:
(RO) For CXL host platforms that support "QoS Telemmetry"
this attribute conveys a comma delimited list of platform
specific cookies that identifies a QoS performance class
for the volatile partition of the CXL mem device. These
class-ids can be compared against a similar "qos_class"
published for a root decoder. While it is not required
that the endpoints map their local memory-class to a
matching platform class, mismatches are not recommended
and there are platform specific performance related
side-effects that may result. First class-id is displayed.


What: /sys/bus/cxl/devices/memX/pmem/size
Date: December, 2020
KernelVersion: v5.12
Expand All @@ -38,6 +55,23 @@ Description:
Payload in the CXL-2.0 specification.


What: /sys/bus/cxl/devices/memX/pmem/qos_class
Date: May, 2023
KernelVersion: v6.8
Contact: linux-cxl@vger.kernel.org
Description:
(RO) For CXL host platforms that support "QoS Telemmetry"
this attribute conveys a comma delimited list of platform
specific cookies that identifies a QoS performance class
for the persistent partition of the CXL mem device. These
class-ids can be compared against a similar "qos_class"
published for a root decoder. While it is not required
that the endpoints map their local memory-class to a
matching platform class, mismatches are not recommended
and there are platform specific performance related
side-effects that may result. First class-id is displayed.


What: /sys/bus/cxl/devices/memX/serial
Date: January, 2022
KernelVersion: v5.18
Expand Down Expand Up @@ -178,6 +212,21 @@ Description:
hardware decoder target list.


What: /sys/bus/cxl/devices/portX/decoders_committed
Date: October, 2023
KernelVersion: v6.7
Contact: linux-cxl@vger.kernel.org
Description:
(RO) A memory device is considered active when any of its
decoders are in the "committed" state (See CXL 3.0 8.2.4.19.7
CXL HDM Decoder n Control Register). Hotplug and destructive
operations like "sanitize" are blocked while device is actively
decoding a Host Physical Address range. Note that this number
may be elevated without any regionX objects active or even
enumerated, as this may be due to decoders established by
platform firwmare or a previous kernel (kexec).


What: /sys/bus/cxl/devices/decoderX.Y
Date: June, 2021
KernelVersion: v5.14
Expand Down Expand Up @@ -369,6 +418,21 @@ Description:
provided it is currently idle / not bound to a driver.


What: /sys/bus/cxl/devices/decoderX.Y/qos_class
Date: May, 2023
KernelVersion: v6.5
Contact: linux-cxl@vger.kernel.org
Description:
(RO) For CXL host platforms that support "QoS Telemmetry" this
root-decoder-only attribute conveys a platform specific cookie
that identifies a QoS performance class for the CXL Window.
This class-id can be compared against a similar "qos_class"
published for each memory-type that an endpoint supports. While
it is not required that endpoints map their local memory-class
to a matching platform class, mismatches are not recommended and
there are platform specific side-effects that may result.


What: /sys/bus/cxl/devices/regionZ/uuid
Date: May, 2022
KernelVersion: v6.0
Expand Down Expand Up @@ -488,3 +552,37 @@ Description:
attribute is only visible for devices supporting the
capability. The retrieved errors are logged as kernel
events when cxl_poison event tracing is enabled.


What: /sys/bus/cxl/devices/regionZ/accessY/read_bandwidth
/sys/bus/cxl/devices/regionZ/accessY/write_banwidth
Date: Jan, 2024
KernelVersion: v6.9
Contact: linux-cxl@vger.kernel.org
Description:
(RO) The aggregated read or write bandwidth of the region. The
number is the accumulated read or write bandwidth of all CXL memory
devices that contributes to the region in MB/s. It is
identical data that should appear in
/sys/devices/system/node/nodeX/accessY/initiators/read_bandwidth or
/sys/devices/system/node/nodeX/accessY/initiators/write_bandwidth.
See Documentation/ABI/stable/sysfs-devices-node. access0 provides
the number to the closest initiator and access1 provides the
number to the closest CPU.


What: /sys/bus/cxl/devices/regionZ/accessY/read_latency
/sys/bus/cxl/devices/regionZ/accessY/write_latency
Date: Jan, 2024
KernelVersion: v6.9
Contact: linux-cxl@vger.kernel.org
Description:
(RO) The read or write latency of the region. The number is
the worst read or write latency of all CXL memory devices that
contributes to the region in nanoseconds. It is identical data
that should appear in
/sys/devices/system/node/nodeX/accessY/initiators/read_latency or
/sys/devices/system/node/nodeX/accessY/initiators/write_latency.
See Documentation/ABI/stable/sysfs-devices-node. access0 provides
the number to the closest initiator and access1 provides the
number to the closest CPU.
8 changes: 8 additions & 0 deletions Documentation/core-api/cleanup.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
.. SPDX-License-Identifier: GPL-2.0

===========================
Scope-based Cleanup Helpers
===========================

.. kernel-doc:: include/linux/cleanup.h
:doc: scope-based cleanup helpers
1 change: 1 addition & 0 deletions Documentation/core-api/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ Library functionality that is used throughout the kernel.

kobject
kref
cleanup
assoc_array
xarray
maple_tree
Expand Down
34 changes: 34 additions & 0 deletions Documentation/firmware-guide/acpi/apei/einj.rst
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,10 @@ configuration::
CONFIG_ACPI_APEI
CONFIG_ACPI_APEI_EINJ

...and to (optionally) enable CXL protocol error injection set::

CONFIG_ACPI_APEI_EINJ_CXL

The EINJ user interface is in <debugfs mount point>/apei/einj.

The following files belong to it:
Expand Down Expand Up @@ -118,6 +122,24 @@ The following files belong to it:
this actually works depends on what operations the BIOS actually
includes in the trigger phase.

CXL error types are supported from ACPI 6.5 onwards (given a CXL port
is present). The EINJ user interface for CXL error types is at
<debugfs mount point>/cxl. The following files belong to it:

- einj_types:

Provides the same functionality as available_error_types above, but
for CXL error types

- $dport_dev/einj_inject:

Injects a CXL error type into the CXL port represented by $dport_dev,
where $dport_dev is the name of the CXL port (usually a PCIe device name).
Error injections targeting a CXL 2.0+ port can use the legacy interface
under <debugfs mount point>/apei/einj, while CXL 1.1/1.0 port injections
must use this file.


BIOS versions based on the ACPI 4.0 specification have limited options
in controlling where the errors are injected. Your BIOS may support an
extension (enabled with the param_extension=1 module parameter, or boot
Expand Down Expand Up @@ -181,6 +203,18 @@ You should see something like this in dmesg::
[22715.834759] EDAC sbridge MC3: PROCESSOR 0:306e7 TIME 1422553404 SOCKET 0 APIC 0
[22716.616173] EDAC MC3: 1 CE memory read error on CPU_SrcID#0_Channel#0_DIMM#0 (channel:0 slot:0 page:0x12345 offset:0x0 grain:32 syndrome:0x0 - area:DRAM err_code:0001:0090 socket:0 channel_mask:1 rank:0)

A CXL error injection example with $dport_dev=0000:e0:01.1::

# cd /sys/kernel/debug/cxl/
# ls
0000:e0:01.1 0000:0c:00.0
# cat einj_types # See which errors can be injected
0x00008000 CXL.mem Protocol Correctable
0x00010000 CXL.mem Protocol Uncorrectable non-fatal
0x00020000 CXL.mem Protocol Uncorrectable fatal
# cd 0000:e0:01.1 # Navigate to dport to inject into
# echo 0x8000 > einj_inject # Inject error

Special notes for injection into SGX enclaves:

There may be a separate BIOS setup option to enable SGX injection.
Expand Down
4 changes: 4 additions & 0 deletions MAINTAINERS
Original file line number Diff line number Diff line change
Expand Up @@ -294,6 +294,8 @@ F: drivers/pnp/pnpacpi/
F: include/acpi/
F: include/linux/acpi.h
F: include/linux/fwnode.h
F: include/linux/fw_table.h
F: lib/fw_table.c
F: tools/power/acpi/

ACPI APEI
Expand Down Expand Up @@ -5222,7 +5224,9 @@ M: Dan Williams <dan.j.williams@intel.com>
L: linux-cxl@vger.kernel.org
S: Maintained
F: drivers/cxl/
F: include/cxl/
F: include/uapi/linux/cxl_mem.h
F: tools/testing/cxl/

COMPUTE EXPRESS LINK PMU (CPMU)
M: Jonathan Cameron <jonathan.cameron@huawei.com>
Expand Down
1 change: 1 addition & 0 deletions drivers/acpi/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ menuconfig ACPI
select PNP
select NLS
select CRC32
select FIRMWARE_TABLE
default y if X86
help
Advanced Configuration and Power Interface (ACPI) support for
Expand Down
13 changes: 13 additions & 0 deletions drivers/acpi/apei/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,19 @@ config ACPI_APEI_EINJ
mainly used for debugging and testing the other parts of
APEI and some other RAS features.

config ACPI_APEI_EINJ_CXL
bool "CXL Error INJection Support"
default ACPI_APEI_EINJ
depends on ACPI_APEI_EINJ
depends on CXL_BUS && CXL_BUS <= ACPI_APEI_EINJ
help
Support for CXL protocol Error INJection through debugfs/cxl.
Availability and which errors are supported is dependent on
the host platform. Look to ACPI v6.5 section 18.6.4 and kernel
EINJ documentation for more information.

If unsure say 'n'

config ACPI_APEI_ERST_DEBUG
tristate "APEI Error Record Serialization Table (ERST) Debug Support"
depends on ACPI_APEI
Expand Down
2 changes: 2 additions & 0 deletions drivers/acpi/apei/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@
obj-$(CONFIG_ACPI_APEI) += apei.o
obj-$(CONFIG_ACPI_APEI_GHES) += ghes.o
obj-$(CONFIG_ACPI_APEI_EINJ) += einj.o
einj-y := einj-core.o
einj-$(CONFIG_ACPI_APEI_EINJ_CXL) += einj-cxl.o
obj-$(CONFIG_ACPI_APEI_ERST_DEBUG) += erst-dbg.o

apei-y := apei-base.o hest.o erst.o bert.o
18 changes: 18 additions & 0 deletions drivers/acpi/apei/apei-internal.h
Original file line number Diff line number Diff line change
Expand Up @@ -130,4 +130,22 @@ static inline u32 cper_estatus_len(struct acpi_hest_generic_status *estatus)
}

int apei_osc_setup(void);

int einj_get_available_error_type(u32 *type);
int einj_error_inject(u32 type, u32 flags, u64 param1, u64 param2, u64 param3,
u64 param4);
int einj_cxl_rch_error_inject(u32 type, u32 flags, u64 param1, u64 param2,
u64 param3, u64 param4);
bool einj_is_cxl_error_type(u64 type);
int einj_validate_error_type(u64 type);

#ifndef ACPI_EINJ_CXL_CACHE_CORRECTABLE
#define ACPI_EINJ_CXL_CACHE_CORRECTABLE BIT(12)
#define ACPI_EINJ_CXL_CACHE_UNCORRECTABLE BIT(13)
#define ACPI_EINJ_CXL_CACHE_FATAL BIT(14)
#define ACPI_EINJ_CXL_MEM_CORRECTABLE BIT(15)
#define ACPI_EINJ_CXL_MEM_UNCORRECTABLE BIT(16)
#define ACPI_EINJ_CXL_MEM_FATAL BIT(17)
#endif

#endif
Loading