linux_dsm_epyc7002/arch/powerpc/include/asm
Stewart Smith 774fea1a38 powerpc/powernv: Read OPAL error log and export it through sysfs
Based on a patch by: Mahesh Salgaonkar <mahesh@linux.vnet.ibm.com>

This patch adds support to read error logs from OPAL and export
them to userspace through a sysfs interface.

We export each log entry as a directory in /sys/firmware/opal/elog/

Currently, OPAL will buffer up to 128 error log records, we don't
need to have any knowledge of this limit on the Linux side as that
is actually largely transparent to us.

Each error log entry has the following files: id, type, acknowledge, raw.
Currently we just export the raw binary error log in the 'raw' attribute.
In a future patch, we may parse more of the error log to make it a bit
easier for userspace (e.g. to be able to display a brief summary in
petitboot without having to have a full parser).

If we have >128 logs from OPAL, we'll only be notified of 128 until
userspace starts acknowledging them. This limitation may be lifted in
the future and with this patch, that should "just work" from the linux side.

A userspace daemon should:
- wait for error log entries using normal mechanisms (we announce creation)
- read error log entry
- save error log entry safely to disk
- acknowledge the error log entry
- rinse, repeat.

On the Linux side, we read the error log when we're notified of it. This
possibly isn't ideal as it would be better to only read them on-demand.
However, this doesn't really work with current OPAL interface, so we
read the error log immediately when notified at the moment.

