Changeset 108702 in vbox for trunk/include
- Timestamp:
- Mar 21, 2025 11:27:14 PM (4 weeks ago)
- svn:sync-xref-src-repo-rev:
- 168119
- Location:
- trunk/include
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/VBox/vmm/cpumctx-armv8.h
r106567 r108702 169 169 typedef struct CPUMCTX 170 170 { 171 uint64_t uPadding0;172 171 /** The general purpose register array view. */ 173 172 CPUMCTXGREG aGRegs[31]; 173 CPUMCTXGREG uPadding0; 174 174 /** The NEON SIMD & FP register array view. */ 175 175 CPUMCTXVREG aVRegs[32]; 176 176 /** The stack registers (EL0, EL1). */ 177 CPUMCTXSYSREG aSpReg[2]; 177 CPUMCTXSYSREG aSpReg[2]; /**< @todo extend to 4 entries! */ 178 178 /** The program counter. */ 179 179 CPUMCTXSYSREG Pc; … … 234 234 CPUMCTXSYSREG TpIdrRoEl0; 235 235 /** The TPIDR_ELn registers. */ 236 CPUMCTXSYSREG aTpIdr[2]; 236 CPUMCTXSYSREG aTpIdr[2]; /**< @todo extend to 4 entries. */ 237 237 /** TheMDCCINT_EL1 register. */ 238 238 CPUMCTXSYSREG MDccInt; -
trunk/include/iprt/armv8.h
r107933 r108702 1428 1428 * @{ */ 1429 1429 /** Bit 0 - SS - Software step control bit. */ 1430 #define ARMV8_MDSCR_EL1_AARCH64_SS RT_BIT_64( 0)1430 #define ARMV8_MDSCR_EL1_AARCH64_SS RT_BIT_64(ARMV8_MDSCR_EL1_AARCH64_SS_BIT) 1431 1431 #define ARMV8_MDSCR_EL1_AARCH64_SS_BIT 0 1432 /** Bit 6 - ERR. */ 1433 #define ARMV8_MDSCR_EL1_AARCH64_ERR RT_BIT_64(ARMV8_MDSCR_EL1_AARCH64_ERR_BIT) 1434 #define ARMV8_MDSCR_EL1_AARCH64_ERR_BIT 6 1435 /** Bit 12 - TDCC. */ 1436 #define ARMV8_MDSCR_EL1_AARCH64_TDCC RT_BIT_64(ARMV8_MDSCR_EL1_AARCH64_TDCC_BIT) 1437 #define ARMV8_MDSCR_EL1_AARCH64_TDCC_BIT 12 1438 /** Bit 13 - KDE - Kernel Debugging Enabled. */ 1439 #define ARMV8_MDSCR_EL1_AARCH64_KDE RT_BIT_64(ARMV8_MDSCR_EL1_AARCH64_KDE_BIT) 1440 #define ARMV8_MDSCR_EL1_AARCH64_KDE_BIT 13 1441 /** Bit 14 - HDE. */ 1442 #define ARMV8_MDSCR_EL1_AARCH64_HDE RT_BIT_64(ARMV8_MDSCR_EL1_AARCH64_HDE_BIT) 1443 #define ARMV8_MDSCR_EL1_AARCH64_HDE_BIT 14 1444 /** Bit 15 - MDE. */ 1445 #define ARMV8_MDSCR_EL1_AARCH64_MDE RT_BIT_64(ARMV8_MDSCR_EL1_AARCH64_MDE_BIT) 1446 #define ARMV8_MDSCR_EL1_AARCH64_MDE_BIT 15 1447 /** Bit 19 - SC2. */ 1448 #define ARMV8_MDSCR_EL1_AARCH64_SC2 RT_BIT_64(ARMV8_MDSCR_EL1_AARCH64_SC2_BIT) 1449 #define ARMV8_MDSCR_EL1_AARCH64_SC2_BIT 19 1450 /** Bit 21 - TDA. */ 1451 #define ARMV8_MDSCR_EL1_AARCH64_TDA RT_BIT_64(ARMV8_MDSCR_EL1_AARCH64_TDA_BIT) 1452 #define ARMV8_MDSCR_EL1_AARCH64_TDA_BIT 21 1453 /** Bits 23:22 - INTdis. */ 1454 #define ARMV8_MDSCR_EL1_AARCH64_INTDIS_MASK UINT64_C(0x00c00000) 1455 #define ARMV8_MDSCR_EL1_AARCH64_INTDIS_SHIFT 22 1456 /** Bit 26 - TXU. */ 1457 #define ARMV8_MDSCR_EL1_AARCH64_TXU RT_BIT_64(ARMV8_MDSCR_EL1_AARCH64_TXU_BIT) 1458 #define ARMV8_MDSCR_EL1_AARCH64_TXU_BIT 26 1459 /** Bit 29 - TXfull. */ 1460 #define ARMV8_MDSCR_EL1_AARCH64_TXFULL RT_BIT_64(ARMV8_MDSCR_EL1_AARCH64_TXFULL_BIT) 1461 #define ARMV8_MDSCR_EL1_AARCH64_TXFULL_BIT 29 1462 /** Bit 30 - RXfull. */ 1463 #define ARMV8_MDSCR_EL1_AARCH64_RXFULL RT_BIT_64(ARMV8_MDSCR_EL1_AARCH64_RXFULL_BIT) 1464 #define ARMV8_MDSCR_EL1_AARCH64_RXFULL_BIT 30 1465 /** Bit 31 - TFO. */ 1466 #define ARMV8_MDSCR_EL1_AARCH64_TFO RT_BIT_64(ARMV8_MDSCR_EL1_AARCH64_TFO_BIT) 1467 #define ARMV8_MDSCR_EL1_AARCH64_TFO_BIT 31 1468 /** Bit 32 - EMBWE. */ 1469 #define ARMV8_MDSCR_EL1_AARCH64_EMBWE RT_BIT_64(ARMV8_MDSCR_EL1_AARCH64_EMBWE_BIT) 1470 #define ARMV8_MDSCR_EL1_AARCH64_EMBWE_BIT 32 1471 /** Bit 33 - TTA. */ 1472 #define ARMV8_MDSCR_EL1_AARCH64_TTA RT_BIT_64(ARMV8_MDSCR_EL1_AARCH64_TTA_BIT) 1473 #define ARMV8_MDSCR_EL1_AARCH64_TTA_BIT 33 1474 /** Bit 34 - EnSPM. */ 1475 #define ARMV8_MDSCR_EL1_AARCH64_ENSPM RT_BIT_64(ARMV8_MDSCR_EL1_AARCH64_ENSPM_BIT) 1476 #define ARMV8_MDSCR_EL1_AARCH64_ENSPM_BIT 34 1477 /** Bit 35 - EHBWE. */ 1478 #define ARMV8_MDSCR_EL1_AARCH64_EHBWE RT_BIT_64(ARMV8_MDSCR_EL1_AARCH64_EHBWE_BIT) 1479 #define ARMV8_MDSCR_EL1_AARCH64_EHBWE_BIT 35 1480 /** Bit 50 - EnSTEPOP. */ 1481 #define ARMV8_MDSCR_EL1_AARCH64_ENSTEPOP RT_BIT_64(ARMV8_MDSCR_EL1_AARCH64_ENSTEPOP_BIT) 1482 #define ARMV8_MDSCR_EL1_AARCH64_ENSTEPOP_BIT 50 1432 1483 /** @} */ 1433 1484 … … 2709 2760 #define ARMV8_SCTLR_EL1_CP15BEN RT_BIT_64(5) 2710 2761 /** Bit 6 - Non-aligned access enable. */ 2762 #define ARMV8_SCTLR_EL1_NAA RT_BIT_64(6) 2711 2763 #define ARMV8_SCTLR_EL1_nAA RT_BIT_64(6) 2712 2764 /** Bit 7 - IT disable, disables some uses of IT instructions at EL0 using AArch32. */ … … 2717 2769 #define ARMV8_SCTLR_EL1_UMA RT_BIT_64(9) 2718 2770 /** Bit 10 - Enable EL0 acccess to the CFP*, DVP* and CPP* instructions if FEAT_SPECRES is supported. */ 2719 #define ARMV8_SCTLR_EL1_EnRCTX RT_BIT_64(10) 2771 #define ARMV8_SCTLR_EL1_ENRCTX RT_BIT_64(10) 2772 #define ARMV8_SCTLR_EL1_EnRCTX ARMV8_SCTLR_EL1_ENRCTX 2720 2773 /** Bit 11 - Exception Exit is Context Synchronizing (FEAT_ExS required). */ 2721 2774 #define ARMV8_SCTLR_EL1_EOS RT_BIT_64(11) … … 2726 2779 2727 2780 2728 /** @name SCTLR_EL2 - AArch64 System Control Register (EL2) - 32-bit.2781 /** @name SCTLR_EL2 - AArch64 System Control Register (EL2). 2729 2782 * @{ */ 2730 2783 /** Bit 0 - MMU enable for EL2. */ … … 2736 2789 /** Bit 3 - SP alignment check enable. */ 2737 2790 #define ARMV8_SCTLR_EL2_SA RT_BIT_64(3) 2738 /* Bit 4 - 11 - Reserved. */ 2791 /** Bit 4 - SA0. */ 2792 #define ARMV8_SCTLR_EL2_SA0 RT_BIT_64(4) 2793 /** Bit 5 - CP15BEN. */ 2794 #define ARMV8_SCTLR_EL2_CP15BEN RT_BIT_64(5) 2795 /** Bit 6 - nAA. */ 2796 #define ARMV8_SCTLR_EL2_NAA RT_BIT_64(6) 2797 /** Bit 7 - IDT. */ 2798 #define ARMV8_SCTLR_EL2_IDT RT_BIT_64(7) 2799 /** Bit 8 - SED. */ 2800 #define ARMV8_SCTLR_EL2_SED RT_BIT_64(8) 2801 /* Bit 9 - RES0 (2024-12). */ 2802 /** Bit 10 - EnRCTX. */ 2803 #define ARMV8_SCTLR_EL2_ENRCTX RT_BIT_64(10) 2804 /** Bit 11 - EOS. */ 2805 #define ARMV8_SCTLR_EL2_EOS RT_BIT_64(11) 2739 2806 /** Bit 12 - Instruction cache enable. */ 2740 2807 #define ARMV8_SCTLR_EL2_I RT_BIT_64(12) 2741 /* Bit 13 - 18 - Reserved. */ 2808 /** Bit 13 - EnDB. */ 2809 #define ARMV8_SCTLR_EL2_ENDB RT_BIT_64(13) 2810 /** Bit 14 - DZE. */ 2811 #define ARMV8_SCTLR_EL2_DZE RT_BIT_64(14) 2812 /** Bit 15 - UCT. */ 2813 #define ARMV8_SCTLR_EL2_UCT RT_BIT_64(15) 2814 /** Bit 16 - nTWI. */ 2815 #define ARMV8_SCTLR_EL2_NTWI RT_BIT_64(16) 2816 /* Bit 17 - RES0 (2024-12). */ 2817 /** Bit 18 - nTWE. */ 2818 #define ARMV8_SCTLR_EL2_NTWE RT_BIT_64(18) 2742 2819 /** Bit 19 - Force treatment of all memory regions with write permissions as XN. */ 2743 2820 #define ARMV8_SCTLR_EL2_WXN RT_BIT_64(19) 2744 /* Bit 20 - 24 - Reserved. */ 2821 /** Bit 20 - TSCXT. */ 2822 #define ARMV8_SCTLR_EL2_TSCXT RT_BIT_64(20) 2823 /** Bit 21 - IESB. */ 2824 #define ARMV8_SCTLR_EL2_IESB RT_BIT_64(21) 2825 /** Bit 22 - EIS. */ 2826 #define ARMV8_SCTLR_EL2_EIS RT_BIT_64(22) 2827 /** Bit 23 - SPAN. */ 2828 #define ARMV8_SCTLR_EL2_SPAN RT_BIT_64(23) 2829 /** Bit 24 - E0E. */ 2830 #define ARMV8_SCTLR_EL2_E0E RT_BIT_64(24) 2745 2831 /** Bit 25 - Exception endianess - set means big endian, clear little endian. */ 2746 2832 #define ARMV8_SCTLR_EL2_EE RT_BIT_64(25) 2747 /* Bit 26 - 31 - Reserved. */ 2833 /** @todo Finish (lazy developer). */ 2834 /** @} */ 2835 2836 2837 /** @name HCR_EL2 - AArch64 Hypervisor Configuration Register (EL2). 2838 * @{ */ 2839 #define ARMV8_HCR_EL2_VM RT_BIT_64(0) 2840 #define ARMV8_HCR_EL2_SWIO RT_BIT_64(1) 2841 #define ARMV8_HCR_EL2_PTW RT_BIT_64(2) 2842 #define ARMV8_HCR_EL2_FMO RT_BIT_64(3) 2843 #define ARMV8_HCR_EL2_IMO RT_BIT_64(4) 2844 #define ARMV8_HCR_EL2_AMO RT_BIT_64(5) 2845 #define ARMV8_HCR_EL2_VF RT_BIT_64(6) 2846 #define ARMV8_HCR_EL2_VI RT_BIT_64(7) 2847 #define ARMV8_HCR_EL2_VSE RT_BIT_64(8) 2848 #define ARMV8_HCR_EL2_FB RT_BIT_64(9) 2849 #define ARMV8_HCR_EL2_BSU_MASK (RT_BIT_64(10) | RT_BIT_64(11)) 2850 #define ARMV8_HCR_EL2_DC RT_BIT_64(12) 2851 #define ARMV8_HCR_EL2_TWI RT_BIT_64(13) 2852 #define ARMV8_HCR_EL2_TWE RT_BIT_64(14) 2853 #define ARMV8_HCR_EL2_TID0 RT_BIT_64(15) 2854 #define ARMV8_HCR_EL2_TID1 RT_BIT_64(16) 2855 #define ARMV8_HCR_EL2_TID2 RT_BIT_64(17) 2856 #define ARMV8_HCR_EL2_TID3 RT_BIT_64(18) 2857 #define ARMV8_HCR_EL2_TSC RT_BIT_64(19) 2858 #define ARMV8_HCR_EL2_TIDCP RT_BIT_64(20) 2859 #define ARMV8_HCR_EL2_TACR RT_BIT_64(21) 2860 #define ARMV8_HCR_EL2_TSW RT_BIT_64(22) 2861 #define ARMV8_HCR_EL2_TDCP RT_BIT_64(23) 2862 #define ARMV8_HCR_EL2_TPU RT_BIT_64(24) 2863 #define ARMV8_HCR_EL2_TTLB RT_BIT_64(25) 2864 #define ARMV8_HCR_EL2_TVM RT_BIT_64(26) 2865 #define ARMV8_HCR_EL2_TGE RT_BIT_64(27) 2866 #define ARMV8_HCR_EL2_TDZ RT_BIT_64(28) 2867 #define ARMV8_HCR_EL2_HCD RT_BIT_64(29) 2868 #define ARMV8_HCR_EL2_TRVM RT_BIT_64(30) 2869 #define ARMV8_HCR_EL2_RW RT_BIT_64(31) 2870 #define ARMV8_HCR_EL2_CD RT_BIT_64(32) 2871 #define ARMV8_HCR_EL2_IC RT_BIT_64(33) 2872 #define ARMV8_HCR_EL2_E2H RT_BIT_64(34) 2873 #define ARMV8_HCR_EL2_TLOR RT_BIT_64(35) 2874 #define ARMV8_HCR_EL2_TERR RT_BIT_64(36) 2875 #define ARMV8_HCR_EL2_TEA RT_BIT_64(37) 2876 #define ARMV8_HCR_EL2_MIOCNCE RT_BIT_64(38) 2877 #define ARMV8_HCR_EL2_TME RT_BIT_64(39) 2878 #define ARMV8_HCR_EL2_APK RT_BIT_64(40) 2879 #define ARMV8_HCR_EL2_API RT_BIT_64(41) 2880 #define ARMV8_HCR_EL2_NV RT_BIT_64(42) 2881 #define ARMV8_HCR_EL2_NV1 RT_BIT_64(43) 2882 #define ARMV8_HCR_EL2_AT RT_BIT_64(44) 2883 #define ARMV8_HCR_EL2_NV2 RT_BIT_64(45) 2884 #define ARMV8_HCR_EL2_FWB RT_BIT_64(46) 2885 #define ARMV8_HCR_EL2_FIEN RT_BIT_64(47) 2886 #define ARMV8_HCR_EL2_GPF RT_BIT_64(48) 2887 #define ARMV8_HCR_EL2_TID4 RT_BIT_64(49) 2888 #define ARMV8_HCR_EL2_TICAB RT_BIT_64(50) 2889 #define ARMV8_HCR_EL2_AMVOFFEN RT_BIT_64(51) 2890 #define ARMV8_HCR_EL2_TOCU RT_BIT_64(52) 2891 #define ARMV8_HCR_EL2_ENSCXT RT_BIT_64(53) 2892 #define ARMV8_HCR_EL2_TTLBIS RT_BIT_64(54) 2893 #define ARMV8_HCR_EL2_TTLBOS RT_BIT_64(55) 2894 #define ARMV8_HCR_EL2_ATA RT_BIT_64(56) 2895 #define ARMV8_HCR_EL2_DCT RT_BIT_64(57) 2896 #define ARMV8_HCR_EL2_TID5 RT_BIT_64(58) 2897 #define ARMV8_HCR_EL2_TWEDEN RT_BIT_64(59) 2898 #define ARMV8_HCR_EL2_TWEDL_MASK UINT64_C(0xf000000000000000) 2899 /** @} */ 2900 2901 2902 /** @name MDCR_EL2 - AArch64 Monitor Debug Configuration Register (EL2). 2903 * @{ */ 2904 #define ARMV8_MDCR_EL2_HPMN_MASK UINT64_C(0x1f) 2905 #define ARMV8_MDCR_EL2_TPMCR RT_BIT_64(5) 2906 #define ARMV8_MDCR_EL2_TPM RT_BIT_64(6) 2907 #define ARMV8_MDCR_EL2_HPME RT_BIT_64(7) 2908 #define ARMV8_MDCR_EL2_TDE RT_BIT_64(8) 2909 #define ARMV8_MDCR_EL2_TDA RT_BIT_64(9) 2910 #define ARMV8_MDCR_EL2_TDOSA RT_BIT_64(10) 2911 #define ARMV8_MDCR_EL2_TDRA RT_BIT_64(11) 2912 #define ARMV8_MDCR_EL2_E2PB_MASK (RT_BIT_64(12) | RT_BIT_64(13)) 2913 #define ARMV8_MDCR_EL2_TPMS RT_BIT_64(14) 2914 #define ARMV8_MDCR_EL2_ENSPM RT_BIT_64(15) 2915 /* Bit 16 - RES0 (2024-12) */ 2916 #define ARMV8_MDCR_EL2_HPMD RT_BIT_64(17) 2917 /* Bit 18 - RES0 (2024-12) */ 2918 #define ARMV8_MDCR_EL2_TTRF RT_BIT_64(19) 2919 /* Bits 22:20 - RES0 (2024-12) */ 2920 #define ARMV8_MDCR_EL2_HCCD RT_BIT_64(23) 2921 #define ARMV8_MDCR_EL2_E2TB_MASK (RT_BIT_64(24) | RT_BIT_64(25)) 2922 #define ARMV8_MDCR_EL2_HLP RT_BIT_64(26) 2923 #define ARMV8_MDCR_EL2_TDCC RT_BIT_64(27) 2924 #define ARMV8_MDCR_EL2_MTPME RT_BIT_64(28) 2925 #define ARMV8_MDCR_EL2_HPMFZO RT_BIT_64(29) 2926 #define ARMV8_MDCR_EL2_PMSSE_MASK (RT_BIT_64(30) | RT_BIT_64(31)) 2927 /* Bits 35:32 - RES0 (2024-12) */ 2928 #define ARMV8_MDCR_EL2_HPMFZS RT_BIT_64(36) 2929 /* Bits 39:37 - RES0 (2024-12) */ 2930 #define ARMV8_MDCR_EL2_PMEE_MASK (RT_BIT_64(40) | RT_BIT_64(41)) 2931 /* Bit 42 - RES0 (2024-12) */ 2932 #define ARMV8_MDCR_EL2_EBWE RT_BIT_64(43) 2933 /* Bits 49:44 - RES0 (2024-12) */ 2934 #define ARMV8_MDCR_EL2_ENSTEPOP RT_BIT_64(50) 2935 /* Bits 63:51 - RES0 (2024-12) */ 2748 2936 /** @} */ 2749 2937
Note:
See TracChangeset
for help on using the changeset viewer.