]> git.proxmox.com Git - mirror_qemu.git/commit
ppc/spapr: implement H_SIGNAL_SYS_RESET
authorNicholas Piggin <npiggin@gmail.com>
Mon, 5 Dec 2016 05:50:21 +0000 (16:50 +1100)
committerDavid Gibson <david@gibson.dropbear.id.au>
Mon, 30 Jan 2017 23:10:13 +0000 (10:10 +1100)
commit1c7ad77e56767fb36a7ccc954d304d4ac768b374
treea60a3527dad7b6ad2c8f8425e8247f644158e562
parentd6e166c08203f47017555f5f52b70f35399c824c
ppc/spapr: implement H_SIGNAL_SYS_RESET

The H_SIGNAL_SYS_RESET hcall allows a guest CPU to raise a system reset
exception on CPUs within the same guest -- all CPUs, all-but-self, or a
specific CPU (including self).

This has not made its way to a PAPR release yet, but we have an hcall
number assigned.

  H_SIGNAL_SYS_RESET = 0x380

  Syntax:
    hcall(uint64 H_SIGNAL_SYS_RESET, int64 target);

  Generate a system reset NMI on the threads indicated by target.

  Values for target:
    -1 = target all online threads including the caller
    -2 = target all online threads except for the caller
    All other negative values: reserved
    Positive values: The thread to be targeted, obtained from the value
    of the "ibm,ppc-interrupt-server#s" property of the CPU in the OF
    device tree.

  Semantics:
    - Invalid target: return H_Parameter.
    - Otherwise: Generate a system reset NMI on target thread(s),
      return H_Success.

Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
hw/ppc/spapr.c
hw/ppc/spapr_hcall.c
include/hw/ppc/spapr.h