Commit c465def6 authored by Huang Ying's avatar Huang Ying Committed by Jesse Barnes

PCI AER: software error injection

Debugging PCIE AER code can be very difficult because it is hard
to trigger various real hardware errors. This patch provide a
software based error injection tool, which can fake various PCIE
errors with a user space helper tool named "aer-inject". Which
can be gotten from:

  http://www.kernel.org/pub/linux/kernel/people/yhuang/

The patch fakes AER error by faking some PCIE AER related
registers and an AER interrupt for specified the PCIE device.
Signed-off-by: default avatarHuang Ying <ying.huang@intel.com>
Signed-off-by: default avatarJesse Barnes <jbarnes@virtuousgeek.org>
parent 3d5505c5
...@@ -267,7 +267,7 @@ After reboot with new kernel or insert the module, a device file named ...@@ -267,7 +267,7 @@ After reboot with new kernel or insert the module, a device file named
Then, you need a user space tool named aer-inject, which can be gotten Then, you need a user space tool named aer-inject, which can be gotten
from: from:
http://www.kernel.org/pub/linux/kernel/people/yhuang/ http://www.kernel.org/pub/linux/utils/pci/aer-inject/
More information about aer-inject can be found in the document comes More information about aer-inject can be found in the document comes
with its source code. with its source code.
...@@ -23,3 +23,5 @@ config PCIE_ECRC ...@@ -23,3 +23,5 @@ config PCIE_ECRC
(transaction layer end-to-end CRC checking). (transaction layer end-to-end CRC checking).
When in doubt, say N. When in doubt, say N.
source "drivers/pci/pcie/aer/Kconfig.debug"
#
# PCI Express Root Port Device AER Debug Configuration
#
config PCIEAER_INJECT
tristate "PCIE AER error injector support"
depends on PCIEAER
default n
help
This enables PCI Express Root Port Advanced Error Reporting
(AER) software error injector.
Debuging PCIE AER code is quite difficult because it is hard
to trigger various real hardware errors. Software based
error injection can fake almost all kinds of errors with the
help of a user space helper tool aer-inject, which can be
gotten from:
http://www.kernel.org/pub/linux/utils/pci/aer-inject/
...@@ -9,3 +9,4 @@ obj-$(CONFIG_PCIE_ECRC) += ecrc.o ...@@ -9,3 +9,4 @@ obj-$(CONFIG_PCIE_ECRC) += ecrc.o
aerdriver-objs := aerdrv_errprint.o aerdrv_core.o aerdrv.o aerdriver-objs := aerdrv_errprint.o aerdrv_core.o aerdrv.o
aerdriver-$(CONFIG_ACPI) += aerdrv_acpi.o aerdriver-$(CONFIG_ACPI) += aerdrv_acpi.o
obj-$(CONFIG_PCIEAER_INJECT) += aer_inject.o
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment