Commit | Line | Data |
---|---|---|
b2441318 | 1 | /* SPDX-License-Identifier: GPL-2.0 */ |
560285cd AB |
2 | #ifndef _ASM_POWERPC_SETUP_H |
3 | #define _ASM_POWERPC_SETUP_H | |
4 | ||
5 | #include <uapi/asm/setup.h> | |
6 | ||
7 | #ifndef __ASSEMBLY__ | |
8 | extern void ppc_printk_progress(char *s, unsigned short hex); | |
9 | ||
10 | extern unsigned int rtas_data; | |
560285cd | 11 | extern unsigned long long memory_limit; |
51c3c62b | 12 | extern bool init_mem_is_free; |
560285cd AB |
13 | extern unsigned long klimit; |
14 | extern void *zalloc_maybe_bootmem(size_t size, gfp_t mask); | |
15 | ||
560285cd AB |
16 | struct device_node; |
17 | extern void note_scsi_host(struct device_node *, void *); | |
18 | ||
19 | /* Used in very early kernel initialization. */ | |
20 | extern unsigned long reloc_offset(void); | |
21 | extern unsigned long add_reloc_offset(unsigned long); | |
22 | extern void reloc_got2(unsigned long); | |
23 | ||
24 | #define PTRRELOC(x) ((typeof(x)) add_reloc_offset((unsigned long)(x))) | |
25 | ||
b88c4767 | 26 | void check_for_initrd(void); |
9bd9be00 | 27 | void mem_topology_setup(void); |
10239733 | 28 | void initmem_init(void); |
ab9dbf77 | 29 | void setup_panic(void); |
b71d47c1 | 30 | #define ARCH_PANIC_TIMEOUT 180 |
b88c4767 | 31 | |
d3cbff1b BH |
32 | #ifdef CONFIG_PPC_PSERIES |
33 | extern void pseries_enable_reloc_on_exc(void); | |
34 | extern void pseries_disable_reloc_on_exc(void); | |
35 | extern void pseries_big_endian_exceptions(void); | |
36 | extern void pseries_little_endian_exceptions(void); | |
37 | #else | |
38 | static inline void pseries_enable_reloc_on_exc(void) {} | |
39 | static inline void pseries_disable_reloc_on_exc(void) {} | |
40 | static inline void pseries_big_endian_exceptions(void) {} | |
41 | static inline void pseries_little_endian_exceptions(void) {} | |
42 | #endif /* CONFIG_PPC_PSERIES */ | |
43 | ||
aa8a5e00 ME |
44 | void rfi_flush_enable(bool enable); |
45 | ||
46 | /* These are bit flags */ | |
47 | enum l1d_flush_type { | |
48 | L1D_FLUSH_NONE = 0x1, | |
49 | L1D_FLUSH_FALLBACK = 0x2, | |
50 | L1D_FLUSH_ORI = 0x4, | |
51 | L1D_FLUSH_MTTRIG = 0x8, | |
52 | }; | |
53 | ||
abf110f3 | 54 | void setup_rfi_flush(enum l1d_flush_type, bool enable); |
aa8a5e00 | 55 | void do_rfi_flush_fixups(enum l1d_flush_type types); |
af375eef | 56 | #ifdef CONFIG_PPC_BARRIER_NOSPEC |
cb3d6759 | 57 | void setup_barrier_nospec(void); |
af375eef ME |
58 | #else |
59 | static inline void setup_barrier_nospec(void) { }; | |
60 | #endif | |
2eea7f06 | 61 | void do_barrier_nospec_fixups(bool enable); |
815069ca MS |
62 | extern bool barrier_nospec_enabled; |
63 | ||
179ab1cb | 64 | #ifdef CONFIG_PPC_BARRIER_NOSPEC |
815069ca MS |
65 | void do_barrier_nospec_fixups_range(bool enable, void *start, void *end); |
66 | #else | |
67 | static inline void do_barrier_nospec_fixups_range(bool enable, void *start, void *end) { }; | |
68 | #endif | |
aa8a5e00 | 69 | |
560285cd AB |
70 | #endif /* !__ASSEMBLY__ */ |
71 | ||
72 | #endif /* _ASM_POWERPC_SETUP_H */ | |
73 |