linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v1 0/22] EEH support for PowerNV platform
@ 2013-03-01 14:16 Gavin Shan
  2013-03-01 14:16 ` [PATCH 01/22] powerpc/eeh: Enhance converting EEH dev Gavin Shan
                   ` (21 more replies)
  0 siblings, 22 replies; 24+ messages in thread
From: Gavin Shan @ 2013-03-01 14:16 UTC (permalink / raw)
  To: linuxppc-dev; +Cc: Gavin Shan

Initially, the series of patches is built based on 3.8+

The series of patches intends to support EEH for PowerNV platform. The EEH
core already supports multiple probe methods: device tree nodes and PCI
devices. For EEH on PowerNV, we're using PCI devices to do EEH probe, which
is different from the probe type used on pSeries platform. Another point I
should mention is that the overall EEH would be split up to 3 layers: EEH
core, platform layer and I/O chip layer. It would make the EEH on PowerNV
platform can achieve more flexibility and support more I/O chips in future.
Besides, the EEH event can be produced by detecting 0xFF's from reading
PCI config or I/O registers, or from interrupts dedicated for EEH error
reporting. So we have to handle the EEH error interrupts. On the other hand,
the EEH events will be processed by EEH core like pSeries platform does.

We don't have existing utility (e.g. errinjct) to test the patchset. In order
to conduct the test, you need copy over the eeh-debug.c to PowerNV platform
directory and change the makefile accordingly. Please contact me to get the
eeh-debug.c if you want run the test case. After that, you need write P7IOC
registers explicitly to trigger frozen PE or fenced PHB explicitly as the
following example shows. The patchset has been verified on Firebird-L machine
where I have 2 Emulex ethernet card on PHB#6. I keep pinging to one of the
ethernet cards from external and then use following commands to produce frozen
PE or fenced PHB errors. Eventually, the errors can be recovered and the ethernet
card is reachable after temporary connection lost.

Trigger frozen PE:

	echo "0xD10 0x0000000002000000" > /proc/IODA/PHB6/REG
	sleep 1
	echo "0xD10 0x0000000000000000" > /proc/IODA/PHB6/REG

Trigger fenced PHB:

	echo "0xD10 0x8000000000000000" > /proc/IODA/PHB6/REG

---

arch/powerpc/include/asm/eeh.h                 |   29 ++-
arch/powerpc/include/asm/eeh_event.h           |    6 +-
arch/powerpc/include/asm/opal.h                |  110 +++++-
arch/powerpc/kernel/rtas_pci.c                 |    3 +-
arch/powerpc/platforms/powernv/Makefile        |    1 +
arch/powerpc/platforms/powernv/eeh-ioda.c      |  516 ++++++++++++++++++++++++
arch/powerpc/platforms/powernv/eeh-powernv.c   |  373 +++++++++++++++++
arch/powerpc/platforms/powernv/opal-wrappers.S |    2 +
arch/powerpc/platforms/powernv/opal.c          |    6 +
arch/powerpc/platforms/powernv/pci-err.c       |  474 ++++++++++++++++++++++
arch/powerpc/platforms/powernv/pci-ioda.c      |   13 +-
arch/powerpc/platforms/powernv/pci-p5ioc2.c    |    6 +-
arch/powerpc/platforms/powernv/pci.c           |   42 ++-
arch/powerpc/platforms/powernv/pci.h           |   22 +-
arch/powerpc/platforms/pseries/eeh.c           |   61 +++-
arch/powerpc/platforms/pseries/eeh_dev.c       |   35 ++
arch/powerpc/platforms/pseries/eeh_event.c     |   12 +-
arch/powerpc/platforms/pseries/eeh_pe.c        |   31 ++-
18 files changed, 1697 insertions(+), 45 deletions(-)
create mode 100644 arch/powerpc/platforms/powernv/eeh-ioda.c
create mode 100644 arch/powerpc/platforms/powernv/eeh-powernv.c
create mode 100644 arch/powerpc/platforms/powernv/pci-err.c

Thanks,
Gavin

