14 Dec, 2010
1 commit
-
In APEI, Hardware error information reported by firmware to Linux
kernel is in the data structure of APEI generic error status (struct
acpi_hes_generic_status). While now printk is used by Linux kernel to
report hardware error information to user space.So, this patch adds printing support for the data structure, so that
the corresponding hardware error information can be reported to user
space via printk.PCIe AER information printing is not implemented yet. Will refactor the
original PCIe AER information printing code to avoid code duplicating.The output format is as follow:
:=
APEI generic hardware error status
severity: ,
section: , severity: ,
flags:fru_id:
fru_text:
section_type:* := recoverable | fatal | corrected | info
# :=
[primary][, containment warning][, reset][, threshold exceeded]\
[, resource not accessible][, latent error]:= generic processor error | memory error | \
PCIe error | unknown,:=
| | \
|:=
[processor_type: , ]
[processor_isa: , ]
[error_type:
]
[operation: , ]
[flags:
]
[level: ]
[version_info: ]
[processor_id: ]
[target_address: ]
[requestor_id: ]
[responder_id: ]
[IP: ]* := IA32/X64 | IA64
* := IA32 | IA64 | X64
# :=
[cache error][, TLB error][, bus error][, micro-architectural error]* := unknown or generic | data read | data write | \
instruction execution# :=
[restartable][, precise IP][, overflow][, corrected]:=
[error_status: ]
[physical_address: ]
[physical_address_mask: ]
[node: ]
[card: ]
[module: ]
[bank: ]
[device: ]
[row: ]
[column: ]
[bit_position: ]
[requestor_id: ]
[responder_id: ]
[target_id: ]
[error_type: , ]* :=
unknown | no error | single-bit ECC | multi-bit ECC | \
single-symbol chipkill ECC | multi-symbol chipkill ECC | master abort | \
target abort | parity error | watchdog timeout | invalid address | \
mirror Broken | memory sparing | scrub corrected error | \
scrub uncorrected error:=
[port_type: , ]
[version: .]
[command: , status: ]
[device_id: ::.
slot:
secondary_bus:
vendor_id: , device_id:
class_code: ]
[serial number: , ]
[bridge: secondary_status: , control: ]* := PCIe end point | legacy PCI end point | \
unknown | unknown | root port | upstream switch port | \
downstream switch port | PCIe to PCI/PCI-X bridge | \
PCI/PCI-X to PCIe bridge | root complex integrated endpoint device | \
root complex event collectorWhere, [] designate corresponding content is optional
All description with * has the following format:
field: ,
Where value of should be the position of "string" in description. Otherwise, will be "unknown".
All description with # has the following format:
field:
Where each string in corresponding to one set bit of
. The bit position is the position of "string" in description.For more detailed explanation of every field, please refer to UEFI
specification version 2.3 or later, section Appendix N: Common
Platform Error Record.Signed-off-by: Huang Ying
Signed-off-by: Len Brown
15 Aug, 2010
1 commit
-
Introduce module parameter acpi.aml_debug_output.
With acpi.aml_debug_output set, we can get AML debug object output
(Store (AAA, Debug)), even with CONFIG_ACPI_DEBUG cleared.Together with the runtime custom method mechanism,
we can debug AML code problems without rebuilding the kernel.Signed-off-by: Zhang Rui
Signed-off-by: Len Brown
20 May, 2010
2 commits
-
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
Signed-off-by: Andi Kleen
Signed-off-by: Len Brown -
Add document for APEI, including kernel parameters and EINJ debug file
sytem interface.Signed-off-by: Huang Ying
Signed-off-by: Andi Kleen
Signed-off-by: Len Brown
11 Dec, 2009
1 commit
-
Introduce a new debugfs I/F (/sys/kernel/debug/acpi/custom_method) for ACPI,
which can be used to customize the ACPI control methods at runtime.We can use this to debug the AML code level bugs instead of overriding the
whole DSDT table, without rebuilding/rebooting kernel any more.Detailed description about how to use this debugfs I/F is stated in
Documentation/acpi/method-customizing.txtSigned-off-by: Zhang Rui
Signed-off-by: Len Brown
08 Nov, 2008
1 commit
-
Reformat acpi.debug_layer and acpi.debug_level documentation so it's
more readable, add some clues about how to figure out the mask bits that
enable a specific ACPI_DEBUG_PRINT statement, and include some useful
examples.Move the list of masks to Documentation/acpi/debug.txt (these are
copies of the authoritative values in acoutput.h and acpi_drivers.h).Signed-off-by: Bjorn Helgaas
Signed-off-by: Len Brown
16 Mar, 2008
1 commit
-
This essentially reverts commit 71fc47a9adf8ee89e5c96a47222915c5485ac437
("ACPI: basic initramfs DSDT override support"), because the code simply
isn't ready.It did ugly things to the init sequence to populate the rootfs image
early, but that just ended up showing other problems with the whole
approach. The fact is, the VFS layer simply isn't initialized this
early, and the relevant ACPI code should either run much later, or this
shouldn't be done at all.For 2.6.25, we'll just pick the latter option. We can revisit this
concept later if necessary.Cc: Dave Hansen
Cc: Tilman Schmidt
Cc: Andrew Morton
Cc: Thomas Renninger
Cc: Eric Piel
Cc: Len Brown
Cc: Christoph Hellwig
Cc: Markus Gaugusch
Signed-off-by: Linus Torvalds
07 Feb, 2008
3 commits
-
Signed-off-by: Len Brown
-
The basics of DSDT from initramfs. In case this option is selected,
populate_rootfs() is called a bit earlier to have the initramfs content
available during ACPI initialization.This is a very similar path to the one available at
http://gaugusch.at/kernel.shtml but with some update in the
documentation, default set to No and the change of populate_rootfs() the
"Jeff Mahony way" (which avoids reading the initramfs twice).Signed-off-by: Thomas Renninger
Signed-off-by: Eric Piel
Signed-off-by: Len Brown
20 Nov, 2007
1 commit
-
Signed-off-by: Len Brown