forked from Minki/linux
c3e6088e10
EINJ parameter support is only usable for some specific BIOS. Originally, it is expected to have no harm for BIOS does not support it. But now, we found it will cause issue (memory overwriting) for some BIOS. So param support is disabled by default and only enabled when newly added module parameter named "param_extension" is explicitly specified. Signed-off-by: Huang Ying <ying.huang@intel.com> Cc: Matthew Garrett <mjg@redhat.com> Acked-by: Don Zickus <dzickus@redhat.com> Acked-by: Tony Luck <tony.luck@intel.com> Signed-off-by: Len Brown <len.brown@intel.com>
67 lines
2.4 KiB
Plaintext
67 lines
2.4 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. Only available if param_extension module
|
|
parameter is specified.
|
|
|
|
- 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. Only available if param_extension
|
|
module parameter is specified.
|
|
|
|
Injecting parameter support is a BIOS version specific extension, that
|
|
is, it only works on some BIOS version. If you want to use it, please
|
|
make sure your BIOS version has the proper support and specify
|
|
"param_extension=y" in module parameter.
|
|
|
|
For more information about EINJ, please refer to ACPI specification
|
|
version 4.0, section 17.5.
|