| APEI Error INJection |
| ~~~~~~~~~~~~~~~~~~~~ |
| |
| EINJ provides a hardware error injection mechanism |
| It is very useful for debugging and testing of other APEI and RAS features. |
| |
| To use EINJ, make sure the following are enabled in your kernel |
| configuration: |
| |
| CONFIG_DEBUG_FS |
| CONFIG_ACPI_APEI |
| CONFIG_ACPI_APEI_EINJ |
| |
| The user interface of EINJ is debug file system, under the |
| directory apei/einj. The following files are provided. |
| |
| - available_error_type |
| Reading this file returns the error injection capability of the |
| platform, that is, which error types are supported. The error type |
| definition is as follow, the left field is the error type value, the |
| right field is error description. |
| |
| 0x00000001 Processor Correctable |
| 0x00000002 Processor Uncorrectable non-fatal |
| 0x00000004 Processor Uncorrectable fatal |
| 0x00000008 Memory Correctable |
| 0x00000010 Memory Uncorrectable non-fatal |
| 0x00000020 Memory Uncorrectable fatal |
| 0x00000040 PCI Express Correctable |
| 0x00000080 PCI Express Uncorrectable fatal |
| 0x00000100 PCI Express Uncorrectable non-fatal |
| 0x00000200 Platform Correctable |
| 0x00000400 Platform Uncorrectable non-fatal |
| 0x00000800 Platform Uncorrectable fatal |
| |
| The format of file contents are as above, except there are only the |
| available error type lines. |
| |
| - error_type |
| This file is used to set the error type value. The error type value |
| is defined in "available_error_type" description. |
| |
| - error_inject |
| Write any integer to this file to trigger the error |
| injection. Before this, please specify all necessary error |
| parameters. |
| |
| - param1 |
| This file is used to set the first error parameter value. Effect of |
| parameter depends on error_type specified. For memory error, this is |
| physical memory address. |
| |
| - param2 |
| This file is used to set the second error parameter value. Effect of |
| parameter depends on error_type specified. For memory error, this is |
| physical memory address mask. |
| |
| For more information about EINJ, please refer to ACPI specification |
| version 4.0, section 17.5. |