aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arc/include/asm/arcregs.h
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arc/include/asm/arcregs.h')
-rw-r--r--arch/arc/include/asm/arcregs.h32
1 files changed, 20 insertions, 12 deletions
diff --git a/arch/arc/include/asm/arcregs.h b/arch/arc/include/asm/arcregs.h
index fdc5be5b1029..f9f4c6f59fdb 100644
--- a/arch/arc/include/asm/arcregs.h
+++ b/arch/arc/include/asm/arcregs.h
@@ -10,7 +10,8 @@
10#define _ASM_ARC_ARCREGS_H 10#define _ASM_ARC_ARCREGS_H
11 11
12/* Build Configuration Registers */ 12/* Build Configuration Registers */
13#define ARC_REG_DCCMBASE_BCR 0x61 /* DCCM Base Addr */ 13#define ARC_REG_AUX_DCCM 0x18 /* DCCM Base Addr ARCv2 */
14#define ARC_REG_DCCM_BASE_BUILD 0x61 /* DCCM Base Addr ARCompact */
14#define ARC_REG_CRC_BCR 0x62 15#define ARC_REG_CRC_BCR 0x62
15#define ARC_REG_VECBASE_BCR 0x68 16#define ARC_REG_VECBASE_BCR 0x68
16#define ARC_REG_PERIBASE_BCR 0x69 17#define ARC_REG_PERIBASE_BCR 0x69
@@ -18,10 +19,10 @@
18#define ARC_REG_DPFP_BCR 0x6C /* ARCompact: Dbl Precision FPU */ 19#define ARC_REG_DPFP_BCR 0x6C /* ARCompact: Dbl Precision FPU */
19#define ARC_REG_FP_V2_BCR 0xc8 /* ARCv2 FPU */ 20#define ARC_REG_FP_V2_BCR 0xc8 /* ARCv2 FPU */
20#define ARC_REG_SLC_BCR 0xce 21#define ARC_REG_SLC_BCR 0xce
21#define ARC_REG_DCCM_BCR 0x74 /* DCCM Present + SZ */ 22#define ARC_REG_DCCM_BUILD 0x74 /* DCCM size (common) */
22#define ARC_REG_TIMERS_BCR 0x75 23#define ARC_REG_TIMERS_BCR 0x75
23#define ARC_REG_AP_BCR 0x76 24#define ARC_REG_AP_BCR 0x76
24#define ARC_REG_ICCM_BCR 0x78 25#define ARC_REG_ICCM_BUILD 0x78 /* ICCM size (common) */
25#define ARC_REG_XY_MEM_BCR 0x79 26#define ARC_REG_XY_MEM_BCR 0x79
26#define ARC_REG_MAC_BCR 0x7a 27#define ARC_REG_MAC_BCR 0x7a
27#define ARC_REG_MUL_BCR 0x7b 28#define ARC_REG_MUL_BCR 0x7b
@@ -36,6 +37,7 @@
36#define ARC_REG_IRQ_BCR 0xF3 37#define ARC_REG_IRQ_BCR 0xF3
37#define ARC_REG_SMART_BCR 0xFF 38#define ARC_REG_SMART_BCR 0xFF
38#define ARC_REG_CLUSTER_BCR 0xcf 39#define ARC_REG_CLUSTER_BCR 0xcf
40#define ARC_REG_AUX_ICCM 0x208 /* ICCM Base Addr (ARCv2) */
39 41
40/* status32 Bits Positions */ 42/* status32 Bits Positions */
41#define STATUS_AE_BIT 5 /* Exception active */ 43#define STATUS_AE_BIT 5 /* Exception active */
@@ -246,7 +248,7 @@ struct bcr_perip {
246#endif 248#endif
247}; 249};
248 250
249struct bcr_iccm { 251struct bcr_iccm_arcompact {
250#ifdef CONFIG_CPU_BIG_ENDIAN 252#ifdef CONFIG_CPU_BIG_ENDIAN
251 unsigned int base:16, pad:5, sz:3, ver:8; 253 unsigned int base:16, pad:5, sz:3, ver:8;
252#else 254#else
@@ -254,17 +256,15 @@ struct bcr_iccm {
254#endif 256#endif
255}; 257};
256 258
257/* DCCM Base Address Register: ARC_REG_DCCMBASE_BCR */ 259struct bcr_iccm_arcv2 {
258struct bcr_dccm_base {
259#ifdef CONFIG_CPU_BIG_ENDIAN 260#ifdef CONFIG_CPU_BIG_ENDIAN
260 unsigned int addr:24, ver:8; 261 unsigned int pad:8, sz11:4, sz01:4, sz10:4, sz00:4, ver:8;
261#else 262#else
262 unsigned int ver:8, addr:24; 263 unsigned int ver:8, sz00:4, sz10:4, sz01:4, sz11:4, pad:8;
263#endif 264#endif
264}; 265};
265 266
266/* DCCM RAM Configuration Register: ARC_REG_DCCM_BCR */ 267struct bcr_dccm_arcompact {
267struct bcr_dccm {
268#ifdef CONFIG_CPU_BIG_ENDIAN 268#ifdef CONFIG_CPU_BIG_ENDIAN
269 unsigned int res:21, sz:3, ver:8; 269 unsigned int res:21, sz:3, ver:8;
270#else 270#else
@@ -272,6 +272,14 @@ struct bcr_dccm {
272#endif 272#endif
273}; 273};
274 274
275struct bcr_dccm_arcv2 {
276#ifdef CONFIG_CPU_BIG_ENDIAN
277 unsigned int pad2:12, cyc:3, pad1:1, sz1:4, sz0:4, ver:8;
278#else
279 unsigned int ver:8, sz0:4, sz1:4, pad1:1, cyc:3, pad2:12;
280#endif
281};
282
275/* ARCompact: Both SP and DP FPU BCRs have same format */ 283/* ARCompact: Both SP and DP FPU BCRs have same format */
276struct bcr_fp_arcompact { 284struct bcr_fp_arcompact {
277#ifdef CONFIG_CPU_BIG_ENDIAN 285#ifdef CONFIG_CPU_BIG_ENDIAN
@@ -315,9 +323,9 @@ struct bcr_bpu_arcv2 {
315 323
316struct bcr_generic { 324struct bcr_generic {
317#ifdef CONFIG_CPU_BIG_ENDIAN 325#ifdef CONFIG_CPU_BIG_ENDIAN
318 unsigned int pad:24, ver:8; 326 unsigned int info:24, ver:8;
319#else 327#else
320 unsigned int ver:8, pad:24; 328 unsigned int ver:8, info:24;
321#endif 329#endif
322}; 330};
323 331