xref: /linux/arch/mips/loongson64/smp.h (revision c95baf12f5077419db01313ab61c2aac007d40cd)
1*6fbde6b4SJiaxun Yang /* SPDX-License-Identifier: GPL-2.0 */
2*6fbde6b4SJiaxun Yang #ifndef __LOONGSON_SMP_H_
3*6fbde6b4SJiaxun Yang #define __LOONGSON_SMP_H_
4*6fbde6b4SJiaxun Yang 
5*6fbde6b4SJiaxun Yang /* for Loongson-3 smp support */
6*6fbde6b4SJiaxun Yang extern unsigned long long smp_group[4];
7*6fbde6b4SJiaxun Yang 
8*6fbde6b4SJiaxun Yang /* 4 groups(nodes) in maximum in numa case */
9*6fbde6b4SJiaxun Yang #define SMP_CORE_GROUP0_BASE	(smp_group[0])
10*6fbde6b4SJiaxun Yang #define SMP_CORE_GROUP1_BASE	(smp_group[1])
11*6fbde6b4SJiaxun Yang #define SMP_CORE_GROUP2_BASE	(smp_group[2])
12*6fbde6b4SJiaxun Yang #define SMP_CORE_GROUP3_BASE	(smp_group[3])
13*6fbde6b4SJiaxun Yang 
14*6fbde6b4SJiaxun Yang /* 4 cores in each group(node) */
15*6fbde6b4SJiaxun Yang #define SMP_CORE0_OFFSET  0x000
16*6fbde6b4SJiaxun Yang #define SMP_CORE1_OFFSET  0x100
17*6fbde6b4SJiaxun Yang #define SMP_CORE2_OFFSET  0x200
18*6fbde6b4SJiaxun Yang #define SMP_CORE3_OFFSET  0x300
19*6fbde6b4SJiaxun Yang 
20*6fbde6b4SJiaxun Yang /* ipi registers offsets */
21*6fbde6b4SJiaxun Yang #define STATUS0  0x00
22*6fbde6b4SJiaxun Yang #define EN0      0x04
23*6fbde6b4SJiaxun Yang #define SET0     0x08
24*6fbde6b4SJiaxun Yang #define CLEAR0   0x0c
25*6fbde6b4SJiaxun Yang #define STATUS1  0x10
26*6fbde6b4SJiaxun Yang #define MASK1    0x14
27*6fbde6b4SJiaxun Yang #define SET1     0x18
28*6fbde6b4SJiaxun Yang #define CLEAR1   0x1c
29*6fbde6b4SJiaxun Yang #define BUF      0x20
30*6fbde6b4SJiaxun Yang 
31*6fbde6b4SJiaxun Yang #endif
32