1 /* SPDX-License-Identifier: GPL-2.0-or-later */
3 * Prototypes for functions that are shared between setup_(32|64|common).c
5 * Copyright 2016 Michael Ellerman, IBM Corporation.
8 #ifndef __ARCH_POWERPC_KERNEL_SETUP_H
9 #define __ARCH_POWERPC_KERNEL_SETUP_H
11 void initialize_cache_info(void);
12 void irqstack_early_init(void);
15 void setup_power_save(void);
17 static inline void setup_power_save(void) { };
20 #if defined(CONFIG_PPC64) && defined(CONFIG_SMP)
21 void check_smt_enabled(void);
23 static inline void check_smt_enabled(void) { };
26 #if defined(CONFIG_PPC_BOOK3E) && defined(CONFIG_SMP)
27 void setup_tlb_core_data(void);
29 static inline void setup_tlb_core_data(void) { };
32 #if defined(CONFIG_PPC_BOOK3E) || defined(CONFIG_BOOKE) || defined(CONFIG_40x)
33 void exc_lvl_early_init(void);
35 static inline void exc_lvl_early_init(void) { };
38 #if defined(CONFIG_PPC64) || defined(CONFIG_VMAP_STACK)
39 void emergency_stack_init(void);
41 static inline void emergency_stack_init(void) { };
45 u64 ppc64_bolted_size(void);
47 /* Default SPR values from firmware/kexec */
48 extern unsigned long spr_default_dscr;
52 * Having this in kvm_ppc.h makes include dependencies too
53 * tricky to solve for setup-common.c so have it here.
55 #ifdef CONFIG_KVM_BOOK3S_HV_POSSIBLE
56 void kvm_cma_reserve(void);
58 static inline void kvm_cma_reserve(void) { };
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 */
67 #endif /* __ARCH_POWERPC_KERNEL_SETUP_H */