forked from ~ljy/RK356X_SDK_RELEASE

hc
2024-10-22 8ac6c7a54ed1b98d142dce24b11c6de6a1e239a5
kernel/tools/testing/selftests/powerpc/include/reg.h
....@@ -1,6 +1,6 @@
1
+/* SPDX-License-Identifier: GPL-2.0-only */
12 /*
23 * Copyright 2014, Michael Ellerman, IBM Corp.
3
- * Licensed under GPLv2.
44 */
55
66 #ifndef _SELFTESTS_POWERPC_REG_H
....@@ -17,6 +17,7 @@
1717 : "memory")
1818
1919 #define mb() asm volatile("sync" : : : "memory");
20
+#define barrier() asm volatile("" : : : "memory");
2021
2122 #define SPRN_MMCR2 769
2223 #define SPRN_MMCRA 770
....@@ -56,6 +57,12 @@
5657 #define SPRN_PPR 896 /* Program Priority Register */
5758 #define SPRN_AMR 13 /* Authority Mask Register - problem state */
5859
60
+#define set_amr(v) asm volatile("isync;" \
61
+ "mtspr " __stringify(SPRN_AMR) ",%0;" \
62
+ "isync" : \
63
+ : "r" ((unsigned long)(v)) \
64
+ : "memory")
65
+
5966 /* TEXASR register bits */
6067 #define TEXASR_FC 0xFE00000000000000
6168 #define TEXASR_FP 0x0100000000000000
....@@ -76,6 +83,16 @@
7683 #define TEXASR_TE 0x0000000004000000
7784 #define TEXASR_ROT 0x0000000002000000
7885
86
+/* MSR register bits */
87
+#define MSR_TS_S_LG 33 /* Trans Mem state: Suspended */
88
+#define MSR_TS_T_LG 34 /* Trans Mem state: Active */
89
+
90
+#define __MASK(X) (1UL<<(X))
91
+
92
+/* macro to check TM MSR bits */
93
+#define MSR_TS_S __MASK(MSR_TS_S_LG) /* Transaction Suspended */
94
+#define MSR_TS_T __MASK(MSR_TS_T_LG) /* Transaction Transactional */
95
+
7996 /* Vector Instructions */
8097 #define VSX_XX1(xs, ra, rb) (((xs) & 0x1f) << 21 | ((ra) << 16) | \
8198 ((rb) << 11) | (((xs) >> 5)))