.. | .. |
---|
| 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 | |
---|
9 | 6 | #ifndef _ASM_ARC_ARCREGS_H |
---|
.. | .. |
---|
42 | 39 | #define ARC_REG_CLUSTER_BCR 0xcf |
---|
43 | 40 | #define ARC_REG_AUX_ICCM 0x208 /* ICCM Base Addr (ARCv2) */ |
---|
44 | 41 | #define ARC_REG_LPB_CTRL 0x488 /* ARCv2 Loop Buffer control */ |
---|
| 42 | +#define ARC_REG_FPU_CTRL 0x300 |
---|
| 43 | +#define ARC_REG_FPU_STATUS 0x301 |
---|
45 | 44 | |
---|
46 | 45 | /* Common for ARCompact and ARCv2 status register */ |
---|
47 | 46 | #define ARC_REG_STATUS32 0x0A |
---|
.. | .. |
---|
82 | 81 | #define ECR_V_DTLB_MISS 0x05 |
---|
83 | 82 | #define ECR_V_PROTV 0x06 |
---|
84 | 83 | #define ECR_V_TRAP 0x09 |
---|
| 84 | +#define ECR_V_MISALIGN 0x0d |
---|
85 | 85 | #endif |
---|
86 | 86 | |
---|
87 | 87 | /* DTLB Miss and Protection Violation Cause Codes */ |
---|
.. | .. |
---|
117 | 117 | #define ARC_AUX_DPFP_2L 0x303 |
---|
118 | 118 | #define ARC_AUX_DPFP_2H 0x304 |
---|
119 | 119 | #define ARC_AUX_DPFP_STAT 0x305 |
---|
| 120 | + |
---|
| 121 | +/* |
---|
| 122 | + * DSP-related registers |
---|
| 123 | + * Registers names must correspond to dsp_callee_regs structure fields names |
---|
| 124 | + * for automatic offset calculation in DSP_AUX_SAVE_RESTORE macros. |
---|
| 125 | + */ |
---|
| 126 | +#define ARC_AUX_DSP_BUILD 0x7A |
---|
| 127 | +#define ARC_AUX_ACC0_LO 0x580 |
---|
| 128 | +#define ARC_AUX_ACC0_GLO 0x581 |
---|
| 129 | +#define ARC_AUX_ACC0_HI 0x582 |
---|
| 130 | +#define ARC_AUX_ACC0_GHI 0x583 |
---|
| 131 | +#define ARC_AUX_DSP_BFLY0 0x598 |
---|
| 132 | +#define ARC_AUX_DSP_CTRL 0x59F |
---|
| 133 | +#define ARC_AUX_DSP_FFT_CTRL 0x59E |
---|
| 134 | + |
---|
| 135 | +#define ARC_AUX_AGU_BUILD 0xCC |
---|
| 136 | +#define ARC_AUX_AGU_AP0 0x5C0 |
---|
| 137 | +#define ARC_AUX_AGU_AP1 0x5C1 |
---|
| 138 | +#define ARC_AUX_AGU_AP2 0x5C2 |
---|
| 139 | +#define ARC_AUX_AGU_AP3 0x5C3 |
---|
| 140 | +#define ARC_AUX_AGU_OS0 0x5D0 |
---|
| 141 | +#define ARC_AUX_AGU_OS1 0x5D1 |
---|
| 142 | +#define ARC_AUX_AGU_MOD0 0x5E0 |
---|
| 143 | +#define ARC_AUX_AGU_MOD1 0x5E1 |
---|
| 144 | +#define ARC_AUX_AGU_MOD2 0x5E2 |
---|
| 145 | +#define ARC_AUX_AGU_MOD3 0x5E3 |
---|
120 | 146 | |
---|
121 | 147 | #ifndef __ASSEMBLY__ |
---|
122 | 148 | |
---|
.. | .. |
---|
167 | 193 | #endif |
---|
168 | 194 | }; |
---|
169 | 195 | |
---|
170 | | -struct bcr_extn_xymem { |
---|
171 | | -#ifdef CONFIG_CPU_BIG_ENDIAN |
---|
172 | | - unsigned int ram_org:2, num_banks:4, bank_sz:4, ver:8; |
---|
173 | | -#else |
---|
174 | | - unsigned int ver:8, bank_sz:4, num_banks:4, ram_org:2; |
---|
175 | | -#endif |
---|
176 | | -}; |
---|
177 | | - |
---|
178 | 196 | struct bcr_iccm_arcompact { |
---|
179 | 197 | #ifdef CONFIG_CPU_BIG_ENDIAN |
---|
180 | 198 | unsigned int base:16, pad:5, sz:3, ver:8; |
---|
.. | .. |
---|
221 | 239 | unsigned int pad2:15, dp:1, pad1:7, sp:1, ver:8; |
---|
222 | 240 | #else |
---|
223 | 241 | unsigned int ver:8, sp:1, pad1:7, dp:1, pad2:15; |
---|
| 242 | +#endif |
---|
| 243 | +}; |
---|
| 244 | + |
---|
| 245 | +struct bcr_actionpoint { |
---|
| 246 | +#ifdef CONFIG_CPU_BIG_ENDIAN |
---|
| 247 | + unsigned int pad:21, min:1, num:2, ver:8; |
---|
| 248 | +#else |
---|
| 249 | + unsigned int ver:8, num:2, min:1, pad:21; |
---|
224 | 250 | #endif |
---|
225 | 251 | }; |
---|
226 | 252 | |
---|
.. | .. |
---|
291 | 317 | }; |
---|
292 | 318 | |
---|
293 | 319 | struct cpuinfo_arc_bpu { |
---|
294 | | - unsigned int ver, full, num_cache, num_pred; |
---|
| 320 | + unsigned int ver, full, num_cache, num_pred, ret_stk; |
---|
295 | 321 | }; |
---|
296 | 322 | |
---|
297 | 323 | struct cpuinfo_arc_ccm { |
---|
.. | .. |
---|
304 | 330 | struct cpuinfo_arc_bpu bpu; |
---|
305 | 331 | struct bcr_identity core; |
---|
306 | 332 | struct bcr_isa_arcv2 isa; |
---|
307 | | - const char *details, *name; |
---|
| 333 | + const char *release, *name; |
---|
308 | 334 | unsigned int vec_base; |
---|
309 | 335 | struct cpuinfo_arc_ccm iccm, dccm; |
---|
310 | 336 | struct { |
---|
311 | 337 | unsigned int swap:1, norm:1, minmax:1, barrel:1, crc:1, swape:1, pad1:2, |
---|
312 | 338 | fpu_sp:1, fpu_dp:1, dual:1, dual_enb:1, pad2:4, |
---|
313 | | - debug:1, ap:1, smart:1, rtt:1, pad3:4, |
---|
| 339 | + ap_num:4, ap_full:1, smart:1, rtt:1, pad3:1, |
---|
314 | 340 | timer0:1, timer1:1, rtc:1, gfrc:1, pad4:4; |
---|
315 | 341 | } extn; |
---|
316 | 342 | struct bcr_mpy extn_mpy; |
---|
317 | | - struct bcr_extn_xymem extn_xymem; |
---|
318 | 343 | }; |
---|
319 | 344 | |
---|
320 | 345 | extern struct cpuinfo_arc cpuinfo_arc700[]; |
---|