xref: /linux/arch/powerpc/kernel/setup.h (revision 55f1b540d893da740a81200450014c45a8103f54)
1 /* SPDX-License-Identifier: GPL-2.0-or-later */
2 /*
3  * Prototypes for functions that are shared between setup_(32|64|common).c
4  *
5  * Copyright 2016 Michael Ellerman, IBM Corporation.
6  */
7 
8 #ifndef __ARCH_POWERPC_KERNEL_SETUP_H
9 #define __ARCH_POWERPC_KERNEL_SETUP_H
10 
11 void initialize_cache_info(void);
12 void irqstack_early_init(void);
13 
14 #ifdef CONFIG_PPC32
15 void setup_power_save(void);
16 #else
17 static inline void setup_power_save(void) { }
18 #endif
19 
20 #if defined(CONFIG_PPC64) && defined(CONFIG_SMP)
21 void check_smt_enabled(void);
22 #else
23 static inline void check_smt_enabled(void) { }
24 #endif
25 
26 #if defined(CONFIG_PPC_BOOK3E_64) && defined(CONFIG_SMP)
27 void setup_tlb_core_data(void);
28 #else
29 static inline void setup_tlb_core_data(void) { }
30 #endif
31 
32 #ifdef CONFIG_BOOKE
33 void exc_lvl_early_init(void);
34 #else
35 static inline void exc_lvl_early_init(void) { }
36 #endif
37 
38 #if defined(CONFIG_PPC64) || defined(CONFIG_VMAP_STACK)
39 void emergency_stack_init(void);
40 #else
41 static inline void emergency_stack_init(void) { }
42 #endif
43 
44 #ifdef CONFIG_PPC64
45 u64 ppc64_bolted_size(void);
46 
47 /* Default SPR values from firmware/kexec */
48 extern unsigned long spr_default_dscr;
49 #endif
50 
51 /*
52  * Having this in kvm_ppc.h makes include dependencies too
53  * tricky to solve for setup-common.c so have it here.
54  */
55 #ifdef CONFIG_KVM_BOOK3S_HV_POSSIBLE
56 void kvm_cma_reserve(void);
57 #else
58 static inline void kvm_cma_reserve(void) { }
59 #endif
60 
61 #ifdef CONFIG_TAU
62 u32 cpu_temp(unsigned long cpu);
63 u32 cpu_temp_both(unsigned long cpu);
64 u32 tau_interrupts(unsigned long cpu);
65 #endif /* CONFIG_TAU */
66 
67 #endif /* __ARCH_POWERPC_KERNEL_SETUP_H */
68