aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation/acpi
diff options
context:
space:
mode:
authorLuck, Tony <tony.luck@intel.com>2013-11-06 16:30:36 -0500
committerTony Luck <tony.luck@intel.com>2013-12-17 19:04:22 -0500
commit3482fb5e0c1c20ce0dbcfc5ca3b6558a8c455b10 (patch)
tree7df05124c756cd05b66419a7ba741b934903fedc /Documentation/acpi
parent319e2e3f63c348a9b66db4667efa73178e18b17d (diff)
ACPI, APEI, EINJ: Changes to the ACPI/APEI/EINJ debugfs interface
When I added support for ACPI5 I made the assumption that injected processor errors would just need to know the APICID, memory errors just the address and mask, and PCIe errors just the segment/bus/device/function. So I had the code check the type of injection and multiplex the "param1" value appropriately. This was not a good assumption :-( There are injection scenarios where we need to specify more than one of these items. E.g. injecting a cache error we need to specify an APICID of the cpu that owns the cache, and also an address (so that we can trip the error by accessing the address). Add a "flags" file to give the user direct access to specify which items are valid in the ACPI SET_ERROR_TYPE_WITH_ADDRESS structure. Also add new files param3 and param4 to hold all these values. For backwards compatability with old injection scripts we maintain the old behaviour if flags remains set at zero (or is reset to 0). Acked-by: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com> Signed-off-by: Tony Luck <tony.luck@intel.com>
Diffstat (limited to 'Documentation/acpi')
-rw-r--r--Documentation/acpi/apei/einj.txt19
1 files changed, 18 insertions, 1 deletions
diff --git a/Documentation/acpi/apei/einj.txt b/Documentation/acpi/apei/einj.txt
index a58b63da1a36..f51861bcb07b 100644
--- a/Documentation/acpi/apei/einj.txt
+++ b/Documentation/acpi/apei/einj.txt
@@ -45,11 +45,22 @@ directory apei/einj. The following files are provided.
45 injection. Before this, please specify all necessary error 45 injection. Before this, please specify all necessary error
46 parameters. 46 parameters.
47 47
48- flags
49 Present for kernel version 3.13 and above. Used to specify which
50 of param{1..4} are valid and should be used by BIOS during injection.
51 Value is a bitmask as specified in ACPI5.0 spec for the
52 SET_ERROR_TYPE_WITH_ADDRESS data structure:
53 Bit 0 - Processor APIC field valid (see param3 below)
54 Bit 1 - Memory address and mask valid (param1 and param2)
55 Bit 2 - PCIe (seg,bus,dev,fn) valid (param4 below)
56 If set to zero, legacy behaviour is used where the type of injection
57 specifies just one bit set, and param1 is multiplexed.
58
48- param1 59- param1
49 This file is used to set the first error parameter value. Effect of 60 This file is used to set the first error parameter value. Effect of
50 parameter depends on error_type specified. For example, if error 61 parameter depends on error_type specified. For example, if error
51 type is memory related type, the param1 should be a valid physical 62 type is memory related type, the param1 should be a valid physical
52 memory address. 63 memory address. [Unless "flag" is set - see above]
53 64
54- param2 65- param2
55 This file is used to set the second error parameter value. Effect of 66 This file is used to set the second error parameter value. Effect of
@@ -58,6 +69,12 @@ directory apei/einj. The following files are provided.
58 address mask. Linux requires page or narrower granularity, say, 69 address mask. Linux requires page or narrower granularity, say,
59 0xfffffffffffff000. 70 0xfffffffffffff000.
60 71
72- param3
73 Used when the 0x1 bit is set in "flag" to specify the APIC id
74
75- param4
76 Used when the 0x4 bit is set in "flag" to specify target PCIe device
77
61- notrigger 78- notrigger
62 The EINJ mechanism is a two step process. First inject the error, then 79 The EINJ mechanism is a two step process. First inject the error, then
63 perform some actions to trigger it. Setting "notrigger" to 1 skips the 80 perform some actions to trigger it. Setting "notrigger" to 1 skips the