6e320ec1d9
Some hardware error injection needs parameters, for example, it is useful to specify memory address and memory address mask for memory errors. Some BIOSes allow parameters to be specified via an unpublished extension. This patch adds support to it. The parameters will be ignored on machines without necessary BIOS support. Signed-off-by: Huang Ying <ying.huang@intel.com> Signed-off-by: Andi Kleen <ak@linux.intel.com> Signed-off-by: Len Brown <len.brown@intel.com>
60 lines
2.0 KiB
Plaintext
60 lines
2.0 KiB
Plaintext
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.
|