Loading...
1/* SPDX-License-Identifier: GPL-2.0 */
2#ifndef __ASM_SMP_H
3#define __ASM_SMP_H
4
5extern int init_per_cpu(int cpuid);
6
7#if defined(CONFIG_SMP)
8
9/* Page Zero Location PDC will look for the address to branch to when we poke
10** slave CPUs still in "Icache loop".
11*/
12#define PDC_OS_BOOT_RENDEZVOUS 0x10
13#define PDC_OS_BOOT_RENDEZVOUS_HI 0x28
14
15#ifndef ASSEMBLY
16#include <linux/bitops.h>
17#include <linux/threads.h> /* for NR_CPUS */
18#include <linux/cpumask.h>
19typedef unsigned long address_t;
20
21
22/*
23 * Private routines/data
24 *
25 * physical and logical are equivalent until we support CPU hotplug.
26 */
27#define cpu_number_map(cpu) (cpu)
28#define cpu_logical_map(cpu) (cpu)
29
30extern void smp_send_all_nop(void);
31
32extern void arch_send_call_function_single_ipi(int cpu);
33extern void arch_send_call_function_ipi_mask(const struct cpumask *mask);
34
35#endif /* !ASSEMBLY */
36
37#define raw_smp_processor_id() (current_thread_info()->cpu)
38
39#else /* CONFIG_SMP */
40
41static inline void smp_send_all_nop(void) { return; }
42
43#endif
44
45#define NO_PROC_ID 0xFF /* No processor magic marker */
46#define ANY_PROC_ID 0xFF /* Any processor magic marker */
47static inline int __cpu_disable (void) {
48 return 0;
49}
50static inline void __cpu_die (unsigned int cpu) {
51 while(1)
52 ;
53}
54
55#endif /* __ASM_SMP_H */
1#ifndef __ASM_SMP_H
2#define __ASM_SMP_H
3
4
5#if defined(CONFIG_SMP)
6
7/* Page Zero Location PDC will look for the address to branch to when we poke
8** slave CPUs still in "Icache loop".
9*/
10#define PDC_OS_BOOT_RENDEZVOUS 0x10
11#define PDC_OS_BOOT_RENDEZVOUS_HI 0x28
12
13#ifndef ASSEMBLY
14#include <linux/bitops.h>
15#include <linux/threads.h> /* for NR_CPUS */
16#include <linux/cpumask.h>
17typedef unsigned long address_t;
18
19
20/*
21 * Private routines/data
22 *
23 * physical and logical are equivalent until we support CPU hotplug.
24 */
25#define cpu_number_map(cpu) (cpu)
26#define cpu_logical_map(cpu) (cpu)
27
28extern void smp_send_all_nop(void);
29
30extern void arch_send_call_function_single_ipi(int cpu);
31extern void arch_send_call_function_ipi_mask(const struct cpumask *mask);
32
33#endif /* !ASSEMBLY */
34
35#define raw_smp_processor_id() (current_thread_info()->cpu)
36
37#else /* CONFIG_SMP */
38
39static inline void smp_send_all_nop(void) { return; }
40
41#endif
42
43#define NO_PROC_ID 0xFF /* No processor magic marker */
44#define ANY_PROC_ID 0xFF /* Any processor magic marker */
45static inline int __cpu_disable (void) {
46 return 0;
47}
48static inline void __cpu_die (unsigned int cpu) {
49 while(1)
50 ;
51}
52
53#endif /* __ASM_SMP_H */