|
11 | 11 |
|
12 | 12 | /* Build Configuration Registers */
|
13 | 13 | #define ARC_REG_AUX_DCCM 0x18 /* DCCM Base Addr ARCv2 */
|
| 14 | +#define ARC_REG_ERP_CTRL 0x3F /* ARCv2 Error protection control */ |
14 | 15 | #define ARC_REG_DCCM_BASE_BUILD 0x61 /* DCCM Base Addr ARCompact */
|
15 | 16 | #define ARC_REG_CRC_BCR 0x62
|
16 | 17 | #define ARC_REG_VECBASE_BCR 0x68
|
17 | 18 | #define ARC_REG_PERIBASE_BCR 0x69
|
18 | 19 | #define ARC_REG_FP_BCR 0x6B /* ARCompact: Single-Precision FPU */
|
19 | 20 | #define ARC_REG_DPFP_BCR 0x6C /* ARCompact: Dbl Precision FPU */
|
| 21 | +#define ARC_REG_ERP_BUILD 0xc7 /* ARCv2 Error protection Build: ECC/Parity */ |
20 | 22 | #define ARC_REG_FP_V2_BCR 0xc8 /* ARCv2 FPU */
|
21 | 23 | #define ARC_REG_SLC_BCR 0xce
|
22 | 24 | #define ARC_REG_DCCM_BUILD 0x74 /* DCCM size (common) */
|
|
32 | 34 | #define ARC_REG_D_UNCACH_BCR 0x6A
|
33 | 35 | #define ARC_REG_BPU_BCR 0xc0
|
34 | 36 | #define ARC_REG_ISA_CFG_BCR 0xc1
|
| 37 | +#define ARC_REG_LPB_BUILD 0xE9 /* ARCv2 Loop Buffer Build */ |
35 | 38 | #define ARC_REG_RTT_BCR 0xF2
|
36 | 39 | #define ARC_REG_IRQ_BCR 0xF3
|
| 40 | +#define ARC_REG_MICRO_ARCH_BCR 0xF9 /* ARCv2 Product revision */ |
37 | 41 | #define ARC_REG_SMART_BCR 0xFF
|
38 | 42 | #define ARC_REG_CLUSTER_BCR 0xcf
|
39 | 43 | #define ARC_REG_AUX_ICCM 0x208 /* ICCM Base Addr (ARCv2) */
|
| 44 | +#define ARC_REG_LPB_CTRL 0x488 /* ARCv2 Loop Buffer control */ |
40 | 45 |
|
41 | 46 | /* Common for ARCompact and ARCv2 status register */
|
42 | 47 | #define ARC_REG_STATUS32 0x0A
|
@@ -229,6 +234,32 @@ struct bcr_bpu_arcv2 {
|
229 | 234 | #endif
|
230 | 235 | };
|
231 | 236 |
|
| 237 | +/* Error Protection Build: ECC/Parity */ |
| 238 | +struct bcr_erp { |
| 239 | +#ifdef CONFIG_CPU_BIG_ENDIAN |
| 240 | + unsigned int pad3:5, mmu:3, pad2:4, ic:3, dc:3, pad1:6, ver:8; |
| 241 | +#else |
| 242 | + unsigned int ver:8, pad1:6, dc:3, ic:3, pad2:4, mmu:3, pad3:5; |
| 243 | +#endif |
| 244 | +}; |
| 245 | + |
| 246 | +/* Error Protection Control */ |
| 247 | +struct ctl_erp { |
| 248 | +#ifdef CONFIG_CPU_BIG_ENDIAN |
| 249 | + unsigned int pad2:27, mpd:1, pad1:2, dpd:1, dpi:1; |
| 250 | +#else |
| 251 | + unsigned int dpi:1, dpd:1, pad1:2, mpd:1, pad2:27; |
| 252 | +#endif |
| 253 | +}; |
| 254 | + |
| 255 | +struct bcr_lpb { |
| 256 | +#ifdef CONFIG_CPU_BIG_ENDIAN |
| 257 | + unsigned int pad:16, entries:8, ver:8; |
| 258 | +#else |
| 259 | + unsigned int ver:8, entries:8, pad:16; |
| 260 | +#endif |
| 261 | +}; |
| 262 | + |
232 | 263 | struct bcr_generic {
|
233 | 264 | #ifdef CONFIG_CPU_BIG_ENDIAN
|
234 | 265 | unsigned int info:24, ver:8;
|
@@ -270,7 +301,7 @@ struct cpuinfo_arc {
|
270 | 301 | struct cpuinfo_arc_ccm iccm, dccm;
|
271 | 302 | struct {
|
272 | 303 | unsigned int swap:1, norm:1, minmax:1, barrel:1, crc:1, swape:1, pad1:2,
|
273 |
| - fpu_sp:1, fpu_dp:1, dual_iss_enb:1, dual_iss_exist:1, pad2:4, |
| 304 | + fpu_sp:1, fpu_dp:1, dual:1, dual_enb:1, pad2:4, |
274 | 305 | debug:1, ap:1, smart:1, rtt:1, pad3:4,
|
275 | 306 | timer0:1, timer1:1, rtc:1, gfrc:1, pad4:4;
|
276 | 307 | } extn;
|
|
0 commit comments