Changeset 99733 in vbox
- Timestamp:
- May 10, 2023 5:26:48 PM (19 months ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/iprt/armv8.h
r99711 r99733 396 396 /** ICC_IGRPEN1_EL1 register - RW. */ 397 397 #define ARMV8_AARCH64_SYSREG_ICC_IGRPEN1_EL1 ARMV8_AARCH64_SYSREG_ID_CREATE(3, 0, 12, 12, 7) 398 399 /** CNTV_CTL_EL0 register - RW. */ 400 #define ARMV8_AARCH64_SYSREG_CNTV_CTL_EL0 ARMV8_AARCH64_SYSREG_ID_CREATE(3, 3, 14, 3, 1) 398 401 /** @} */ 399 402 … … 990 993 991 994 995 /** @name ICC_PMR_EL1 - 996 * @{ */ 997 /** Bit 0 - 7 - Priority - The priority mask level for the CPU interface. */ 998 #define ARMV8_ICC_PMR_EL1_AARCH64_PRIORITY UINT64_C(0xff) 999 #define ARMV8_ICC_PMR_EL1_AARCH64_PRIORITY_GET(a_Pmr) ((a_Pmr) & ARMV8_ICC_PMR_EL1_AARCH64_PRIORITY) 1000 #define ARMV8_ICC_PMR_EL1_AARCH64_PRIORITY_SET(a_Prio) ((a_Prio) & ARMV8_ICC_PMR_EL1_AARCH64_PRIORITY) 1001 /** @} */ 1002 1003 1004 /** @name ICC_BPR0_EL1 - The group priority for Group 0 interrupts. 1005 * @{ */ 1006 /** Bit 0 - 2 - BinaryPoint - Controls how the 8-bit interrupt priority field is split into a group priority and subpriority field. */ 1007 #define ARMV8_ICC_BPR0_EL1_AARCH64_BINARYPOINT (RT_BIT_64(0) | RT_BIT_64(1) | RT_BIT_64(2)) 1008 #define ARMV8_ICC_BPR0_EL1_AARCH64_BINARYPOINT_GET(a_Bpr0) ((a_Bpr0) & ARMV8_ICC_BPR0_EL1_AARCH64_BINARYPOINT) 1009 #define ARMV8_ICC_BPR0_EL1_AARCH64_BINARYPOINT_SET(a_BinaryPt) ((a_BinaryPt) & ARMV8_ICC_BPR0_EL1_AARCH64_BINARYPOINT) 1010 /** @} */ 1011 1012 1013 /** @name ICC_BPR1_EL1 - The group priority for Group 1 interrupts. 1014 * @{ */ 1015 /** Bit 0 - 2 - BinaryPoint - Controls how the 8-bit interrupt priority field is split into a group priority and subpriority field. */ 1016 #define ARMV8_ICC_BPR1_EL1_AARCH64_BINARYPOINT (RT_BIT_64(0) | RT_BIT_64(1) | RT_BIT_64(2)) 1017 #define ARMV8_ICC_BPR1_EL1_AARCH64_BINARYPOINT_GET(a_Bpr1) ((a_Bpr1) & ARMV8_ICC_BPR1_EL1_AARCH64_BINARYPOINT) 1018 #define ARMV8_ICC_BPR1_EL1_AARCH64_BINARYPOINT_SET(a_BinaryPt) ((a_BinaryPt) & ARMV8_ICC_BPR1_EL1_AARCH64_BINARYPOINT) 1019 /** @} */ 1020 1021 1022 /** @name ICC_CTLR_EL1 - Interrupt Controller Control Register (EL1) 1023 * @{ */ 1024 /** Bit 0 - Common Binary Pointer Register - RW. */ 1025 #define ARMV8_ICC_CTLR_EL1_AARCH64_CBPR RT_BIT_64(0) 1026 #define ARMV8_ICC_CTLR_EL1_AARCH64_CBPR_BIT 0 1027 /** Bit 1 - EOI mode for current security state, when set ICC_DIR_EL1 provides interrupt deactivation functionality - RW. */ 1028 #define ARMV8_ICC_CTLR_EL1_AARCH64_EOIMODE RT_BIT_64(1) 1029 #define ARMV8_ICC_CTLR_EL1_AARCH64_EOIMODE_BIT 1 1030 /** Bit 7 - Priority Mask Hint Enable - RW (under circumstances). */ 1031 #define ARMV8_ICC_CTLR_EL1_AARCH64_PMHE RT_BIT_64(7) 1032 #define ARMV8_ICC_CTLR_EL1_AARCH64_PMHE_BIT 7 1033 /** Bit 8 - 10 - Priority bits - RO. */ 1034 #define ARMV8_ICC_CTLR_EL1_AARCH64_PRIBITS (RT_BIT_64(8) | RT_BIT_64(9) | RT_BIT_64(10)) 1035 #define ARMV8_ICC_CTLR_EL1_AARCH64_PRIBITS_SET(a_PriBits) (((a_PriBits) << 8) & ARMV8_ICC_CTLR_EL1_AARCH64_PRIBITS) 1036 /** Bit 11 - 13 - Interrupt identifier bits - RO. */ 1037 #define ARMV8_ICC_CTLR_EL1_AARCH64_IDBITS (RT_BIT_64(11) | RT_BIT_64(12) | RT_BIT_64(13)) 1038 #define ARMV8_ICC_CTLR_EL1_AARCH64_IDBITS_SET(a_IdBits) (((a_IdBits) << 11) & ARMV8_ICC_CTLR_EL1_AARCH64_IDBITS) 1039 /** INTIDS are 16-bit wide. */ 1040 # define ARMV8_ICC_CTLR_EL1_AARCH64_IDBITS_16BITS 0 1041 /** INTIDS are 24-bit wide. */ 1042 # define ARMV8_ICC_CTLR_EL1_AARCH64_IDBITS_24BITS 1 1043 /** Bit 14 - SEI Supported - RO. */ 1044 #define ARMV8_ICC_CTLR_EL1_AARCH64_SEIS RT_BIT_64(14) 1045 #define ARMV8_ICC_CTLR_EL1_AARCH64_SEIS_BIT 14 1046 /** Bit 15 - Affinity 3 Valid - RO. */ 1047 #define ARMV8_ICC_CTLR_EL1_AARCH64_A3V RT_BIT_64(15) 1048 #define ARMV8_ICC_CTLR_EL1_AARCH64_A3V_BIT 15 1049 /** Bit 18 - Range Selector Support - RO. */ 1050 #define ARMV8_ICC_CTLR_EL1_AARCH64_RSS RT_BIT_64(18) 1051 #define ARMV8_ICC_CTLR_EL1_AARCH64_RSS_BIT 18 1052 /** Bit 19 - Extended INTID range supported - RO. */ 1053 #define ARMV8_ICC_CTLR_EL1_AARCH64_EXTRANGE RT_BIT_64(19) 1054 #define ARMV8_ICC_CTLR_EL1_AARCH64_EXTRANGE_BIT 19 1055 /** All RW bits. */ 1056 #define ARMV8_ICC_CTLR_EL1_RW (ARMV8_ICC_CTLR_EL1_AARCH64_CBPR | ARMV8_ICC_CTLR_EL1_AARCH64_EOIMODE | ARMV8_ICC_CTLR_EL1_AARCH64_PMHE) 1057 /** All RO bits (including Res0). */ 1058 #define ARMV8_ICC_CTLR_EL1_RO ~ARMV8_ICC_CTLR_EL1_RW 1059 /** @} */ 1060 1061 1062 /** @name ICC_IGRPEN0_EL1 - Interrupt Controller Interrupt Group 0 Enable Register (EL1) 1063 * @{ */ 1064 /** Bit 0 - Enables Group 0 interrupts for the current Security state. */ 1065 #define ARMV8_ICC_IGRPEN0_EL1_AARCH64_ENABLE RT_BIT_64(0) 1066 #define ARMV8_ICC_IGRPEN0_EL1_AARCH64_ENABLE_BIT 0 1067 /** @} */ 1068 1069 /** @name ICC_IGRPEN1_EL1 - Interrupt Controller Interrupt Group 1 Enable Register (EL1) 1070 * @{ */ 1071 /** Bit 0 - Enables Group 1 interrupts for the current Security state. */ 1072 #define ARMV8_ICC_IGRPEN1_EL1_AARCH64_ENABLE RT_BIT_64(0) 1073 #define ARMV8_ICC_IGRPEN1_EL1_AARCH64_ENABLE_BIT 0 1074 /** @} */ 1075 1076 1077 1078 /** @name CNTV_CTL_EL0 - Counter-timer Virtual Timer Control register. 1079 * @{ */ 1080 /** Bit 0 - Enables the timer. */ 1081 #define ARMV8_CNTV_CTL_EL0_AARCH64_ENABLE RT_BIT_64(0) 1082 #define ARMV8_CNTV_CTL_EL0_AARCH64_ENABLE_BIT 0 1083 /** Bit 1 - Timer interrupt mask bit. */ 1084 #define ARMV8_CNTV_CTL_EL0_AARCH64_IMASK RT_BIT_64(1) 1085 #define ARMV8_CNTV_CTL_EL0_AARCH64_IMASK_BIT 1 1086 /** Bit 2 - Timer status bit. */ 1087 #define ARMV8_CNTV_CTL_EL0_AARCH64_ISTATUS RT_BIT_64(2) 1088 #define ARMV8_CNTV_CTL_EL0_AARCH64_ISTATUS_BIT 2 1089 /** @} */ 1090 1091 992 1092 /** @} */ 993 1093
Note:
See TracChangeset
for help on using the changeset viewer.