.. | .. |
---|
| 1 | +/* SPDX-License-Identifier: GPL-2.0-only */ |
---|
1 | 2 | /* |
---|
2 | 3 | * 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. |
---|
7 | 4 | * |
---|
8 | 5 | * vineetg: March 2009 |
---|
9 | 6 | * -Implemented task_pt_regs( ) |
---|
.. | .. |
---|
17 | 14 | #ifndef __ASSEMBLY__ |
---|
18 | 15 | |
---|
19 | 16 | #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> |
---|
36 | 19 | |
---|
37 | 20 | /* Arch specific stuff which needs to be saved per task. |
---|
38 | 21 | * However these items are not so important so as to earn a place in |
---|
.. | .. |
---|
42 | 25 | unsigned long ksp; /* kernel mode stack pointer */ |
---|
43 | 26 | unsigned long callee_reg; /* pointer to callee regs */ |
---|
44 | 27 | 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 |
---|
45 | 31 | #ifdef CONFIG_ARC_FPU_SAVE_RESTORE |
---|
46 | 32 | struct arc_fpu fpu; |
---|
47 | | -#endif |
---|
48 | | -#ifdef CONFIG_ARC_PLAT_EZNPS |
---|
49 | | - struct eznps_dp dp; |
---|
50 | 33 | #endif |
---|
51 | 34 | }; |
---|
52 | 35 | |
---|
.. | .. |
---|
67 | 50 | * A lot of busy-wait loops in SMP are based off of non-volatile data otherwise |
---|
68 | 51 | * get optimised away by gcc |
---|
69 | 52 | */ |
---|
70 | | -#ifndef CONFIG_EZNPS_MTM_EXT |
---|
71 | | - |
---|
72 | 53 | #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 |
---|
80 | 54 | |
---|
81 | 55 | #define KSTK_EIP(tsk) (task_pt_regs(tsk)->ret) |
---|
82 | 56 | #define KSTK_ESP(tsk) (task_pt_regs(tsk)->sp) |
---|
.. | .. |
---|
97 | 71 | unsigned long usp); |
---|
98 | 72 | |
---|
99 | 73 | 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; }) |
---|
108 | 74 | |
---|
109 | 75 | #endif /* !__ASSEMBLY__ */ |
---|
110 | 76 | |
---|
.. | .. |
---|
133 | 99 | |
---|
134 | 100 | #define USER_KERNEL_GUTTER (VMALLOC_START - TASK_SIZE) |
---|
135 | 101 | |
---|
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 |
---|
152 | 102 | #define STACK_TOP TASK_SIZE |
---|
153 | | -#endif |
---|
154 | | - |
---|
155 | 103 | #define STACK_TOP_MAX STACK_TOP |
---|
156 | 104 | |
---|
157 | 105 | /* This decides where the kernel will search for a free chunk of vm |
---|