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