linux/arch/powerpc
Oliver O'Halloran 7990102446 powerpc/timer: Large Decrementer support
Power ISAv3 adds a large decrementer (LD) mode which increases the size
of the decrementer register. The size of the enlarged decrementer
register is between 32 and 64 bits with the exact size being dependent
on the implementation. When in LD mode, reads are sign extended to 64
bits and a decrementer exception is raised when the high bit is set (i.e
the value goes below zero). Writes however are truncated to the physical
register width so some care needs to be taken to ensure that the high
bit is not set when reloading the decrementer. This patch adds support
for using the LD inside the host kernel on processors that support it.

When LD mode is supported firmware will supply the ibm,dec-bits property
for CPU nodes to allow the kernel to determine the maximum decrementer
value. Enabling LD mode is a hypervisor privileged operation so the kernel
can only enable it manually when running in hypervisor mode. Guests that
support LD mode can request it using the "ibm,client-architecture-support"
firmware call (not implemented in this patch) or some other platform
specific method. If this property is not supplied then the traditional
decrementer width of 32 bit is assumed and LD mode will not be enabled.

This patch was based on initial work by Jack Miller.

Signed-off-by: Oliver O'Halloran <oohall@gmail.com>
Signed-off-by: Balbir Singh <bsingharora@gmail.com>
Acked-by: Michael Neuling <mikey@neuling.org>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
2016-07-05 23:58:53 +10:00
..
boot Merge branch 'for-4.7-dw' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata 2016-05-23 18:19:21 -07:00
configs powerpc/powernv: Add driver for operator panel on FSP machines 2016-06-29 17:33:46 +10:00
crypto powerpc: Various typo fixes 2016-06-14 13:58:26 +10:00
include powerpc/timer: Large Decrementer support 2016-07-05 23:58:53 +10:00
kernel powerpc/timer: Large Decrementer support 2016-07-05 23:58:53 +10:00
kvm powerpc: Define and use PPC64_ELF_ABI_v2/v1 2016-06-14 13:58:27 +10:00
lib powerpc: Introduce asm-prototypes.h 2016-06-16 22:39:54 +10:00
math-emu
mm powerpc/mm: Ensure "special" zones are empty 2016-06-16 16:03:21 +10:00
net powerpc/ebpf/jit: Implement JIT compiler for extended BPF 2016-06-24 15:17:57 +10:00
oprofile powerpc: Various typo fixes 2016-06-14 13:58:26 +10:00
perf powerpc/perf: Export Power9 generic and cache events to sysfs 2016-07-05 23:49:48 +10:00
platforms powerpc/pseries: Fix error return value in cmm_mem_going_offline() 2016-07-05 23:58:52 +10:00
scripts powerpc/ftrace: Add Kconfig & Make glue for mprofile-kernel 2016-03-07 14:53:56 +11:00
sysdev DAX error handling for 4.7 2016-05-26 19:34:26 -07:00
xmon powerpc/xmon: Fix SPR read/write commands and add command to dump SPRs 2016-05-11 21:54:07 +10:00
Kconfig powerpc/ebpf/jit: Implement JIT compiler for extended BPF 2016-06-24 15:17:57 +10:00
Kconfig.debug powerpc/mm: Always use STRICT_MM_TYPECHECKS 2016-05-01 18:32:14 +10:00
Makefile powerpc: Avoid -maltivec when using clang integrated assembler 2016-07-05 23:58:53 +10:00
relocs_check.sh powerpc: Convert relocs_check to a shell script using grep 2015-03-23 14:47:39 +11:00