File Index
Files and directories
Sign in
FILE

smp-cps.h

File preview with syntax highlighting.

linux-6.19.14/arch/mips/include/asm/smp-cps.h C
 1/* SPDX-License-Identifier: GPL-2.0-or-later */
 2/*
 3 * Copyright (C) 2013 Imagination Technologies
 4 * Author: Paul Burton <paul.burton@mips.com>
 5 */
 6
 7#ifndef __MIPS_ASM_SMP_CPS_H__
 8#define __MIPS_ASM_SMP_CPS_H__
 9
10#define CPS_ENTRY_PATCH_INSNS	6
11
12#ifndef __ASSEMBLER__
13
14struct vpe_boot_config {
15	unsigned long pc;
16	unsigned long sp;
17	unsigned long gp;
18};
19
20struct core_boot_config {
21	atomic_t vpe_mask;
22	struct vpe_boot_config *vpe_config;
23};
24
25struct cluster_boot_config {
26	unsigned long *core_power;
27	struct cpumask cpumask;
28	struct core_boot_config *core_config;
29};
30
31extern struct cluster_boot_config *mips_cps_cluster_bootcfg;
32
33extern void mips_cps_core_boot(int cca, void __iomem *gcr_base);
34extern void mips_cps_core_init(void);
35
36extern void mips_cps_boot_vpes(struct core_boot_config *cfg, unsigned vpe);
37
38extern void mips_cps_pm_save(void);
39extern void mips_cps_pm_restore(void);
40
41extern void excep_tlbfill(void);
42extern void excep_xtlbfill(void);
43extern void excep_cache(void);
44extern void excep_genex(void);
45extern void excep_intex(void);
46extern void excep_ejtag(void);
47
48#ifdef CONFIG_MIPS_CPS
49
50extern bool mips_cps_smp_in_use(void);
51
52#else /* !CONFIG_MIPS_CPS */
53
54static inline bool mips_cps_smp_in_use(void) { return false; }
55
56#endif /* !CONFIG_MIPS_CPS */
57
58#else /* __ASSEMBLER__ */
59
60.extern mips_cps_bootcfg;
61
62#endif /* __ASSEMBLER__ */
63#endif /* __MIPS_ASM_SMP_CPS_H__ */
~/ Read-only file preview.