The goal of this update is to allow the driver to simultaneously support EINJ and EINJv2. The implementation follows the approved ACPI specs[1][2] that enables the driver to discover system capabilities through GET_ERROR_TYPE. Note: The first two ACPICA patches are to be dropped once merged in ACPICA project, see pull request[3]. Link: https://github.com/tianocore/edk2/issues/9449 [1] Link: https://github.com/tianocore/edk2/issues/9017 [2] Link: https://github.com/acpica/acpica/pull/977 [3] V5: *Users no longer input component array size, instead it is counted by parsing the component array itself. V6: *Fix memory leak. *If EINJv2 initialization failed, EINJv1 will still work, and probe function will continue with disabled EINJv2. V7: *Update component array to take 128-bit values to match ACPI specs. *Enable Vendor EINJv2 injections *Moved component array parsing and validating to a separate function to improve readability. Zaid Alali (9): ACPICA: Update values to hex to follow ACPI specs ACPICA: Add EINJv2 get error type action ACPI: APEI: EINJ: Fix kernel test sparse warnings ACPI: APEI: EINJ: Remove redundant calls to einj_get_available_error_type ACPI: APEI: EINJ: Enable the discovery of EINJv2 capabilities ACPI: APEI: EINJ: Add einjv2 extension struct ACPI: APEI: EINJ: Add debugfs files for EINJv2 support ACPI: APEI: EINJ: Enable EINJv2 error injections ACPI: APEI: EINJ: Update the documentation for EINJv2 support .../firmware-guide/acpi/apei/einj.rst | 32 ++ drivers/acpi/apei/apei-internal.h | 2 +- drivers/acpi/apei/einj-core.c | 410 ++++++++++++++---- drivers/acpi/apei/einj-cxl.c | 2 +- include/acpi/actbl1.h | 25 +- 5 files changed, 379 insertions(+), 92 deletions(-) -- 2.43.0