^ permalink raw reply	[flat|nested] 24+ messages in thread
* [PATCH v1 00/22] powerpc/eeh: Enhance converting EEH dev
@ 2013-05-15  3:34 Gavin Shan
  2013-05-15  3:34 ` [PATCH 01/22] " Gavin Shan
  0 siblings, 1 reply; 24+ messages in thread
From: Gavin Shan @ 2013-05-15  3:34 UTC (permalink / raw)
  To: linuxppc-dev; +Cc: Gavin Shan

Initially, the series of patches is built based on 3.10.RC1 and the patchset
doesn't intend to enable EEH functionality for PHB3 for now.

The series of patches intends to support EEH for PowerNV platform. The EEH
core already supports multiple probe methods: device tree nodes and PCI
devices. For EEH on PowerNV, we're using PCI devices to do EEH probe, which
is different from the probe type used on pSeries platform. Another point I
should mention is that the overall EEH would be split up to 3 layers: EEH
core, platform layer and I/O chip layer. It would make the EEH on PowerNV
platform can achieve more flexibility and support more I/O chips in future.
Besides, the EEH event can be produced by detecting 0xFF's from reading
PCI config or I/O registers, or from interrupts dedicated for EEH error
reporting. So we have to handle the EEH error interrupts. On the other hand,
the EEH events will be processed by EEH core like pSeries platform does.

We don't have existing utility (e.g. errinjct) to test the patchset. In order
to conduct the test, you need copy over the eeh-debug.c to PowerNV platform
directory and change the makefile accordingly. Please contact me to get the
eeh-debug.c if you want run the test case. After that, you need write P7IOC
registers explicitly to trigger frozen PE or fenced PHB explicitly as the
following example shows. The patchset has been verified on Firebird-L machine
where I have 2 Emulex ethernet card on PHB#6. I keep pinging to one of the
ethernet cards from external and then use following commands to produce frozen
PE or fenced PHB errors. Eventually, the errors can be recovered and the ethernet
card is reachable after temporary connection lost.

Trigger frozen PE:

        echo "0xD10 0x0000000002000000" > /proc/IODA/PHB6/REG
        sleep 1
        echo "0xD10 0x0000000000000000" > /proc/IODA/PHB6/REG

Trigger fenced PHB:

        echo "0xD10 0x8000000000000000" > /proc/IODA/PHB6/REG

---

arch/powerpc/include/asm/eeh.h                 |   29 ++-
arch/powerpc/include/asm/eeh_event.h           |    6 +-
arch/powerpc/include/asm/opal.h                |  110 ++++-
arch/powerpc/kernel/rtas_pci.c                 |    3 +-
arch/powerpc/platforms/powernv/Makefile        |    1 +
arch/powerpc/platforms/powernv/eeh-ioda.c      |  519 ++++++++++++++++++++++++
arch/powerpc/platforms/powernv/eeh-powernv.c   |  380 +++++++++++++++++
arch/powerpc/platforms/powernv/opal-wrappers.S |    2 +
arch/powerpc/platforms/powernv/opal.c          |    6 +
arch/powerpc/platforms/powernv/pci-err.c       |  475 ++++++++++++++++++++++
arch/powerpc/platforms/powernv/pci-ioda.c      |   17 +-
arch/powerpc/platforms/powernv/pci-p5ioc2.c    |    6 +-
arch/powerpc/platforms/powernv/pci.c           |   41 ++-
arch/powerpc/platforms/powernv/pci.h           |   22 +
arch/powerpc/platforms/pseries/eeh.c           |   61 +++-
arch/powerpc/platforms/pseries/eeh_dev.c       |   35 ++
arch/powerpc/platforms/pseries/eeh_event.c     |   12 +-
arch/powerpc/platforms/pseries/eeh_pe.c        |   31 ++-
18 files changed, 1712 insertions(+), 44 deletions(-)

Thanks,
Gavin

^ permalink raw reply	[flat|nested] 24+ messages in thread

end of thread, other threads:[~2013-05-15  3:35 UTC | newest]

Thread overview: 24+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-03-01 14:16 [PATCH v1 0/22] EEH support for PowerNV platform Gavin Shan
2013-03-01 14:16 ` [PATCH 01/22] powerpc/eeh: Enhance converting EEH dev Gavin Shan
2013-03-01 14:17 ` [PATCH 02/22] powerpc/eeh: Function to tranverse PCI devices Gavin Shan
2013-03-01 14:17 ` [PATCH 03/22] powerpc/eeh: Make eeh_phb_pe_get public Gavin Shan
2013-03-01 14:17 ` [PATCH 04/22] powerpc/eeh: Make eeh_pe_get public Gavin Shan
2013-03-01 14:17 ` [PATCH 05/22] powerpc/eeh: Trace PCI bus from PE Gavin Shan
2013-03-01 14:17 ` [PATCH 06/22] powerpc/eeh: Make eeh_init public Gavin Shan
2013-03-01 14:17 ` [PATCH 07/22] powerpc/eeh: EEH post initialization operation Gavin Shan
2013-03-01 14:17 ` [PATCH 08/22] powerpc/eeh: Refactor eeh_reset_pe_once() Gavin Shan
2013-03-01 14:17 ` [PATCH 09/22] powerpc/eeh: Delay EEH probe during hotplug Gavin Shan
2013-03-01 14:17 ` [PATCH 10/22] powerpc/eeh: Differentiate EEH event Gavin Shan
2013-03-01 14:17 ` [PATCH 11/22] powerpc/eeh: Sync OPAL API with firmware Gavin Shan
2013-03-01 14:17 ` [PATCH 12/22] powerpc/eeh: EEH backend for P7IOC Gavin Shan
2013-03-01 14:17 ` [PATCH 13/22] powerpc/eeh: I/O chip post initialization Gavin Shan
2013-03-01 14:17 ` [PATCH 14/22] powerpc/eeh: I/O chip EEH enable option Gavin Shan
2013-03-01 14:17 ` [PATCH 15/22] powerpc/eeh: I/O chip EEH state retrieval Gavin Shan
2013-03-01 14:17 ` [PATCH 16/22] powerpc/eeh: I/O chip PE reset Gavin Shan
2013-03-01 14:17 ` [PATCH 17/22] powerpc/eeh: I/O chip PE log and bridge setup Gavin Shan
2013-03-01 14:17 ` [PATCH 18/22] powerpc/eeh: PowerNV EEH backends Gavin Shan
2013-03-01 14:17 ` [PATCH 19/22] powerpc/eeh: Initialization for PowerNV Gavin Shan
2013-03-01 14:17 ` [PATCH 20/22] powerpc/eeh: Enable EEH check for config access Gavin Shan
2013-03-01 14:17 ` [PATCH 21/22] powerpc/eeh: Process interrupts caused by EEH Gavin Shan
2013-03-01 14:17 ` [PATCH 22/22] powerpc/eeh: Connect EEH error interrupt handle Gavin Shan
  -- strict thread matches above, loose matches on Subject: below --
2013-05-15  3:34 [PATCH v1 00/22] powerpc/eeh: Enhance converting EEH dev Gavin Shan
2013-05-15  3:34 ` [PATCH 01/22] " Gavin Shan

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).