Lines Matching +full:no +full:- +full:idle +full:- +full:on +full:- +full:init
1 // SPDX-License-Identifier: GPL-2.0-only
3 * Copyright (C) 2004, 2007-2010, 2011-2012 Synopsys, Inc. (www.synopsys.com)
6 * -- Added support for Inter Processor Interrupts
9 * -- Initial Write (Borrowed heavily from ARM)
53 return -EINVAL; in arc_get_cpu_map()
56 return -EINVAL; in arc_get_cpu_map()
62 * Read from DeviceTree and setup cpu possible mask. If there is no
63 * "possible-cpus" property in DeviceTree pretend all [0..NR_CPUS-1] exist.
69 if (arc_get_cpu_map("possible-cpus", &cpumask)) { in arc_init_cpu_possible()
70 pr_warn("Failed to get possible-cpus from dtb, pretending all %u cpus exist\n", in arc_init_cpu_possible()
85 * - Initialise the CPU possible map early - this describes the CPUs
87 * - Call early smp init hook. This can initialize a specific multi-core
99 /* called from init ( ) => process 1 */
104 * boot cpu is set to present already by init/main.c in smp_prepare_cpus()
116 * Default smp boot helper for Run-on-reset case where all cores start off
117 * together. Non-masters need to wait for Master to start running.
118 * This is implemented using a flag in memory, which Non-masters spin-wait on.
119 * Master sets it to cpu-id of core to "ungate" it.
144 /* for halt-on-reset, we've waited already */ in arc_platform_smp_wait_to_boot()
174 current->active_mm = mm; in start_kernel_secondary()
177 /* Some SMP H/w setup - for each cpu */ in start_kernel_secondary()
181 if (machine_desc->init_per_cpu) in start_kernel_secondary()
182 machine_desc->init_per_cpu(cpu); in start_kernel_secondary()
194 * Called from kernel_init( ) -> smp_init( ) - for each CPU
197 * -It booted, but was halted in head.S
198 * -It was configured to halt-on-reset
203 int __cpu_up(unsigned int cpu, struct task_struct *idle) in __cpu_up() argument
207 secondary_idle_tsk = idle; in __cpu_up()
209 pr_info("Idle Task [%d] %p", cpu, idle); in __cpu_up()
227 return -1; in __cpu_up()
247 * In arches with IRQ for each msg type (above), receiver can use IRQ-id to
249 * IRQ), the msg-type needs to be conveyed via per-cpu data
275 * Only do so if there's no pending msg from other concurrent sender(s). in ipi_send_msg_one()
279 * so @new msg can be a free-loader in ipi_send_msg_one()
319 * ipi_cpu_stop - handle IPI from smp_send_stop()
351 * arch-common ISR to handle for inter-processor interrupts
359 pr_debug("IPI [%ld] received on cpu %d\n", in do_IPI()
385 * API called by platform code to hookup arch-common ISR to their IPI IRQ