hc
2023-12-06 08f87f769b595151be1afeff53e144f543faa614
kernel/arch/arc/include/asm/processor.h
....@@ -1,9 +1,6 @@
1
+/* SPDX-License-Identifier: GPL-2.0-only */
12 /*
23 * Copyright (C) 2004, 2007-2010, 2011-2012 Synopsys, Inc. (www.synopsys.com)
3
- *
4
- * This program is free software; you can redistribute it and/or modify
5
- * it under the terms of the GNU General Public License version 2 as
6
- * published by the Free Software Foundation.
74 *
85 * vineetg: March 2009
96 * -Implemented task_pt_regs( )
....@@ -17,22 +14,8 @@
1714 #ifndef __ASSEMBLY__
1815
1916 #include <asm/ptrace.h>
20
-
21
-#ifdef CONFIG_ARC_FPU_SAVE_RESTORE
22
-/* These DPFP regs need to be saved/restored across ctx-sw */
23
-struct arc_fpu {
24
- struct {
25
- unsigned int l, h;
26
- } aux_dpfp[2];
27
-};
28
-#endif
29
-
30
-#ifdef CONFIG_ARC_PLAT_EZNPS
31
-struct eznps_dp {
32
- unsigned int eflags;
33
- unsigned int gpa1;
34
-};
35
-#endif
17
+#include <asm/dsp.h>
18
+#include <asm/fpu.h>
3619
3720 /* Arch specific stuff which needs to be saved per task.
3821 * However these items are not so important so as to earn a place in
....@@ -42,11 +25,11 @@
4225 unsigned long ksp; /* kernel mode stack pointer */
4326 unsigned long callee_reg; /* pointer to callee regs */
4427 unsigned long fault_address; /* dbls as brkpt holder as well */
28
+#ifdef CONFIG_ARC_DSP_SAVE_RESTORE_REGS
29
+ struct dsp_callee_regs dsp;
30
+#endif
4531 #ifdef CONFIG_ARC_FPU_SAVE_RESTORE
4632 struct arc_fpu fpu;
47
-#endif
48
-#ifdef CONFIG_ARC_PLAT_EZNPS
49
- struct eznps_dp dp;
5033 #endif
5134 };
5235
....@@ -67,16 +50,7 @@
6750 * A lot of busy-wait loops in SMP are based off of non-volatile data otherwise
6851 * get optimised away by gcc
6952 */
70
-#ifndef CONFIG_EZNPS_MTM_EXT
71
-
7253 #define cpu_relax() barrier()
73
-
74
-#else
75
-
76
-#define cpu_relax() \
77
- __asm__ __volatile__ (".word %0" : : "i"(CTOP_INST_SCHD_RW) : "memory")
78
-
79
-#endif
8054
8155 #define KSTK_EIP(tsk) (task_pt_regs(tsk)->ret)
8256 #define KSTK_ESP(tsk) (task_pt_regs(tsk)->sp)
....@@ -97,14 +71,6 @@
9771 unsigned long usp);
9872
9973 extern unsigned int get_wchan(struct task_struct *p);
100
-
101
-/*
102
- * Default implementation of macro that returns current
103
- * instruction pointer ("program counter").
104
- * Should the PC register be read instead ? This macro does not seem to
105
- * be used in many places so this wont be all that bad.
106
- */
107
-#define current_text_addr() ({ __label__ _l; _l: &&_l; })
10874
10975 #endif /* !__ASSEMBLY__ */
11076
....@@ -133,25 +99,7 @@
13399
134100 #define USER_KERNEL_GUTTER (VMALLOC_START - TASK_SIZE)
135101
136
-#ifdef CONFIG_ARC_PLAT_EZNPS
137
-/* NPS architecture defines special window of 129M in user address space for
138
- * special memory areas, when accessing this window the MMU do not use TLB.
139
- * Instead MMU direct the access to:
140
- * 0x57f00000:0x57ffffff -- 1M of closely coupled memory (aka CMEM)
141
- * 0x58000000:0x5fffffff -- 16 huge pages, 8M each, with fixed map (aka FMTs)
142
- *
143
- * CMEM - is the fastest memory we got and its size is 16K.
144
- * FMT - is used to map either to internal/external memory.
145
- * Internal memory is the second fast memory and its size is 16M
146
- * External memory is the biggest memory (16G) and also the slowest.
147
- *
148
- * STACK_TOP need to be PMD align (21bit) that is why we supply 0x57e00000.
149
- */
150
-#define STACK_TOP 0x57e00000
151
-#else
152102 #define STACK_TOP TASK_SIZE
153
-#endif
154
-
155103 #define STACK_TOP_MAX STACK_TOP
156104
157105 /* This decides where the kernel will search for a free chunk of vm