From 5e09fe1f19d3f56b1cebb44439da5b5de6e1fccd Mon Sep 17 00:00:00 2001 From: Nicholas Piggin Date: Wed, 20 Sep 2017 16:56:03 +1000 Subject: core: POWER9 implement OPAL_SIGNAL_SYSTEM_RESET This implements OPAL_SIGNAL_SYSTEM_RESET, using scom registers to quiesce the target thread and raise a system reset exception on it. It has been tested on DD2 with stop0 ESL=0 and ESL=1 shallow power saving modes. DD1 is not implemented because it is sufficiently different as to make support difficult. Signed-off-by: Nicholas Piggin [stewart@linux.vnet.ibm.com: fixup hdat_to_dt test] Signed-off-by: Stewart Smith --- include/cpu.h | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'include/cpu.h') diff --git a/include/cpu.h b/include/cpu.h index fd3acf7..1b622a5 100644 --- a/include/cpu.h +++ b/include/cpu.h @@ -95,6 +95,13 @@ struct cpu_thread { /* For use by XICS emulation on XIVE */ struct xive_cpu_state *xstate; + + /* + * For direct controls scoms, including special wakeup. + */ + struct lock dctl_lock; /* primary only */ + bool dctl_stopped; /* per thread */ + uint32_t special_wakeup_count; /* primary */ }; /* This global is set to 1 to allow secondaries to callin, -- cgit v1.1