[PATCH 00/14] powerpc: Add support for POWER8 relocation on exceptions

Michael Neuling mikey at neuling.org
Fri Nov 9 17:18:58 EST 2012

This set of patches adds support for taking exceptions with the MMU on which is
supported by POWER8.

A new set of exception vectors is added at 0xc000_0000_0000_4xxx.  When the HW
takes us here, MSR IR/DR will be set already and we no longer need a costly
RFID to turn the MMU back on again.

The original 0x0 based exception vectors remain for when the HW can't leave the
MMU on.  Examples of this are when we can't trust the current the MMU mappings,
like when we are changing from guest to hypervisor (HV 0 -> 1) or when the MMU
was off already.  In these cases the HW will take us to the original 0x0 based
exception vectors with the MMU off as before.

The core of these patches were originally written by Matt Evans.  

Ian Munsie (5):
  powerpc: Add set_mode hcall
  powerpc: Add wrappers to enable/disable relocation on exceptions
  powerpc: Move get_longbusy_msecs into hvcall.h and remove duplicate
  powerpc: Enable relocation on during exceptions at boot
  powerpc: Disable relocation on exceptions when kexecing

Michael Neuling (9):
  powerpc: Add POWER8 architected mode to cputable
  powerpc: Whitespace changes in exception64s.S
  powerpc: Remove unessessary 0x3000 location enforcement
  powerpc: Make load_hander handle upto 64k offset
  powerpc: Turn syscall handler into macros
  powerpc: Add new macros needed for relocation on exceptions
  powerpc: Add relocation on exception vector handlers
  powerpc: Move initial mfspr LPCR out of __init_LPCR
  powerpc: Setup relocation on exceptions for bare metal systems

 arch/powerpc/include/asm/exception-64s.h        |   97 ++++++-
 arch/powerpc/include/asm/firmware.h             |    4 +-
 arch/powerpc/include/asm/hvcall.h               |   23 +-
 arch/powerpc/include/asm/reg.h                  |    2 +
 arch/powerpc/kernel/cpu_setup_power.S           |    8 +-
 arch/powerpc/kernel/cputable.c                  |   15 ++
 arch/powerpc/kernel/exceptions-64s.S            |  306 +++++++++++++++++++----
 arch/powerpc/kernel/head_64.S                   |    3 +-
 arch/powerpc/kernel/setup_64.c                  |    5 +
 arch/powerpc/platforms/pseries/firmware.c       |    1 +
 arch/powerpc/platforms/pseries/plpar_wrappers.h |   36 +++
 arch/powerpc/platforms/pseries/setup.c          |   71 ++++++
 drivers/infiniband/hw/ehca/hcp_if.c             |   20 --
 drivers/net/ethernet/ibm/ehea/ehea_phyp.h       |   20 --
 14 files changed, 516 insertions(+), 95 deletions(-)


More information about the Linuxppc-dev mailing list