Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
116 commits
Select commit Hold shift + click to select a range
45b5447
cxl/port: Quiet warning messages from the cxl_test environment
djbw Sep 15, 2023
316091e
cxl/pci: Update comment
weiny2 May 17, 2023
9fa0fe8
ACPICA: Add defines for CDAT SSLBIS
davejiang Oct 1, 2023
d410197
cxl/pci: Remove hardirq handler for cxl_request_irq()
djbw Oct 4, 2023
067eeca
tools/testing/cxl: Make cxl_memdev_state available to other command e…
djbw Oct 4, 2023
b8e6acc
tools/testing/cxl: Add 'sanitize notifier' support
djbw Oct 4, 2023
aba074f
cxl/mbox: Remove useless cast in cxl_mem_create_range_info()
AlisonSchofield Aug 15, 2023
b37aebf
MAINTAINERS: Add tools/testing/cxl files to CXL
stellarhopper Oct 26, 2023
c27aa19
tools/testing/cxl: Slow down the mock firmware transfer
stellarhopper Oct 26, 2023
5f25917
cxl/port: Rename @comp_map to @reg_map in struct cxl_register_map
Oct 18, 2023
43beee6
cxl/port: Pre-initialize component register mappings
Oct 18, 2023
3c5f037
cxl/pci: Store the endpoint's Component Register mappings in struct c…
Oct 18, 2023
c0d713f
cxl/hdm: Use stored Component Register mappings to map HDM decoder ca…
Oct 18, 2023
84460e3
cxl/pci: Remove Component Register base address from struct cxl_dev_s…
Oct 18, 2023
a5c8bce
cxl/port: Remove Component Register base address from struct cxl_port
Oct 18, 2023
f819945
cxl/pci: Add RCH downstream port AER register discovery
Oct 27, 2023
8cbc9ef
PCI/AER: Refactor cper_print_aer() for use by CXL driver module
ktbowman Oct 18, 2023
7744170
cxl/pci: Update CXL error logging to use RAS register address
ktbowman Oct 18, 2023
2ccdedc
cxl/pci: Map RCH downstream AER registers for logging protocol errors
ktbowman Oct 18, 2023
f09653a
cxl/pci: Add RCH downstream port error logging
ktbowman Oct 18, 2023
bffdb57
cxl/pci: Disable root port interrupts in RCH mode
ktbowman Oct 18, 2023
c73586d
PCI/AER: Forward RCH downstream port-detected errors to the CXL.mem d…
Oct 18, 2023
0022b0c
PCI/AER: Unmask RCEC internal errors to enable RCH downstream port er…
Oct 18, 2023
36940b8
cxl/core/regs: Rename phys_addr in cxl_map_component_regs()
Oct 18, 2023
faf796f
cxl/core/regs: Rework cxl_map_pmu_regs() to use map->dev for devm
Oct 18, 2023
643eb19
cxl: Add decoders_committed sysfs attribute to cxl_port
davejiang Oct 16, 2023
a67c51b
cxl: Export QTG ids from CFMWS to sysfs as qos_class attribute
davejiang Oct 12, 2023
616fcfd
cxl: Add checksum verification to CDAT from CXL
davejiang Oct 12, 2023
f7c431c
cxl: Add support for reading CXL switch CDAT table
davejiang Oct 12, 2023
983eeef
acpi: Move common tables helper functions to common lib
davejiang Oct 12, 2023
5bd12b1
ACPI: Add helper acpi_use_parent_companion
hkallweit Oct 15, 2023
b477f5c
cxl/hdm: Fix && vs || bug
Oct 31, 2023
7bdc5ce
cxl/pci: Change CXL AER support check to use native AER
ktbowman Nov 2, 2023
a9eb755
lib/fw_table: Remove acpi_parse_entries_array() export
djbw Nov 2, 2023
c353303
ACPI: Fix ARM32 platforms compile issue introduced by fw_table changes
davejiang Nov 22, 2023
959046e
cxl: Add Support for Get Timestamp
Aug 29, 2023
96ec99c
cxl/cdat: Free correct buffer on checksum error
weiny2 Nov 17, 2023
b36106e
cxl: Fix unregister_region() callback parameter assignment
davejiang Dec 14, 2023
7cd5b4a
lib/firmware_table: tables: Add CDAT table parsing support
davejiang Dec 21, 2023
78e753f
acpi: numa: Add helper function to retrieve the performance attributes
davejiang Dec 21, 2023
816b19a
cxl: Add callback to parse the DSMAS subtables from CDAT
davejiang Dec 21, 2023
c64ce64
cxl: Add callback to parse the DSLBIS subtable from CDAT
davejiang Dec 21, 2023
4eb68f3
cxl: Add callback to parse the SSLBIS subtable from CDAT
davejiang Dec 21, 2023
096e091
cxl: Add support for _DSM Function for retrieving QTG ID
davejiang Dec 21, 2023
45bf2cf
cxl: Calculate and store PCI link latency for the downstream ports
davejiang Dec 21, 2023
aa780f3
tools/testing/cxl: Add hostbridge UID string for cxl_test mock hb dev…
davejiang Dec 21, 2023
ed52e98
cxl: Store the access coordinates for the generic ports
davejiang Dec 21, 2023
cf21a95
cxl: Add helper function that calculate performance data for downstre…
davejiang Dec 21, 2023
960a593
cxl: Compute the entire CXL path latency and bandwidth data
davejiang Dec 21, 2023
57e093e
cxl: Store QTG IDs and related info to the CXL memory device context
davejiang Dec 21, 2023
59bd9e4
cxl: Export sysfs attributes for memory device QoS class
davejiang Dec 21, 2023
2284629
cxl: Check qos_class validity on memdev probe
davejiang Dec 21, 2023
a834d89
cxl/region: Add dev_dbg() detail on failure to allocate HPA space
AlisonSchofield Dec 23, 2023
d854492
cxl/region: use %pap format to print resource_size_t
rddunlap Jan 2, 2024
bde60b6
cxl/trace: Pass UUID explicitly to event traces
weiny2 Dec 21, 2023
495c9ff
cxl: Introduce put_cxl_root() helper
davejiang Jan 5, 2024
cb01c3f
cxl: Convert find_cxl_root() to return a 'struct cxl_root *'
davejiang Jan 5, 2024
b81b180
cxl: Fix device reference leak in cxl_port_perf_data_calculate()
davejiang Jan 5, 2024
1d541f6
cxl: Refactor to use __free() for cxl_root allocation in cxl_find_nvd…
davejiang Jan 5, 2024
8bd2c4a
cxl: Refactor to use __free() for cxl_root allocation in cxl_endpoint…
davejiang Jan 5, 2024
62d0721
cxl/events: Promote CXL event structures to a core header
weiny2 Dec 21, 2023
7e48ca0
cxl/events: Create common event UUID defines
weiny2 Dec 21, 2023
6e96b98
cxl/events: Remove passing a UUID to known event traces
weiny2 Dec 21, 2023
cf3295b
cxl/events: Separate UUID from event structures
weiny2 Dec 21, 2023
c0692bd
cxl/events: Create a CXL event union
weiny2 Dec 21, 2023
9fc4ee4
acpi/ghes: Process CXL Component Events
weiny2 Dec 21, 2023
acb24e7
cxl/pci: Register for and process CPER events
weiny2 Dec 21, 2023
d740d0e
cxl/core: use sysfs_emit() for attr's _show()
irides Jan 12, 2024
a771a17
tools/testing/cxl: Disable "missing prototypes / declarations" warnings
djbw Jan 16, 2024
0b7138a
tools/testing/nvdimm: Disable "missing prototypes / declarations" war…
djbw Jan 16, 2024
d9f89c9
cxl/pci: Skip irq features if MSI/MSI-X are not supported
weiny2 Jan 18, 2024
0422bd3
cxl/pci: Skip to handle RAS errors if CXL.mem device is detached
ming4li Jan 29, 2024
c147bf2
cxl/cper: Fix errant CPER prints for CXL events
weiny2 Jan 31, 2024
ed25811
cxl: Change 'struct cxl_memdev_state' *_perf_list to single 'struct c…
davejiang Feb 6, 2024
6b779e4
cxl: Remove unnecessary type cast in cxl_qos_class_verify()
davejiang Feb 6, 2024
b5b57a9
cxl: Fix sysfs export of qos_class for memdev
davejiang Feb 6, 2024
b9e7fdf
cxl/test: Add support for qos_class checking
davejiang Feb 6, 2024
0a3a6f4
acpi/ghes: Remove CXL CPER notifications
djbw Feb 18, 2024
79d4850
ACPI: HMAT: Introduce 2 levels of generic port access class
davejiang Mar 8, 2024
d73d3c0
ACPI: HMAT / cxl: Add retrieval of generic port coordinates for both …
davejiang Mar 8, 2024
5a74b6f
cxl: Split out combine_coordinates() for common shared usage
davejiang Mar 8, 2024
2b2f9c4
cxl: Split out host bridge access coordinates
davejiang Mar 8, 2024
5970e8d
cxl: Move QoS class to be calculated from the nearest CPU
davejiang Mar 8, 2024
2eaeb90
cxl: Set cxlmd->endpoint before adding port device
davejiang Mar 8, 2024
9b61b4d
cxl/region: Calculate performance data for a region
davejiang Mar 8, 2024
8c3e776
cxl/region: Add sysfs attribute for locality attributes of CXL regions
davejiang Mar 8, 2024
7096968
cxl/region: Add memory hotplug notifier for cxl region
davejiang Mar 8, 2024
8cf8ea3
cxl/region: Deal with numa nodes not enumerated by SRAT
davejiang Mar 8, 2024
cc3ef8b
EINJ: Migrate to a platform driver
benhartcheatham Mar 11, 2024
6c78507
EINJ: Add CXL error type support
benhartcheatham Mar 11, 2024
2ee41d5
EINJ, Documentation: Update EINJ kernel doc
benhartcheatham Mar 11, 2024
39406b3
cxl/core: Add CXL EINJ debugfs files
benhartcheatham Mar 11, 2024
90db00a
cxl: Fix the incorrect assignment of SSLBIS entry pointer initial loc…
davejiang Mar 1, 2024
98b507a
cxl/pci: Rename DOE mailbox handle to doe_mb
Feb 16, 2024
9f83ad0
cxl/pci: Get rid of pointer arithmetic reading CDAT table
Feb 16, 2024
323b584
lib/firmware_table: Provide buffer length argument to cdat_table_parse()
Feb 17, 2024
35d27a9
Documentation/ABI/testing/debugfs-cxl: Fix "Unexpected indentation"
djbw Mar 15, 2024
07ec480
ACPI: APEI: EINJ: mark remove callback as non-__exit
arndb Mar 20, 2024
023ba26
cxl: Remove checking of iter in cxl_endpoint_get_perf_coordinates()
davejiang Apr 3, 2024
d27a0d2
cxl: Fix retrieving of access_coordinates in PCIe path
davejiang Apr 3, 2024
88fe7de
cxl: Fix incorrect region perf data calculation
davejiang Apr 3, 2024
d813e60
cxl: Consolidate dport access_coordinate ->hb_coord and ->sw_coord in…
davejiang Apr 3, 2024
0a7b277
cxl: Add checks to access_coordinate calculation to fail missing data
davejiang Apr 3, 2024
43265dc
cxl: Fix cxl_endpoint_get_perf_coordinate() support for RCH
davejiang Apr 26, 2024
5ec2b3a
ACPI: APEI: EINJ: Fix einj_dev release leak
djbw May 21, 2024
e29cf47
cxl/region: Fix a race condition in memory hotplug notifier
yhuang-intel Jun 18, 2024
70da8dc
cxl/pci: Get AER capability address from RCRB only for RCH dport
ming4li Aug 9, 2024
a43fad0
cxl/test: Skip cxl_setup_parent_dport() for emulated dports
ming4li Aug 9, 2024
ba19b83
EINJ, CXL: Fix CXL device SBDF calculation
benhartcheatham Sep 27, 2024
9f90c3b
drivers/base/node: Add a helper function node_update_perf_attrs()
davejiang Aug 29, 2025
ac0df97
cxl, acpi/hmat: Update CXL access coordinates directly instead of thr…
davejiang Aug 29, 2025
fe3b6b8
cxl/core: Fix cxl_dport debugfs EINJ entries
benhartcheatham Jan 9, 2026
cee9cce
acpi/ghes: Process CXL Component Events
weiny2 Apr 27, 2024
62233d3
cxl/pci: Process CPER events
weiny2 Apr 27, 2024
4b9c9ea
cxl/cper: Fix non-ACPI-APEI-GHES build
weiny2 May 1, 2024
f5d291a
cxl/cper: Remove duplicated GUID defines
weiny2 May 2, 2024
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.
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
5 changes: 5 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,10 @@ M: Dan Williams <dan.j.williams@intel.com>
L: linux-cxl@vger.kernel.org
S: Maintained
F: drivers/cxl/
F: include/linux/cxl-einj.h
F: include/linux/cxl-event.h
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