|
@@ -121,7 +121,7 @@ accomplished.
|
|
|
|
|
|
EEH must be enabled in the PHB's very early during the boot process,
|
|
EEH must be enabled in the PHB's very early during the boot process,
|
|
and if a PCI slot is hot-plugged. The former is performed by
|
|
and if a PCI slot is hot-plugged. The former is performed by
|
|
-eeh_init() in arch/ppc64/kernel/eeh.c, and the later by
|
|
|
|
|
|
+eeh_init() in arch/powerpc/platforms/pseries/eeh.c, and the later by
|
|
drivers/pci/hotplug/pSeries_pci.c calling in to the eeh.c code.
|
|
drivers/pci/hotplug/pSeries_pci.c calling in to the eeh.c code.
|
|
EEH must be enabled before a PCI scan of the device can proceed.
|
|
EEH must be enabled before a PCI scan of the device can proceed.
|
|
Current Power5 hardware will not work unless EEH is enabled;
|
|
Current Power5 hardware will not work unless EEH is enabled;
|
|
@@ -133,7 +133,7 @@ error. Given an arbitrary address, the routine
|
|
pci_get_device_by_addr() will find the pci device associated
|
|
pci_get_device_by_addr() will find the pci device associated
|
|
with that address (if any).
|
|
with that address (if any).
|
|
|
|
|
|
-The default include/asm-ppc64/io.h macros readb(), inb(), insb(),
|
|
|
|
|
|
+The default include/asm-powerpc/io.h macros readb(), inb(), insb(),
|
|
etc. include a check to see if the i/o read returned all-0xff's.
|
|
etc. include a check to see if the i/o read returned all-0xff's.
|
|
If so, these make a call to eeh_dn_check_failure(), which in turn
|
|
If so, these make a call to eeh_dn_check_failure(), which in turn
|
|
asks the firmware if the all-ff's value is the sign of a true EEH
|
|
asks the firmware if the all-ff's value is the sign of a true EEH
|
|
@@ -143,11 +143,12 @@ seen in /proc/ppc64/eeh (subject to change). Normally, almost
|
|
all of these occur during boot, when the PCI bus is scanned, where
|
|
all of these occur during boot, when the PCI bus is scanned, where
|
|
a large number of 0xff reads are part of the bus scan procedure.
|
|
a large number of 0xff reads are part of the bus scan procedure.
|
|
|
|
|
|
-If a frozen slot is detected, code in arch/ppc64/kernel/eeh.c will
|
|
|
|
-print a stack trace to syslog (/var/log/messages). This stack trace
|
|
|
|
-has proven to be very useful to device-driver authors for finding
|
|
|
|
-out at what point the EEH error was detected, as the error itself
|
|
|
|
-usually occurs slightly beforehand.
|
|
|
|
|
|
+If a frozen slot is detected, code in
|
|
|
|
+arch/powerpc/platforms/pseries/eeh.c will print a stack trace to
|
|
|
|
+syslog (/var/log/messages). This stack trace has proven to be very
|
|
|
|
+useful to device-driver authors for finding out at what point the EEH
|
|
|
|
+error was detected, as the error itself usually occurs slightly
|
|
|
|
+beforehand.
|
|
|
|
|
|
Next, it uses the Linux kernel notifier chain/work queue mechanism to
|
|
Next, it uses the Linux kernel notifier chain/work queue mechanism to
|
|
allow any interested parties to find out about the failure. Device
|
|
allow any interested parties to find out about the failure. Device
|