162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */
262306a36Sopenharmony_ci#ifndef __LOONGSON_SMP_H_
362306a36Sopenharmony_ci#define __LOONGSON_SMP_H_
462306a36Sopenharmony_ci
562306a36Sopenharmony_ci/* for Loongson-3 smp support */
662306a36Sopenharmony_ciextern unsigned long long smp_group[4];
762306a36Sopenharmony_ci
862306a36Sopenharmony_ci/* 4 groups(nodes) in maximum in numa case */
962306a36Sopenharmony_ci#define SMP_CORE_GROUP0_BASE	(smp_group[0])
1062306a36Sopenharmony_ci#define SMP_CORE_GROUP1_BASE	(smp_group[1])
1162306a36Sopenharmony_ci#define SMP_CORE_GROUP2_BASE	(smp_group[2])
1262306a36Sopenharmony_ci#define SMP_CORE_GROUP3_BASE	(smp_group[3])
1362306a36Sopenharmony_ci
1462306a36Sopenharmony_ci/* 4 cores in each group(node) */
1562306a36Sopenharmony_ci#define SMP_CORE0_OFFSET  0x000
1662306a36Sopenharmony_ci#define SMP_CORE1_OFFSET  0x100
1762306a36Sopenharmony_ci#define SMP_CORE2_OFFSET  0x200
1862306a36Sopenharmony_ci#define SMP_CORE3_OFFSET  0x300
1962306a36Sopenharmony_ci
2062306a36Sopenharmony_ci/* ipi registers offsets */
2162306a36Sopenharmony_ci#define STATUS0  0x00
2262306a36Sopenharmony_ci#define EN0      0x04
2362306a36Sopenharmony_ci#define SET0     0x08
2462306a36Sopenharmony_ci#define CLEAR0   0x0c
2562306a36Sopenharmony_ci#define STATUS1  0x10
2662306a36Sopenharmony_ci#define MASK1    0x14
2762306a36Sopenharmony_ci#define SET1     0x18
2862306a36Sopenharmony_ci#define CLEAR1   0x1c
2962306a36Sopenharmony_ci#define BUF      0x20
3062306a36Sopenharmony_ci
3162306a36Sopenharmony_ci#endif
32