Lines Matching +full:used +full:- +full:by +full:- +full:rtas
1 // SPDX-License-Identifier: GPL-2.0-or-later
35 #include <asm/rtas.h>
42 #include <asm/code-patching.h>
49 * The Primary thread of each non-boot processor was started from the OF client
50 * interface by prom_hold_cpus and is spinning on secondary_hold_spinloop.
62 "Firmware doesn't support query-cpu-stopped-state\n"); in smp_query_cpu_stopped()
69 "RTAS query-cpu-stopped-state failed: %i\n", status); in smp_query_cpu_stopped()
77 * smp_startup_cpu() - start the given cpu
80 * started from Open Firmware. For anything else, call RTAS with the
84 * 0 - failure
85 * 1 - success
96 /* Already started by OF and sitting in spin loop */ in smp_startup_cpu()
108 * If the RTAS start-cpu token does not exist then presume the in smp_startup_cpu()
117 printk(KERN_ERR "start-cpu failed: %i\n", status); in smp_startup_cpu()
140 return -EINVAL; in smp_pSeries_kick_cpu()
143 return -ENOENT; in smp_pSeries_kick_cpu()
147 * cpu_start field to become non-zero After we set cpu_start, in smp_pSeries_kick_cpu()
150 paca_ptrs[nr]->cpu_start = 1; in smp_pSeries_kick_cpu()
162 /* Cause IPI as setup by the interrupt controller (xics or xive) */
206 /* Doorbells can only be used for IPIs between SMT siblings */ in pSeries_smp_probe()
214 * KVM emulates doorbells by disabling FSCR[MSGP] so msgsndp in pSeries_smp_probe()
234 * faster than the interrupt controller, and they can be used by in pSeries_smp_probe()
238 ic_cause_ipi = smp_ops->cause_ipi; in pSeries_smp_probe()
239 smp_ops->cause_ipi = dbell_or_ic_cause_ipi; in pSeries_smp_probe()
244 .cause_ipi = NULL, /* Filled at runtime by pSeries_smp_probe() */
258 pr_debug(" -> smp_init_pSeries()\n"); in smp_init_pseries()
266 * We know prom_init will not have started them if RTAS supports in smp_init_pseries()
267 * query-cpu-stopped-state. in smp_init_pseries()
281 pr_debug(" <- smp_init_pSeries()\n"); in smp_init_pseries()