|
1 |
| -/* $OpenBSD: armreg.h,v 1.23 2022/11/08 14:01:13 kettenis Exp $ */ |
| 1 | +/* $OpenBSD: armreg.h,v 1.24 2022/11/24 14:36:07 kettenis Exp $ */ |
2 | 2 | /*-
|
3 | 3 | * Copyright (c) 2013, 2014 Andrew Turner
|
4 | 4 | * Copyright (c) 2015 The FreeBSD Foundation
|
|
476 | 476 | #define ID_AA64MMFR1_XNX_IMPL (0x1 << ID_AA64MMFR1_XNX_SHIFT)
|
477 | 477 |
|
478 | 478 | /* ID_AA64PFR0_EL1 */
|
479 |
| -#define ID_AA64PFR0_MASK 0xff0000000fffffffULL |
| 479 | +#define ID_AA64PFR0_MASK 0xff0fffffffffffffULL |
480 | 480 | #define ID_AA64PFR0_EL0_SHIFT 0
|
481 | 481 | #define ID_AA64PFR0_EL0_MASK (0xf << ID_AA64PFR0_EL0_SHIFT)
|
482 | 482 | #define ID_AA64PFR0_EL0(x) ((x) & ID_AA64PFR0_EL0_MASK)
|
|
515 | 515 | #define ID_AA64PFR0_GIC(x) ((x) & ID_AA64PFR0_GIC_MASK)
|
516 | 516 | #define ID_AA64PFR0_GIC_CPUIF_NONE (0x0 << ID_AA64PFR0_GIC_SHIFT)
|
517 | 517 | #define ID_AA64PFR0_GIC_CPUIF_EN (0x1 << ID_AA64PFR0_GIC_SHIFT)
|
| 518 | +#define ID_AA64PFR0_RAS_SHIFT 28 |
| 519 | +#define ID_AA64PFR0_RAS_MASK (0xfULL << ID_AA64PFR0_RAS_SHIFT) |
| 520 | +#define ID_AA64PFR0_RAS(x) ((x) & ID_AA64PFR0_RAS_MASK) |
| 521 | +#define ID_AA64PFR0_RAS_NONE (0x0ULL << ID_AA64PFR0_RAS_SHIFT) |
| 522 | +#define ID_AA64PFR0_RAS_IMPL (0x1ULL << ID_AA64PFR0_RAS_SHIFT) |
| 523 | +#define ID_AA64PFR0_RAS_IMPL_V1P1 (0x2ULL << ID_AA64PFR0_RAS_SHIFT) |
| 524 | +#define ID_AA64PFR0_SVE_SHIFT 32 |
| 525 | +#define ID_AA64PFR0_SVE_MASK (0xfULL << ID_AA64PFR0_SVE_SHIFT) |
| 526 | +#define ID_AA64PFR0_SVE(x) ((x) & ID_AA64PFR0_SVE_MASK) |
| 527 | +#define ID_AA64PFR0_SVE_NONE (0x0ULL << ID_AA64PFR0_SVE_SHIFT) |
| 528 | +#define ID_AA64PFR0_SVE_IMPL (0x1ULL << ID_AA64PFR0_SVE_SHIFT) |
| 529 | +#define ID_AA64PFR0_SEL2_SHIFT 36 |
| 530 | +#define ID_AA64PFR0_SEL2_MASK (0xfULL << ID_AA64PFR0_SEL2_SHIFT) |
| 531 | +#define ID_AA64PFR0_SEL2(x) ((x) & ID_AA64PFR0_SEL2_MASK) |
| 532 | +#define ID_AA64PFR0_SEL2_NONE (0x0ULL << ID_AA64PFR0_SEL2_SHIFT) |
| 533 | +#define ID_AA64PFR0_SEL2_IMPL (0x1ULL << ID_AA64PFR0_SEL2_SHIFT) |
| 534 | +#define ID_AA64PFR0_MPAM_SHIFT 40 |
| 535 | +#define ID_AA64PFR0_MPAM_MASK (0xfULL << ID_AA64PFR0_MPAM_SHIFT) |
| 536 | +#define ID_AA64PFR0_MPAM(x) ((x) & ID_AA64PFR0_MPAM_MASK) |
| 537 | +#define ID_AA64PFR0_MPAM_NONE (0x0ULL << ID_AA64PFR0_MPAM_SHIFT) |
| 538 | +#define ID_AA64PFR0_MPAM_IMPL (0x1ULL << ID_AA64PFR0_MPAM_SHIFT) |
| 539 | +#define ID_AA64PFR0_AMU_SHIFT 44 |
| 540 | +#define ID_AA64PFR0_AMU_MASK (0xfULL << ID_AA64PFR0_AMU_SHIFT) |
| 541 | +#define ID_AA64PFR0_AMU(x) ((x) & ID_AA64PFR0_AMU_MASK) |
| 542 | +#define ID_AA64PFR0_AMU_NONE (0x0ULL << ID_AA64PFR0_AMU_SHIFT) |
| 543 | +#define ID_AA64PFR0_AMU_IMPL (0x1ULL << ID_AA64PFR0_AMU_SHIFT) |
518 | 544 | #define ID_AA64PFR0_DIT_SHIFT 48
|
519 | 545 | #define ID_AA64PFR0_DIT_MASK (0xfULL << ID_AA64PFR0_DIT_SHIFT)
|
520 | 546 | #define ID_AA64PFR0_DIT(x) ((x) & ID_AA64PFR0_DIT_MASK)
|
|
532 | 558 | #define ID_AA64PFR0_CSV3_UNKNOWN (0x0ULL << ID_AA64PFR0_CSV3_SHIFT)
|
533 | 559 | #define ID_AA64PFR0_CSV3_IMPL (0x1ULL << ID_AA64PFR0_CSV3_SHIFT)
|
534 | 560 |
|
| 561 | +/* ID_AA64PFR1_EL1 */ |
| 562 | +#define ID_AA64PFR1_MASK 0x000000000000ffffULL |
| 563 | +#define ID_AA64PFR1_BT_SHIFT 0 |
| 564 | +#define ID_AA64PFR1_BT_MASK (0xf << ID_AA64PFR1_BT_SHIFT) |
| 565 | +#define ID_AA64PFR1_BT(x) ((x) & ID_AA64PFR1_BT_MASK) |
| 566 | +#define ID_AA64PFR1_BT_NONE (0 << ID_AA64PFR1_BT_SHIFT) |
| 567 | +#define ID_AA64PFR1_BT_IMPL (1 << ID_AA64PFR1_BT_SHIFT) |
| 568 | +#define ID_AA64PFR1_SBSS_SHIFT 4 |
| 569 | +#define ID_AA64PFR1_SBSS_MASK (0xf << ID_AA64PFR1_SBSS_SHIFT) |
| 570 | +#define ID_AA64PFR1_SBSS(x) ((x) & ID_AA64PFR1_SBSS_MASK) |
| 571 | +#define ID_AA64PFR1_SBSS_NONE (0 << ID_AA64PFR1_SBSS_SHIFT) |
| 572 | +#define ID_AA64PFR1_SBSS_PSTATE (1 << ID_AA64PFR1_SBSS_SHIFT) |
| 573 | +#define ID_AA64PFR1_SBSS_PSTATE_MSR (2 << ID_AA64PFR1_SBSS_SHIFT) |
| 574 | +#define ID_AA64PFR1_MTE_SHIFT 8 |
| 575 | +#define ID_AA64PFR1_MTE_MASK (0xf << ID_AA64PFR1_MTE_SHIFT) |
| 576 | +#define ID_AA64PFR1_MTE(x) ((x) & ID_AA64PFR1_MTE_MASK) |
| 577 | +#define ID_AA64PFR1_MTE_NONE (0 << ID_AA64PFR1_MTE_SHIFT) |
| 578 | +#define ID_AA64PFR1_MTE_IMPL (1 << ID_AA64PFR1_MTE_SHIFT) |
| 579 | +#define ID_AA64PFR1_RAS_FRAC_SHIFT 12 |
| 580 | +#define ID_AA64PFR1_RAS_FRAC_MASK (0xf << ID_AA64PFR1_RAS_FRAC_SHIFT) |
| 581 | +#define ID_AA64PFR1_RAS_FRAC(x) ((x) & ID_AA64PFR1_RAS_FRAC_MASK) |
| 582 | +#define ID_AA64PFR1_RAS_FRAC_NONE (0 << ID_AA64PFR1_RAS_FRAC_SHIFT) |
| 583 | +#define ID_AA64PFR1_RAS_FRAC_IMPL (1 << ID_AA64PFR1_RAS_FRAC_SHIFT) |
| 584 | + |
535 | 585 | /* MAIR_EL1 - Memory Attribute Indirection Register */
|
536 | 586 | #define MAIR_ATTR_MASK(idx) (0xff << ((n)* 8))
|
537 | 587 | #define MAIR_ATTR(attr, idx) ((attr) << ((idx) * 8))
|
|
0 commit comments