.. | .. |
---|
145 | 145 | |
---|
146 | 146 | /* Definitions for features that only exist on 32-bit chips */ |
---|
147 | 147 | #ifdef CONFIG_PPC32 |
---|
148 | | -#define CPU_FTR_601 ASM_CONST(0x00001000) |
---|
149 | 148 | #define CPU_FTR_L2CR ASM_CONST(0x00002000) |
---|
150 | 149 | #define CPU_FTR_SPEC7450 ASM_CONST(0x00004000) |
---|
151 | 150 | #define CPU_FTR_TAU ASM_CONST(0x00008000) |
---|
152 | 151 | #define CPU_FTR_CAN_DOZE ASM_CONST(0x00010000) |
---|
153 | | -#define CPU_FTR_USE_RTC ASM_CONST(0x00020000) |
---|
154 | 152 | #define CPU_FTR_L3CR ASM_CONST(0x00040000) |
---|
155 | 153 | #define CPU_FTR_L3_DISABLE_NAP ASM_CONST(0x00080000) |
---|
156 | 154 | #define CPU_FTR_NAP_DISABLE_L2_PR ASM_CONST(0x00100000) |
---|
.. | .. |
---|
160 | 158 | #define CPU_FTR_NEED_COHERENT ASM_CONST(0x01000000) |
---|
161 | 159 | #define CPU_FTR_NO_BTIC ASM_CONST(0x02000000) |
---|
162 | 160 | #define CPU_FTR_PPC_LE ASM_CONST(0x04000000) |
---|
163 | | -#define CPU_FTR_UNIFIED_ID_CACHE ASM_CONST(0x08000000) |
---|
164 | 161 | #define CPU_FTR_SPE ASM_CONST(0x10000000) |
---|
165 | 162 | #define CPU_FTR_NEED_PAIRED_STWCX ASM_CONST(0x20000000) |
---|
166 | 163 | #define CPU_FTR_INDEXED_DCR ASM_CONST(0x40000000) |
---|
167 | 164 | |
---|
168 | 165 | #else /* CONFIG_PPC32 */ |
---|
169 | 166 | /* Define these to 0 for the sake of tests in common code */ |
---|
170 | | -#define CPU_FTR_601 (0) |
---|
171 | 167 | #define CPU_FTR_PPC_LE (0) |
---|
| 168 | +#define CPU_FTR_SPE (0) |
---|
172 | 169 | #endif |
---|
173 | 170 | |
---|
174 | 171 | /* |
---|
.. | .. |
---|
202 | 199 | #define CPU_FTR_STCX_CHECKS_ADDRESS LONG_ASM_CONST(0x0000000080000000) |
---|
203 | 200 | #define CPU_FTR_POPCNTB LONG_ASM_CONST(0x0000000100000000) |
---|
204 | 201 | #define CPU_FTR_POPCNTD LONG_ASM_CONST(0x0000000200000000) |
---|
205 | | -#define CPU_FTR_PKEY LONG_ASM_CONST(0x0000000400000000) |
---|
| 202 | +/* LONG_ASM_CONST(0x0000000400000000) Free */ |
---|
206 | 203 | #define CPU_FTR_VMX_COPY LONG_ASM_CONST(0x0000000800000000) |
---|
207 | 204 | #define CPU_FTR_TM LONG_ASM_CONST(0x0000001000000000) |
---|
208 | 205 | #define CPU_FTR_CFAR LONG_ASM_CONST(0x0000002000000000) |
---|
.. | .. |
---|
216 | 213 | #define CPU_FTR_P9_TLBIE_STQ_BUG LONG_ASM_CONST(0x0000400000000000) |
---|
217 | 214 | #define CPU_FTR_P9_TIDR LONG_ASM_CONST(0x0000800000000000) |
---|
218 | 215 | #define CPU_FTR_P9_TLBIE_ERAT_BUG LONG_ASM_CONST(0x0001000000000000) |
---|
| 216 | +#define CPU_FTR_P9_RADIX_PREFETCH_BUG LONG_ASM_CONST(0x0002000000000000) |
---|
| 217 | +#define CPU_FTR_ARCH_31 LONG_ASM_CONST(0x0004000000000000) |
---|
| 218 | +#define CPU_FTR_DAWR1 LONG_ASM_CONST(0x0008000000000000) |
---|
219 | 219 | |
---|
220 | 220 | #ifndef __ASSEMBLY__ |
---|
221 | 221 | |
---|
.. | .. |
---|
295 | 295 | #define CPU_FTR_MAYBE_CAN_NAP 0 |
---|
296 | 296 | #endif |
---|
297 | 297 | |
---|
298 | | -#define CPU_FTRS_PPC601 (CPU_FTR_COMMON | CPU_FTR_601 | \ |
---|
299 | | - CPU_FTR_COHERENT_ICACHE | CPU_FTR_UNIFIED_ID_CACHE | CPU_FTR_USE_RTC) |
---|
300 | 298 | #define CPU_FTRS_603 (CPU_FTR_COMMON | CPU_FTR_MAYBE_CAN_DOZE | \ |
---|
301 | | - CPU_FTR_MAYBE_CAN_NAP | CPU_FTR_PPC_LE) |
---|
| 299 | + CPU_FTR_MAYBE_CAN_NAP | CPU_FTR_PPC_LE | CPU_FTR_NOEXECUTE) |
---|
302 | 300 | #define CPU_FTRS_604 (CPU_FTR_COMMON | CPU_FTR_PPC_LE) |
---|
303 | 301 | #define CPU_FTRS_740_NOTAU (CPU_FTR_COMMON | \ |
---|
304 | 302 | CPU_FTR_MAYBE_CAN_DOZE | CPU_FTR_L2CR | \ |
---|
.. | .. |
---|
369 | 367 | CPU_FTR_MAYBE_CAN_NAP | CPU_FTR_L2CR | CPU_FTR_ALTIVEC_COMP | \ |
---|
370 | 368 | CPU_FTR_SPEC7450 | CPU_FTR_NAP_DISABLE_L2_PR | \ |
---|
371 | 369 | CPU_FTR_PPC_LE | CPU_FTR_NEED_PAIRED_STWCX) |
---|
372 | | -#define CPU_FTRS_82XX (CPU_FTR_COMMON | CPU_FTR_MAYBE_CAN_DOZE) |
---|
| 370 | +#define CPU_FTRS_82XX (CPU_FTR_COMMON | CPU_FTR_MAYBE_CAN_DOZE | CPU_FTR_NOEXECUTE) |
---|
373 | 371 | #define CPU_FTRS_G2_LE (CPU_FTR_COMMON | CPU_FTR_MAYBE_CAN_DOZE | \ |
---|
374 | | - CPU_FTR_MAYBE_CAN_NAP) |
---|
| 372 | + CPU_FTR_MAYBE_CAN_NAP | CPU_FTR_NOEXECUTE) |
---|
375 | 373 | #define CPU_FTRS_E300 (CPU_FTR_MAYBE_CAN_DOZE | \ |
---|
376 | 374 | CPU_FTR_MAYBE_CAN_NAP | \ |
---|
377 | | - CPU_FTR_COMMON) |
---|
| 375 | + CPU_FTR_COMMON | CPU_FTR_NOEXECUTE) |
---|
378 | 376 | #define CPU_FTRS_E300C2 (CPU_FTR_MAYBE_CAN_DOZE | \ |
---|
379 | 377 | CPU_FTR_MAYBE_CAN_NAP | \ |
---|
380 | | - CPU_FTR_COMMON | CPU_FTR_FPU_UNAVAILABLE) |
---|
| 378 | + CPU_FTR_COMMON | CPU_FTR_FPU_UNAVAILABLE | CPU_FTR_NOEXECUTE) |
---|
381 | 379 | #define CPU_FTRS_CLASSIC32 (CPU_FTR_COMMON) |
---|
382 | 380 | #define CPU_FTRS_8XX (CPU_FTR_NOEXECUTE) |
---|
383 | 381 | #define CPU_FTRS_40X (CPU_FTR_NODSISRALIGN | CPU_FTR_NOEXECUTE) |
---|
.. | .. |
---|
387 | 385 | #define CPU_FTRS_47X (CPU_FTRS_440x6) |
---|
388 | 386 | #define CPU_FTRS_E200 (CPU_FTR_SPE_COMP | \ |
---|
389 | 387 | CPU_FTR_NODSISRALIGN | CPU_FTR_COHERENT_ICACHE | \ |
---|
390 | | - CPU_FTR_UNIFIED_ID_CACHE | CPU_FTR_NOEXECUTE | \ |
---|
| 388 | + CPU_FTR_NOEXECUTE | \ |
---|
391 | 389 | CPU_FTR_DEBUG_LVL_EXC) |
---|
392 | 390 | #define CPU_FTRS_E500 (CPU_FTR_MAYBE_CAN_DOZE | \ |
---|
393 | 391 | CPU_FTR_SPE_COMP | CPU_FTR_MAYBE_CAN_NAP | CPU_FTR_NODSISRALIGN | \ |
---|
.. | .. |
---|
439 | 437 | CPU_FTR_DSCR | CPU_FTR_SAO | CPU_FTR_ASYM_SMT | \ |
---|
440 | 438 | CPU_FTR_STCX_CHECKS_ADDRESS | CPU_FTR_POPCNTB | CPU_FTR_POPCNTD | \ |
---|
441 | 439 | CPU_FTR_CFAR | CPU_FTR_HVMODE | \ |
---|
442 | | - CPU_FTR_VMX_COPY | CPU_FTR_HAS_PPR | CPU_FTR_DABRX | CPU_FTR_PKEY) |
---|
| 440 | + CPU_FTR_VMX_COPY | CPU_FTR_HAS_PPR | CPU_FTR_DABRX ) |
---|
443 | 441 | #define CPU_FTRS_POWER8 (CPU_FTR_LWSYNC | \ |
---|
444 | 442 | CPU_FTR_PPCAS_ARCH_V2 | CPU_FTR_CTRL | CPU_FTR_ARCH_206 |\ |
---|
445 | 443 | CPU_FTR_MMCRA | CPU_FTR_SMT | \ |
---|
.. | .. |
---|
449 | 447 | CPU_FTR_STCX_CHECKS_ADDRESS | CPU_FTR_POPCNTB | CPU_FTR_POPCNTD | \ |
---|
450 | 448 | CPU_FTR_CFAR | CPU_FTR_HVMODE | CPU_FTR_VMX_COPY | \ |
---|
451 | 449 | CPU_FTR_DBELL | CPU_FTR_HAS_PPR | CPU_FTR_DAWR | \ |
---|
452 | | - CPU_FTR_ARCH_207S | CPU_FTR_TM_COMP | CPU_FTR_PKEY) |
---|
| 450 | + CPU_FTR_ARCH_207S | CPU_FTR_TM_COMP ) |
---|
453 | 451 | #define CPU_FTRS_POWER8E (CPU_FTRS_POWER8 | CPU_FTR_PMAO_BUG) |
---|
454 | 452 | #define CPU_FTRS_POWER9 (CPU_FTR_LWSYNC | \ |
---|
455 | 453 | CPU_FTR_PPCAS_ARCH_V2 | CPU_FTR_CTRL | CPU_FTR_ARCH_206 |\ |
---|
.. | .. |
---|
460 | 458 | CPU_FTR_STCX_CHECKS_ADDRESS | CPU_FTR_POPCNTB | CPU_FTR_POPCNTD | \ |
---|
461 | 459 | CPU_FTR_CFAR | CPU_FTR_HVMODE | CPU_FTR_VMX_COPY | \ |
---|
462 | 460 | CPU_FTR_DBELL | CPU_FTR_HAS_PPR | CPU_FTR_ARCH_207S | \ |
---|
463 | | - CPU_FTR_TM_COMP | CPU_FTR_ARCH_300 | CPU_FTR_PKEY | \ |
---|
464 | | - CPU_FTR_P9_TLBIE_STQ_BUG | CPU_FTR_P9_TLBIE_ERAT_BUG | CPU_FTR_P9_TIDR) |
---|
465 | | -#define CPU_FTRS_POWER9_DD2_0 CPU_FTRS_POWER9 |
---|
466 | | -#define CPU_FTRS_POWER9_DD2_1 (CPU_FTRS_POWER9 | CPU_FTR_POWER9_DD2_1) |
---|
| 461 | + CPU_FTR_TM_COMP | CPU_FTR_ARCH_300 | CPU_FTR_P9_TLBIE_STQ_BUG | \ |
---|
| 462 | + CPU_FTR_P9_TLBIE_ERAT_BUG | CPU_FTR_P9_TIDR) |
---|
| 463 | +#define CPU_FTRS_POWER9_DD2_0 (CPU_FTRS_POWER9 | CPU_FTR_P9_RADIX_PREFETCH_BUG) |
---|
| 464 | +#define CPU_FTRS_POWER9_DD2_1 (CPU_FTRS_POWER9 | \ |
---|
| 465 | + CPU_FTR_P9_RADIX_PREFETCH_BUG | \ |
---|
| 466 | + CPU_FTR_POWER9_DD2_1) |
---|
467 | 467 | #define CPU_FTRS_POWER9_DD2_2 (CPU_FTRS_POWER9 | CPU_FTR_POWER9_DD2_1 | \ |
---|
468 | 468 | CPU_FTR_P9_TM_HV_ASSIST | \ |
---|
469 | 469 | CPU_FTR_P9_TM_XER_SO_BUG) |
---|
| 470 | +#define CPU_FTRS_POWER10 (CPU_FTR_LWSYNC | \ |
---|
| 471 | + CPU_FTR_PPCAS_ARCH_V2 | CPU_FTR_CTRL | CPU_FTR_ARCH_206 |\ |
---|
| 472 | + CPU_FTR_MMCRA | CPU_FTR_SMT | \ |
---|
| 473 | + CPU_FTR_COHERENT_ICACHE | \ |
---|
| 474 | + CPU_FTR_PURR | CPU_FTR_SPURR | CPU_FTR_REAL_LE | \ |
---|
| 475 | + CPU_FTR_DSCR | CPU_FTR_SAO | \ |
---|
| 476 | + CPU_FTR_STCX_CHECKS_ADDRESS | CPU_FTR_POPCNTB | CPU_FTR_POPCNTD | \ |
---|
| 477 | + CPU_FTR_CFAR | CPU_FTR_HVMODE | CPU_FTR_VMX_COPY | \ |
---|
| 478 | + CPU_FTR_DBELL | CPU_FTR_HAS_PPR | CPU_FTR_ARCH_207S | \ |
---|
| 479 | + CPU_FTR_ARCH_300 | CPU_FTR_ARCH_31 | \ |
---|
| 480 | + CPU_FTR_DAWR | CPU_FTR_DAWR1) |
---|
470 | 481 | #define CPU_FTRS_CELL (CPU_FTR_LWSYNC | \ |
---|
471 | 482 | CPU_FTR_PPCAS_ARCH_V2 | CPU_FTR_CTRL | \ |
---|
472 | 483 | CPU_FTR_ALTIVEC_COMP | CPU_FTR_MMCRA | CPU_FTR_SMT | \ |
---|
.. | .. |
---|
485 | 496 | #define CPU_FTRS_POSSIBLE \ |
---|
486 | 497 | (CPU_FTRS_POWER7 | CPU_FTRS_POWER8E | CPU_FTRS_POWER8 | \ |
---|
487 | 498 | CPU_FTR_ALTIVEC_COMP | CPU_FTR_VSX_COMP | CPU_FTRS_POWER9 | \ |
---|
488 | | - CPU_FTRS_POWER9_DD2_1 | CPU_FTRS_POWER9_DD2_2) |
---|
| 499 | + CPU_FTRS_POWER9_DD2_1 | CPU_FTRS_POWER9_DD2_2 | CPU_FTRS_POWER10) |
---|
489 | 500 | #else |
---|
490 | 501 | #define CPU_FTRS_POSSIBLE \ |
---|
491 | 502 | (CPU_FTRS_PPC970 | CPU_FTRS_POWER5 | \ |
---|
492 | 503 | CPU_FTRS_POWER6 | CPU_FTRS_POWER7 | CPU_FTRS_POWER8E | \ |
---|
493 | 504 | CPU_FTRS_POWER8 | CPU_FTRS_CELL | CPU_FTRS_PA6T | \ |
---|
494 | 505 | CPU_FTR_VSX_COMP | CPU_FTR_ALTIVEC_COMP | CPU_FTRS_POWER9 | \ |
---|
495 | | - CPU_FTRS_POWER9_DD2_1 | CPU_FTRS_POWER9_DD2_2) |
---|
| 506 | + CPU_FTRS_POWER9_DD2_1 | CPU_FTRS_POWER9_DD2_2 | CPU_FTRS_POWER10) |
---|
496 | 507 | #endif /* CONFIG_CPU_LITTLE_ENDIAN */ |
---|
497 | 508 | #endif |
---|
498 | 509 | #else |
---|
499 | 510 | enum { |
---|
500 | 511 | CPU_FTRS_POSSIBLE = |
---|
501 | 512 | #ifdef CONFIG_PPC_BOOK3S_32 |
---|
502 | | - CPU_FTRS_PPC601 | CPU_FTRS_603 | CPU_FTRS_604 | CPU_FTRS_740_NOTAU | |
---|
| 513 | + CPU_FTRS_603 | CPU_FTRS_604 | CPU_FTRS_740_NOTAU | |
---|
503 | 514 | CPU_FTRS_740 | CPU_FTRS_750 | CPU_FTRS_750FX1 | |
---|
504 | 515 | CPU_FTRS_750FX2 | CPU_FTRS_750FX | CPU_FTRS_750GX | |
---|
505 | 516 | CPU_FTRS_7400_NOTAU | CPU_FTRS_7400 | CPU_FTRS_7450_20 | |
---|
.. | .. |
---|
573 | 584 | enum { |
---|
574 | 585 | CPU_FTRS_ALWAYS = |
---|
575 | 586 | #ifdef CONFIG_PPC_BOOK3S_32 |
---|
576 | | - CPU_FTRS_PPC601 & CPU_FTRS_603 & CPU_FTRS_604 & CPU_FTRS_740_NOTAU & |
---|
| 587 | + CPU_FTRS_603 & CPU_FTRS_604 & CPU_FTRS_740_NOTAU & |
---|
577 | 588 | CPU_FTRS_740 & CPU_FTRS_750 & CPU_FTRS_750FX1 & |
---|
578 | 589 | CPU_FTRS_750FX2 & CPU_FTRS_750FX & CPU_FTRS_750GX & |
---|
579 | 590 | CPU_FTRS_7400_NOTAU & CPU_FTRS_7400 & CPU_FTRS_7450_20 & |
---|
.. | .. |
---|
606 | 617 | }; |
---|
607 | 618 | #endif /* __powerpc64__ */ |
---|
608 | 619 | |
---|
609 | | -#define HBP_NUM 1 |
---|
| 620 | +/* |
---|
| 621 | + * Maximum number of hw breakpoint supported on powerpc. Number of |
---|
| 622 | + * breakpoints supported by actual hw might be less than this, which |
---|
| 623 | + * is decided at run time in nr_wp_slots(). |
---|
| 624 | + */ |
---|
| 625 | +#define HBP_NUM_MAX 2 |
---|
610 | 626 | |
---|
611 | 627 | #endif /* !__ASSEMBLY__ */ |
---|
612 | 628 | |
---|