I've tested this pretty extensively and am rather confident that the
linux side of things works rather well. There is currently an issue with
the service processor side of things for >128 error logs though.

Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
2014-03-07 16:19:00 +11:00
..
8xx_immap.h
agp.h
archrandom.h
asm-compat.h
asm-offsets.h
async_tx.h
atomic.h
backlight.h
barrier.h arch: Introduce smp_load_acquire(), smp_store_release() 2014-01-12 10:37:17 +01:00
bitops.h powerpc/book3s: Flush SLB/TLBs if we get SLB/TLB machine check errors on power7. 2013-12-05 16:04:39 +11:00
bootx.h
btext.h
bug.h
bugs.h
cache.h powerpc: purge all the prefetched instructions for the coherent icache flush 2013-12-02 14:13:47 +11:00
cacheflush.h
cell-pmu.h
cell-regs.h
checksum.h
cmpxchg.h powerpc: Add support for the optimised lockref implementation 2014-01-28 14:45:43 +11:00
code-patching.h powerpc: Move the patch_exception to a common place 2013-12-02 14:06:54 +11:00
compat.h powerpc: Increase stack redzone for 64-bit userspace to 512 bytes 2014-02-28 18:06:26 +11:00
context_tracking.h
cpm1.h
cpm2.h
cpm.h
cputable.h powerpc/book3s: Add flush_tlb operation in cpu_spec. 2013-12-05 16:04:38 +11:00
cputhreads.h
cputime.h
current.h
dbdma.h
dbell.h
dcr-generic.h
dcr-mmio.h
dcr-native.h
dcr-regs.h
dcr.h
debug.h
delay.h
device.h
disassemble.h
div64.h
dma-mapping.h powerpc/powernv: Add iommu DMA bypass support for IODA2 2014-02-11 16:07:37 +11:00
dma.h
edac.h
eeh_event.h
eeh.h powerpc/eeh: Cleanup on eeh_subsystem_enabled 2014-02-17 11:19:39 +11:00
ehv_pic.h
elf.h powerpc: Set eflags correctly for ELF ABIv2 core dumps. 2013-11-21 09:19:18 +11:00
emergency-restart.h
emulated_ops.h
epapr_hcalls.h kvm/powerpc: move kvm_hypercall0() and friends to epapr_hypercall0() 2014-01-09 10:14:57 +01:00
exception-64e.h
exception-64s.h Merge branch 'merge' into next 2013-12-30 15:19:31 +11:00
exec.h
fadump.h
fb.h
feature-fixups.h
firmware.h
fixmap.h powerpc: use generic fixmap.h 2014-01-23 16:36:54 -08:00
floppy.h
fs_pd.h
fsl_85xx_cache_sram.h
fsl_gtm.h
fsl_guts.h
fsl_hcalls.h
fsl_ifc.h
fsl_lbc.h powerpc/85xx: handle the eLBC error interrupt if it exists in dts 2014-01-10 17:19:27 -06:00
fsl_pamu_stash.h
ftrace.h
futex.h
gpio.h
grackle.h
hardirq.h powerpc: Make irq_stat.timers_irqs counting more specific 2013-12-02 14:14:50 +11:00
heathrow.h
highmem.h
hugetlb.h powerpc/mm: Add new "set" flag argument to pte/pmd update function 2014-02-17 11:19:35 +11:00
hvcall.h pseries: Add H_SET_MODE to change exception endianness 2013-11-21 09:19:16 +11:00
hvconsole.h
hvcserver.h
hvsi.h
hw_breakpoint.h
hw_irq.h
hydra.h
i8259.h
ibmebus.h
ide.h
immap_cpm2.h
immap_qe.h
io_event_irq.h
io-defs.h
io-workarounds.h
io.h powerpc: Add real mode cache inhibited IO accessors 2013-12-05 16:08:21 +11:00
iommu.h powerpc/powernv: Add iommu DMA bypass support for IODA2 2014-02-11 16:07:37 +11:00
ipic.h
irq_regs.h
irq.h
irqflags.h
jump_label.h
Kbuild lib: Add missing arch generic-y entries for asm-generic/hash.h 2013-12-17 21:26:19 -05:00
kdebug.h
kdump.h
kexec.h
keylargo.h
kgdb.h
kmap_types.h
kprobes.h
kvm_44x.h
kvm_asm.h Second batch of KVM updates. Some minor x86 fixes, 2014-01-31 08:37:32 -08:00
kvm_book3s_32.h
kvm_book3s_64.h
kvm_book3s_asm.h Merge branch 'kvm-ppc-next' of git://github.com/agraf/linux-2.6 into kvm-queue 2014-01-29 18:29:01 +01:00
kvm_book3s.h Merge branch 'kvm-ppc-next' of git://github.com/agraf/linux-2.6 into kvm-queue 2014-01-29 18:29:01 +01:00
kvm_booke_hv_asm.h
kvm_booke.h KVM: PPC: Book3S: MMIO emulation support for little endian guests 2014-01-27 16:00:39 +01:00
kvm_fpu.h
kvm_host.h KVM: PPC: Book3S HV: Add new state for transactional memory 2014-01-27 16:01:20 +01:00
kvm_para.h kvm/powerpc: move kvm_hypercall0() and friends to epapr_hypercall0() 2014-01-09 10:14:57 +01:00
kvm_ppc.h kvm/ppc: IRQ disabling cleanup 2014-01-27 16:00:55 +01:00
libata-portmap.h
linkage.h
local64.h
local.h
lppaca.h powerpc: Make slb_shadow a local 2013-12-09 11:40:25 +11:00
lv1call.h
machdep.h powerpc/pseries: Use remove_memory() to remove memory 2014-03-07 15:53:13 +11:00
macio.h
mc146818rtc.h
mce.h powerpc/book3s: Recover from MC in sapphire on SCOM read via MMIO. 2014-03-07 15:52:10 +11:00
mediabay.h
mman.h
mmu_context.h
mmu-8xx.h
mmu-40x.h
mmu-44x.h
mmu-book3e.h powerpc/e6500: TLB miss handler with hardware tablewalk support 2014-01-09 17:52:19 -06:00
mmu-hash32.h
mmu-hash64.h
mmu.h powerpc/e6500: TLB miss handler with hardware tablewalk support 2014-01-09 17:52:19 -06:00
mmzone.h
module.h
mpc5xxx.h
mpc6xx.h
mpc8xx.h
mpc52xx_psc.h
mpc52xx.h
mpc85xx.h
mpc5121.h powerpc/512x: clk: support MPC5121/5123/5125 SoC variants 2014-01-12 18:59:36 +01:00
mpc8260.h
mpic_msgr.h
mpic_timer.h
mpic.h
msi_bitmap.h
mutex.h
nvram.h
ohare.h
opal.h powerpc/powernv: Read OPAL error log and export it through sysfs 2014-03-07 16:19:00 +11:00
oprofile_impl.h
paca.h Merge remote-tracking branch 'scott/next' into next 2014-01-15 14:22:35 +11:00
page_32.h
page_64.h
page.h
parport.h
pasemi_dma.h
pci-bridge.h
pci.h
percpu.h
perf_event_fsl_emb.h
perf_event_server.h
perf_event.h
pgalloc-32.h powerpc: Fix PTE page address mismatch in pgtable ctor/dtor 2013-12-10 11:25:05 +11:00
pgalloc-64.h powerpc: Fix PTE page address mismatch in pgtable ctor/dtor 2013-12-10 11:25:05 +11:00
pgalloc.h
pgtable-ppc32.h
pgtable-ppc64-4k.h
pgtable-ppc64-64k.h
pgtable-ppc64.h powerpc/mm: Add new "set" flag argument to pte/pmd update function 2014-02-17 11:19:35 +11:00
pgtable.h mm: Use ptep/pmdp_set_numa() for updating _PAGE_NUMA bit 2014-02-17 11:19:36 +11:00
plpar_wrappers.h pseries: Add H_SET_MODE to change exception endianness 2013-11-21 09:19:16 +11:00
pmac_feature.h
pmac_low_i2c.h
pmac_pfunc.h
pmc.h
pmi.h
ppc4xx_ocm.h
ppc4xx.h
ppc_asm.h Merge remote-tracking branch 'scott/next' into next 2014-01-15 14:22:35 +11:00
ppc-opcode.h
ppc-pci.h
probes.h
processor.h powerpc/pseries/cpuidle: smt-snooze-delay cleanup. 2014-01-29 17:02:24 +11:00
prom.h
ps3.h powerpc: Delete non-required instances of include <linux/init.h> 2014-01-15 13:46:44 +11:00
ps3av.h
ps3gpu.h
ps3stor.h
pte-8xx.h
pte-40x.h
pte-44x.h
pte-book3e.h
pte-common.h
pte-fsl-booke.h
pte-hash32.h
pte-hash64-4k.h
pte-hash64-64k.h
pte-hash64.h powerpc/mm: Enable _PAGE_NUMA for book3s 2013-12-09 11:40:30 +11:00
ptrace.h powerpc: Increase stack redzone for 64-bit userspace to 512 bytes 2014-02-28 18:06:26 +11:00
qe_ic.h
qe.h
reg_8xx.h
reg_a2.h
reg_booke.h powerpc/fsl: add E6500 PVR and SPRN_PWRMGTCR0 define 2014-01-07 19:29:23 -06:00
reg_fsl_emb.h
reg.h Second batch of KVM updates. Some minor x86 fixes, 2014-01-31 08:37:32 -08:00
rheap.h
rio.h
rtas.h powerpc/pseries: Update dynamic cache nodes for suspend/resume operation 2014-03-07 15:54:49 +11:00
rtc.h
runlatch.h
scatterlist.h
scom.h
sections.h powerpc: Fix kdump hang issue on p8 with relocation on exception enabled. 2014-02-11 11:24:47 +11:00
serial.h
setjmp.h
setup.h powerpc: Clean up panic_timeout usage 2013-11-26 12:12:28 +01:00
sfp-machine.h
shmparam.h
signal.h
smp.h powerpc: Make cpu_to_chip_id() available when SMP=n 2013-11-21 10:33:44 +11:00
smu.h
sparsemem.h
spinlock_types.h
spinlock.h Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc 2014-01-27 21:11:26 -08:00
spu_csa.h
spu_info.h
spu_priv1.h
spu.h
sstep.h
string.h
swab.h
swiotlb.h
switch_to.h Merge branch 'kvm-ppc-next' of git://github.com/agraf/linux-2.6 into kvm-queue 2014-01-29 18:29:01 +01:00
synch.h
syscall.h
syscalls.h
systbl.h powerpc: Wire up sched_setattr and sched_getattr syscalls 2014-01-29 17:13:05 +11:00
tce.h
termios.h
thread_info.h powerpc: Don't corrupt transactional state when using FP/VMX in kernel 2014-01-15 13:59:11 +11:00
time.h
timex.h powerpc/8xx: mfspr SPRN_TBRx in lieu of mftb/mftbu is not supported 2013-11-22 16:56:48 -06:00
tlb.h
tlbflush.h
tm.h powerpc: Don't corrupt transactional state when using FP/VMX in kernel 2014-01-15 13:59:11 +11:00
topology.h powerpc: Fix the setup of CPU-to-Node mappings during CPU online 2014-01-15 13:58:37 +11:00
trace.h
tsi108_irq.h
tsi108_pci.h
tsi108.h
types.h
uaccess.h
ucc_fast.h
ucc_slow.h
ucc.h
udbg.h
uic.h
unaligned.h powerpc: Make unaligned accesses endian-safe for powerpc 2013-12-30 14:02:29 +11:00
uninorth.h
unistd.h powerpc: Wire up sched_setattr and sched_getattr syscalls 2014-01-29 17:13:05 +11:00
uprobes.h uprobes/powerpc: Kill arch_uprobe->ainsn 2013-11-20 16:31:01 +01:00
user.h
vdso_datapage.h
vdso.h powerpc: Link VDSOs at 0x0 2014-02-17 11:19:37 +11:00
vga.h
vio.h powerpc: Delete non-required instances of include <linux/init.h> 2014-01-15 13:46:44 +11:00
word-at-a-time.h
wsp.h
xics.h
xilinx_intc.h
xilinx_pci.h
xmon.h
xor.h