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