| .. | .. |
|---|
| 3 | 3 | * CAAM hardware register-level view |
|---|
| 4 | 4 | * |
|---|
| 5 | 5 | * Copyright 2008-2011 Freescale Semiconductor, Inc. |
|---|
| 6 | + * Copyright 2018 NXP |
|---|
| 6 | 7 | */ |
|---|
| 7 | 8 | |
|---|
| 8 | 9 | #ifndef REGS_H |
|---|
| .. | .. |
|---|
| 11 | 12 | #include <linux/types.h> |
|---|
| 12 | 13 | #include <linux/bitops.h> |
|---|
| 13 | 14 | #include <linux/io.h> |
|---|
| 15 | +#include <linux/io-64-nonatomic-hi-lo.h> |
|---|
| 14 | 16 | |
|---|
| 15 | 17 | /* |
|---|
| 16 | 18 | * Architecture-specific register access methods |
|---|
| .. | .. |
|---|
| 69 | 71 | |
|---|
| 70 | 72 | extern bool caam_little_end; |
|---|
| 71 | 73 | extern bool caam_imx; |
|---|
| 74 | +extern size_t caam_ptr_sz; |
|---|
| 72 | 75 | |
|---|
| 73 | 76 | #define caam_to_cpu(len) \ |
|---|
| 74 | 77 | static inline u##len caam##len ## _to_cpu(u##len val) \ |
|---|
| .. | .. |
|---|
| 136 | 139 | * base + 0x0000 : least-significant 32 bits |
|---|
| 137 | 140 | * base + 0x0004 : most-significant 32 bits |
|---|
| 138 | 141 | */ |
|---|
| 139 | | -#ifdef CONFIG_64BIT |
|---|
| 140 | 142 | static inline void wr_reg64(void __iomem *reg, u64 data) |
|---|
| 141 | 143 | { |
|---|
| 142 | | - if (caam_little_end) |
|---|
| 143 | | - iowrite64(data, reg); |
|---|
| 144 | | - else |
|---|
| 145 | | - iowrite64be(data, reg); |
|---|
| 146 | | -} |
|---|
| 147 | | - |
|---|
| 148 | | -static inline u64 rd_reg64(void __iomem *reg) |
|---|
| 149 | | -{ |
|---|
| 150 | | - if (caam_little_end) |
|---|
| 151 | | - return ioread64(reg); |
|---|
| 152 | | - else |
|---|
| 153 | | - return ioread64be(reg); |
|---|
| 154 | | -} |
|---|
| 155 | | - |
|---|
| 156 | | -#else /* CONFIG_64BIT */ |
|---|
| 157 | | -static inline void wr_reg64(void __iomem *reg, u64 data) |
|---|
| 158 | | -{ |
|---|
| 159 | | - if (!caam_imx && caam_little_end) { |
|---|
| 160 | | - wr_reg32((u32 __iomem *)(reg) + 1, data >> 32); |
|---|
| 161 | | - wr_reg32((u32 __iomem *)(reg), data); |
|---|
| 144 | + if (caam_little_end) { |
|---|
| 145 | + if (caam_imx) { |
|---|
| 146 | + iowrite32(data >> 32, (u32 __iomem *)(reg)); |
|---|
| 147 | + iowrite32(data, (u32 __iomem *)(reg) + 1); |
|---|
| 148 | + } else { |
|---|
| 149 | + iowrite64(data, reg); |
|---|
| 150 | + } |
|---|
| 162 | 151 | } else { |
|---|
| 163 | | - wr_reg32((u32 __iomem *)(reg), data >> 32); |
|---|
| 164 | | - wr_reg32((u32 __iomem *)(reg) + 1, data); |
|---|
| 152 | + iowrite64be(data, reg); |
|---|
| 165 | 153 | } |
|---|
| 166 | 154 | } |
|---|
| 167 | 155 | |
|---|
| 168 | 156 | static inline u64 rd_reg64(void __iomem *reg) |
|---|
| 169 | 157 | { |
|---|
| 170 | | - if (!caam_imx && caam_little_end) |
|---|
| 171 | | - return ((u64)rd_reg32((u32 __iomem *)(reg) + 1) << 32 | |
|---|
| 172 | | - (u64)rd_reg32((u32 __iomem *)(reg))); |
|---|
| 158 | + if (caam_little_end) { |
|---|
| 159 | + if (caam_imx) { |
|---|
| 160 | + u32 low, high; |
|---|
| 173 | 161 | |
|---|
| 174 | | - return ((u64)rd_reg32((u32 __iomem *)(reg)) << 32 | |
|---|
| 175 | | - (u64)rd_reg32((u32 __iomem *)(reg) + 1)); |
|---|
| 162 | + high = ioread32(reg); |
|---|
| 163 | + low = ioread32(reg + sizeof(u32)); |
|---|
| 164 | + |
|---|
| 165 | + return low + ((u64)high << 32); |
|---|
| 166 | + } else { |
|---|
| 167 | + return ioread64(reg); |
|---|
| 168 | + } |
|---|
| 169 | + } else { |
|---|
| 170 | + return ioread64be(reg); |
|---|
| 171 | + } |
|---|
| 176 | 172 | } |
|---|
| 177 | | -#endif /* CONFIG_64BIT */ |
|---|
| 178 | 173 | |
|---|
| 179 | 174 | static inline u64 cpu_to_caam_dma64(dma_addr_t value) |
|---|
| 180 | 175 | { |
|---|
| 181 | | - if (caam_imx) |
|---|
| 182 | | - return (((u64)cpu_to_caam32(lower_32_bits(value)) << 32) | |
|---|
| 183 | | - (u64)cpu_to_caam32(upper_32_bits(value))); |
|---|
| 176 | + if (caam_imx) { |
|---|
| 177 | + u64 ret_val = (u64)cpu_to_caam32(lower_32_bits(value)) << 32; |
|---|
| 178 | + |
|---|
| 179 | + if (IS_ENABLED(CONFIG_ARCH_DMA_ADDR_T_64BIT)) |
|---|
| 180 | + ret_val |= (u64)cpu_to_caam32(upper_32_bits(value)); |
|---|
| 181 | + |
|---|
| 182 | + return ret_val; |
|---|
| 183 | + } |
|---|
| 184 | 184 | |
|---|
| 185 | 185 | return cpu_to_caam64(value); |
|---|
| 186 | 186 | } |
|---|
| .. | .. |
|---|
| 194 | 194 | return caam64_to_cpu(value); |
|---|
| 195 | 195 | } |
|---|
| 196 | 196 | |
|---|
| 197 | | -#ifdef CONFIG_ARCH_DMA_ADDR_T_64BIT |
|---|
| 198 | | -#define cpu_to_caam_dma(value) cpu_to_caam_dma64(value) |
|---|
| 199 | | -#define caam_dma_to_cpu(value) caam_dma64_to_cpu(value) |
|---|
| 200 | | -#else |
|---|
| 201 | | -#define cpu_to_caam_dma(value) cpu_to_caam32(value) |
|---|
| 202 | | -#define caam_dma_to_cpu(value) caam32_to_cpu(value) |
|---|
| 203 | | -#endif /* CONFIG_ARCH_DMA_ADDR_T_64BIT */ |
|---|
| 197 | +static inline u64 cpu_to_caam_dma(u64 value) |
|---|
| 198 | +{ |
|---|
| 199 | + if (IS_ENABLED(CONFIG_ARCH_DMA_ADDR_T_64BIT) && |
|---|
| 200 | + caam_ptr_sz == sizeof(u64)) |
|---|
| 201 | + return cpu_to_caam_dma64(value); |
|---|
| 202 | + else |
|---|
| 203 | + return cpu_to_caam32(value); |
|---|
| 204 | +} |
|---|
| 205 | + |
|---|
| 206 | +static inline u64 caam_dma_to_cpu(u64 value) |
|---|
| 207 | +{ |
|---|
| 208 | + if (IS_ENABLED(CONFIG_ARCH_DMA_ADDR_T_64BIT) && |
|---|
| 209 | + caam_ptr_sz == sizeof(u64)) |
|---|
| 210 | + return caam_dma64_to_cpu(value); |
|---|
| 211 | + else |
|---|
| 212 | + return caam32_to_cpu(value); |
|---|
| 213 | +} |
|---|
| 204 | 214 | |
|---|
| 205 | 215 | /* |
|---|
| 206 | 216 | * jr_outentry |
|---|
| 207 | 217 | * Represents each entry in a JobR output ring |
|---|
| 208 | 218 | */ |
|---|
| 209 | | -struct jr_outentry { |
|---|
| 210 | | - dma_addr_t desc;/* Pointer to completed descriptor */ |
|---|
| 211 | | - u32 jrstatus; /* Status for completed descriptor */ |
|---|
| 212 | | -} __packed; |
|---|
| 219 | + |
|---|
| 220 | +static inline void jr_outentry_get(void *outring, int hw_idx, dma_addr_t *desc, |
|---|
| 221 | + u32 *jrstatus) |
|---|
| 222 | +{ |
|---|
| 223 | + |
|---|
| 224 | + if (caam_ptr_sz == sizeof(u32)) { |
|---|
| 225 | + struct { |
|---|
| 226 | + u32 desc; |
|---|
| 227 | + u32 jrstatus; |
|---|
| 228 | + } __packed *outentry = outring; |
|---|
| 229 | + |
|---|
| 230 | + *desc = outentry[hw_idx].desc; |
|---|
| 231 | + *jrstatus = outentry[hw_idx].jrstatus; |
|---|
| 232 | + } else { |
|---|
| 233 | + struct { |
|---|
| 234 | + dma_addr_t desc;/* Pointer to completed descriptor */ |
|---|
| 235 | + u32 jrstatus; /* Status for completed descriptor */ |
|---|
| 236 | + } __packed *outentry = outring; |
|---|
| 237 | + |
|---|
| 238 | + *desc = outentry[hw_idx].desc; |
|---|
| 239 | + *jrstatus = outentry[hw_idx].jrstatus; |
|---|
| 240 | + } |
|---|
| 241 | +} |
|---|
| 242 | + |
|---|
| 243 | +#define SIZEOF_JR_OUTENTRY (caam_ptr_sz + sizeof(u32)) |
|---|
| 244 | + |
|---|
| 245 | +static inline dma_addr_t jr_outentry_desc(void *outring, int hw_idx) |
|---|
| 246 | +{ |
|---|
| 247 | + dma_addr_t desc; |
|---|
| 248 | + u32 unused; |
|---|
| 249 | + |
|---|
| 250 | + jr_outentry_get(outring, hw_idx, &desc, &unused); |
|---|
| 251 | + |
|---|
| 252 | + return desc; |
|---|
| 253 | +} |
|---|
| 254 | + |
|---|
| 255 | +static inline u32 jr_outentry_jrstatus(void *outring, int hw_idx) |
|---|
| 256 | +{ |
|---|
| 257 | + dma_addr_t unused; |
|---|
| 258 | + u32 jrstatus; |
|---|
| 259 | + |
|---|
| 260 | + jr_outentry_get(outring, hw_idx, &unused, &jrstatus); |
|---|
| 261 | + |
|---|
| 262 | + return jrstatus; |
|---|
| 263 | +} |
|---|
| 264 | + |
|---|
| 265 | +static inline void jr_inpentry_set(void *inpring, int hw_idx, dma_addr_t val) |
|---|
| 266 | +{ |
|---|
| 267 | + if (caam_ptr_sz == sizeof(u32)) { |
|---|
| 268 | + u32 *inpentry = inpring; |
|---|
| 269 | + |
|---|
| 270 | + inpentry[hw_idx] = val; |
|---|
| 271 | + } else { |
|---|
| 272 | + dma_addr_t *inpentry = inpring; |
|---|
| 273 | + |
|---|
| 274 | + inpentry[hw_idx] = val; |
|---|
| 275 | + } |
|---|
| 276 | +} |
|---|
| 277 | + |
|---|
| 278 | +#define SIZEOF_JR_INPENTRY caam_ptr_sz |
|---|
| 279 | + |
|---|
| 280 | + |
|---|
| 281 | +/* Version registers (Era 10+) e80-eff */ |
|---|
| 282 | +struct version_regs { |
|---|
| 283 | + u32 crca; /* CRCA_VERSION */ |
|---|
| 284 | + u32 afha; /* AFHA_VERSION */ |
|---|
| 285 | + u32 kfha; /* KFHA_VERSION */ |
|---|
| 286 | + u32 pkha; /* PKHA_VERSION */ |
|---|
| 287 | + u32 aesa; /* AESA_VERSION */ |
|---|
| 288 | + u32 mdha; /* MDHA_VERSION */ |
|---|
| 289 | + u32 desa; /* DESA_VERSION */ |
|---|
| 290 | + u32 snw8a; /* SNW8A_VERSION */ |
|---|
| 291 | + u32 snw9a; /* SNW9A_VERSION */ |
|---|
| 292 | + u32 zuce; /* ZUCE_VERSION */ |
|---|
| 293 | + u32 zuca; /* ZUCA_VERSION */ |
|---|
| 294 | + u32 ccha; /* CCHA_VERSION */ |
|---|
| 295 | + u32 ptha; /* PTHA_VERSION */ |
|---|
| 296 | + u32 rng; /* RNG_VERSION */ |
|---|
| 297 | + u32 trng; /* TRNG_VERSION */ |
|---|
| 298 | + u32 aaha; /* AAHA_VERSION */ |
|---|
| 299 | + u32 rsvd[10]; |
|---|
| 300 | + u32 sr; /* SR_VERSION */ |
|---|
| 301 | + u32 dma; /* DMA_VERSION */ |
|---|
| 302 | + u32 ai; /* AI_VERSION */ |
|---|
| 303 | + u32 qi; /* QI_VERSION */ |
|---|
| 304 | + u32 jr; /* JR_VERSION */ |
|---|
| 305 | + u32 deco; /* DECO_VERSION */ |
|---|
| 306 | +}; |
|---|
| 307 | + |
|---|
| 308 | +/* Version registers bitfields */ |
|---|
| 309 | + |
|---|
| 310 | +/* Number of CHAs instantiated */ |
|---|
| 311 | +#define CHA_VER_NUM_MASK 0xffull |
|---|
| 312 | +/* CHA Miscellaneous Information */ |
|---|
| 313 | +#define CHA_VER_MISC_SHIFT 8 |
|---|
| 314 | +#define CHA_VER_MISC_MASK (0xffull << CHA_VER_MISC_SHIFT) |
|---|
| 315 | +/* CHA Revision Number */ |
|---|
| 316 | +#define CHA_VER_REV_SHIFT 16 |
|---|
| 317 | +#define CHA_VER_REV_MASK (0xffull << CHA_VER_REV_SHIFT) |
|---|
| 318 | +/* CHA Version ID */ |
|---|
| 319 | +#define CHA_VER_VID_SHIFT 24 |
|---|
| 320 | +#define CHA_VER_VID_MASK (0xffull << CHA_VER_VID_SHIFT) |
|---|
| 321 | + |
|---|
| 322 | +/* CHA Miscellaneous Information - AESA_MISC specific */ |
|---|
| 323 | +#define CHA_VER_MISC_AES_GCM BIT(1 + CHA_VER_MISC_SHIFT) |
|---|
| 324 | + |
|---|
| 325 | +/* CHA Miscellaneous Information - PKHA_MISC specific */ |
|---|
| 326 | +#define CHA_VER_MISC_PKHA_NO_CRYPT BIT(7 + CHA_VER_MISC_SHIFT) |
|---|
| 213 | 327 | |
|---|
| 214 | 328 | /* |
|---|
| 215 | 329 | * caam_perfmon - Performance Monitor/Secure Memory Status/ |
|---|
| .. | .. |
|---|
| 223 | 337 | #define CHA_NUM_MS_DECONUM_MASK (0xfull << CHA_NUM_MS_DECONUM_SHIFT) |
|---|
| 224 | 338 | |
|---|
| 225 | 339 | /* |
|---|
| 226 | | - * CHA version IDs / instantiation bitfields |
|---|
| 340 | + * CHA version IDs / instantiation bitfields (< Era 10) |
|---|
| 227 | 341 | * Defined for use with the cha_id fields in perfmon, but the same shift/mask |
|---|
| 228 | 342 | * selectors can be used to pull out the number of instantiated blocks within |
|---|
| 229 | 343 | * cha_num fields in perfmon because the locations are the same. |
|---|
| 230 | 344 | */ |
|---|
| 231 | 345 | #define CHA_ID_LS_AES_SHIFT 0 |
|---|
| 232 | 346 | #define CHA_ID_LS_AES_MASK (0xfull << CHA_ID_LS_AES_SHIFT) |
|---|
| 233 | | -#define CHA_ID_LS_AES_LP (0x3ull << CHA_ID_LS_AES_SHIFT) |
|---|
| 234 | | -#define CHA_ID_LS_AES_HP (0x4ull << CHA_ID_LS_AES_SHIFT) |
|---|
| 235 | 347 | |
|---|
| 236 | 348 | #define CHA_ID_LS_DES_SHIFT 4 |
|---|
| 237 | 349 | #define CHA_ID_LS_DES_MASK (0xfull << CHA_ID_LS_DES_SHIFT) |
|---|
| .. | .. |
|---|
| 241 | 353 | |
|---|
| 242 | 354 | #define CHA_ID_LS_MD_SHIFT 12 |
|---|
| 243 | 355 | #define CHA_ID_LS_MD_MASK (0xfull << CHA_ID_LS_MD_SHIFT) |
|---|
| 244 | | -#define CHA_ID_LS_MD_LP256 (0x0ull << CHA_ID_LS_MD_SHIFT) |
|---|
| 245 | | -#define CHA_ID_LS_MD_LP512 (0x1ull << CHA_ID_LS_MD_SHIFT) |
|---|
| 246 | | -#define CHA_ID_LS_MD_HP (0x2ull << CHA_ID_LS_MD_SHIFT) |
|---|
| 247 | 356 | |
|---|
| 248 | 357 | #define CHA_ID_LS_RNG_SHIFT 16 |
|---|
| 249 | 358 | #define CHA_ID_LS_RNG_MASK (0xfull << CHA_ID_LS_RNG_SHIFT) |
|---|
| .. | .. |
|---|
| 269 | 378 | #define CHA_ID_MS_JR_SHIFT 28 |
|---|
| 270 | 379 | #define CHA_ID_MS_JR_MASK (0xfull << CHA_ID_MS_JR_SHIFT) |
|---|
| 271 | 380 | |
|---|
| 381 | +/* Specific CHA version IDs */ |
|---|
| 382 | +#define CHA_VER_VID_AES_LP 0x3ull |
|---|
| 383 | +#define CHA_VER_VID_AES_HP 0x4ull |
|---|
| 384 | +#define CHA_VER_VID_MD_LP256 0x0ull |
|---|
| 385 | +#define CHA_VER_VID_MD_LP512 0x1ull |
|---|
| 386 | +#define CHA_VER_VID_MD_HP 0x2ull |
|---|
| 387 | + |
|---|
| 272 | 388 | struct sec_vid { |
|---|
| 273 | 389 | u16 ip_id; |
|---|
| 274 | 390 | u8 maj_rev; |
|---|
| .. | .. |
|---|
| 291 | 407 | u32 cha_rev_ls; /* CRNR - CHA Rev No. Least significant half*/ |
|---|
| 292 | 408 | #define CTPR_MS_QI_SHIFT 25 |
|---|
| 293 | 409 | #define CTPR_MS_QI_MASK (0x1ull << CTPR_MS_QI_SHIFT) |
|---|
| 410 | +#define CTPR_MS_PS BIT(17) |
|---|
| 294 | 411 | #define CTPR_MS_DPAA2 BIT(13) |
|---|
| 295 | 412 | #define CTPR_MS_VIRT_EN_INCL 0x00000001 |
|---|
| 296 | 413 | #define CTPR_MS_VIRT_EN_POR 0x00000002 |
|---|
| .. | .. |
|---|
| 378 | 495 | |
|---|
| 379 | 496 | /* RNG4 TRNG test registers */ |
|---|
| 380 | 497 | struct rng4tst { |
|---|
| 381 | | -#define RTMCTL_PRGM 0x00010000 /* 1 -> program mode, 0 -> run mode */ |
|---|
| 498 | +#define RTMCTL_ACC BIT(5) /* TRNG access mode */ |
|---|
| 499 | +#define RTMCTL_PRGM BIT(16) /* 1 -> program mode, 0 -> run mode */ |
|---|
| 382 | 500 | #define RTMCTL_SAMP_MODE_VON_NEUMANN_ES_SC 0 /* use von Neumann data in |
|---|
| 383 | 501 | both entropy shifter and |
|---|
| 384 | 502 | statistical checker */ |
|---|
| .. | .. |
|---|
| 414 | 532 | u32 rsvd1[40]; |
|---|
| 415 | 533 | #define RDSTA_SKVT 0x80000000 |
|---|
| 416 | 534 | #define RDSTA_SKVN 0x40000000 |
|---|
| 535 | +#define RDSTA_PR0 BIT(4) |
|---|
| 536 | +#define RDSTA_PR1 BIT(5) |
|---|
| 417 | 537 | #define RDSTA_IF0 0x00000001 |
|---|
| 418 | 538 | #define RDSTA_IF1 0x00000002 |
|---|
| 419 | | -#define RDSTA_IFMASK (RDSTA_IF1 | RDSTA_IF0) |
|---|
| 539 | +#define RDSTA_MASK (RDSTA_PR1 | RDSTA_PR0 | RDSTA_IF1 | RDSTA_IF0) |
|---|
| 420 | 540 | u32 rdsta; |
|---|
| 421 | 541 | u32 rsvd2[15]; |
|---|
| 422 | 542 | }; |
|---|
| .. | .. |
|---|
| 479 | 599 | struct rng4tst r4tst[2]; |
|---|
| 480 | 600 | }; |
|---|
| 481 | 601 | |
|---|
| 482 | | - u32 rsvd9[448]; |
|---|
| 602 | + u32 rsvd9[416]; |
|---|
| 483 | 603 | |
|---|
| 604 | + /* Version registers - introduced with era 10 e80-eff */ |
|---|
| 605 | + struct version_regs vreg; |
|---|
| 484 | 606 | /* Performance Monitor f00-fff */ |
|---|
| 485 | 607 | struct caam_perfmon perfmon; |
|---|
| 486 | 608 | }; |
|---|
| .. | .. |
|---|
| 570 | 692 | u32 rsvd11; |
|---|
| 571 | 693 | u32 jrcommand; /* JRCRx - JobR command */ |
|---|
| 572 | 694 | |
|---|
| 573 | | - u32 rsvd12[932]; |
|---|
| 695 | + u32 rsvd12[900]; |
|---|
| 574 | 696 | |
|---|
| 697 | + /* Version registers - introduced with era 10 e80-eff */ |
|---|
| 698 | + struct version_regs vreg; |
|---|
| 575 | 699 | /* Performance Monitor f00-fff */ |
|---|
| 576 | 700 | struct caam_perfmon perfmon; |
|---|
| 577 | 701 | }; |
|---|
| .. | .. |
|---|
| 590 | 714 | #define JRSTA_SSRC_CCB_ERROR 0x20000000 |
|---|
| 591 | 715 | #define JRSTA_SSRC_JUMP_HALT_USER 0x30000000 |
|---|
| 592 | 716 | #define JRSTA_SSRC_DECO 0x40000000 |
|---|
| 717 | +#define JRSTA_SSRC_QI 0x50000000 |
|---|
| 593 | 718 | #define JRSTA_SSRC_JRERROR 0x60000000 |
|---|
| 594 | 719 | #define JRSTA_SSRC_JUMP_HALT_CC 0x70000000 |
|---|
| 595 | 720 | |
|---|
| .. | .. |
|---|
| 632 | 757 | #define JRSTA_DECOERR_SEQOVF 0x85 |
|---|
| 633 | 758 | #define JRSTA_DECOERR_INVSIGN 0x86 |
|---|
| 634 | 759 | #define JRSTA_DECOERR_DSASIGN 0x87 |
|---|
| 760 | + |
|---|
| 761 | +#define JRSTA_QIERR_ERROR_MASK 0x00ff |
|---|
| 635 | 762 | |
|---|
| 636 | 763 | #define JRSTA_CCBERR_JUMP 0x08000000 |
|---|
| 637 | 764 | #define JRSTA_CCBERR_INDEX_MASK 0xff00 |
|---|
| .. | .. |
|---|
| 876 | 1003 | u32 rsvd29[48]; |
|---|
| 877 | 1004 | u32 descbuf[64]; /* DxDESB - Descriptor buffer */ |
|---|
| 878 | 1005 | u32 rscvd30[193]; |
|---|
| 879 | | -#define DESC_DBG_DECO_STAT_HOST_ERR 0x00D00000 |
|---|
| 880 | 1006 | #define DESC_DBG_DECO_STAT_VALID 0x80000000 |
|---|
| 881 | 1007 | #define DESC_DBG_DECO_STAT_MASK 0x00F00000 |
|---|
| 1008 | +#define DESC_DBG_DECO_STAT_SHIFT 20 |
|---|
| 882 | 1009 | u32 desc_dbg; /* DxDDR - DECO Debug Register */ |
|---|
| 883 | | - u32 rsvd31[126]; |
|---|
| 1010 | + u32 rsvd31[13]; |
|---|
| 1011 | +#define DESC_DER_DECO_STAT_MASK 0x000F0000 |
|---|
| 1012 | +#define DESC_DER_DECO_STAT_SHIFT 16 |
|---|
| 1013 | + u32 dbg_exec; /* DxDER - DECO Debug Exec Register */ |
|---|
| 1014 | + u32 rsvd32[112]; |
|---|
| 884 | 1015 | }; |
|---|
| 885 | 1016 | |
|---|
| 1017 | +#define DECO_STAT_HOST_ERR 0xD |
|---|
| 1018 | + |
|---|
| 886 | 1019 | #define DECO_JQCR_WHL 0x20000000 |
|---|
| 887 | 1020 | #define DECO_JQCR_FOUR 0x10000000 |
|---|
| 888 | 1021 | |
|---|