VirtualBox

Changeset 105686 in vbox for trunk/include


Ignore:
Timestamp:
Aug 15, 2024 12:36:59 PM (5 months ago)
Author:
vboxsync
Message:

VMMArm/CPUM: Add the additional state required to support EL2 in the guest, bugref:10747

Location:
trunk/include/VBox/vmm
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/VBox/vmm/cpumctx-armv8.h

    r100726 r105686  
    236236    CPUMCTXSYSREG       MDccInt;
    237237
     238    /** @name Hypervisor (EL2) support.
     239     * @{ */
     240    /** The CNTHCTL_EL2 register. */
     241    CPUMCTXSYSREG       CntHCtlEl2;
     242    /** The CNTP_CTL_EL2 register. */
     243    CPUMCTXSYSREG       CntHpCtlEl2;
     244    /** The CNTP_CVAL_EL2 register. */
     245    CPUMCTXSYSREG       CntHpCValEl2;
     246    /** The CNTP_TVAL_EL2 register. */
     247    CPUMCTXSYSREG       CntHpTValEl2;
     248    /** The CNTVOFF_EL2 register. */
     249    CPUMCTXSYSREG       CntVOffEl2;
     250    /** The CPTR_EL2 register. */
     251    CPUMCTXSYSREG       CptrEl2;
     252    /** The ELR_EL2 register. */
     253    CPUMCTXSYSREG       ElrEl2;
     254    /** The ESR_EL2 register. */
     255    CPUMCTXSYSREG       EsrEl2;
     256    /** The FAR_EL2 register. */
     257    CPUMCTXSYSREG       FarEl2;
     258    /** The HCR_EL2 register. */
     259    CPUMCTXSYSREG       HcrEl2;
     260    /** The HPFAR_EL2 register. */
     261    CPUMCTXSYSREG       HpFarEl2;
     262    /** The MAIR_EL2 register. */
     263    CPUMCTXSYSREG       MairEl2;
     264    /** The MDCR_EL2 register. */
     265    CPUMCTXSYSREG       MdcrEl2;
     266    /** The SCTLR_EL2 register. */
     267    CPUMCTXSYSREG       SctlrEl2;
     268    /** The SPSR_EL2 register. */
     269    CPUMCTXSYSREG       SpsrEl2;
     270    /** The SP_EL2 register. */
     271    CPUMCTXSYSREG       SpEl2;
     272    /** The TCR_EL2 register. */
     273    CPUMCTXSYSREG       TcrEl2;
     274    /** The TPIDR_EL2 register. */
     275    CPUMCTXSYSREG       TpidrEl2;
     276    /** The TTBR0_EL2 register. */
     277    CPUMCTXSYSREG       Ttbr0El2;
     278    /** The TTBR1_EL2 register. */
     279    CPUMCTXSYSREG       Ttbr1El2;
     280    /** The VBAR_EL2 register. */
     281    CPUMCTXSYSREG       VBarEl2;
     282    /** The VMPIDR_EL2 register. */
     283    CPUMCTXSYSREG       VMpidrEl2;
     284    /** The VPIDR_EL2 register. */
     285    CPUMCTXSYSREG       VPidrEl2;
     286    /** The VTCR_EL2 register. */
     287    CPUMCTXSYSREG       VTcrEl2;
     288    /** The VTTBR_EL2 register. */
     289    CPUMCTXSYSREG       VTtbrEl2;
     290    /** @} */
     291
    238292    /** Floating point control register. */
    239293    uint64_t            fpcr;
     
    258312    uint64_t            CntvCValEl0;
    259313
    260     uint64_t            au64Padding2[4];
     314    uint64_t            au64Padding2[3];
    261315} CPUMCTX;
    262316
     
    323377/** PAuth key system registers are kept externally. */
    324378#define CPUMCTX_EXTRN_SYSREG_PAUTH_KEYS         UINT64_C(0x0000000000020000)
     379/** EL2 system registers are kept externally. */
     380#define CPUMCTX_EXTRN_SYSREG_EL2                UINT64_C(0x0000000000040000)
    325381/** Various system registers (rarely accessed) are kept externally. */
    326 #define CPUMCTX_EXTRN_SYSREG_MISC               UINT64_C(0x0000000000040000)
     382#define CPUMCTX_EXTRN_SYSREG_MISC               UINT64_C(0x0000000000080000)
    327383
    328384/** Mask of bits the keepers can use for state tracking. */
  • trunk/include/VBox/vmm/dbgf.h

    r105072 r105686  
    21562156    DBGFREG_ARMV8_SP_EL1,
    21572157    DBGFREG_ARMV8_SPSR_EL1,
    2158     DBGFREG_ARMV8_SPSR_EL2,
    2159     DBGFREG_ARMV8_PSTATE = DBGFREG_ARMV8_SPSR_EL2,
     2158    DBGFREG_ARMV8_PSTATE,
    21602159    DBGFREG_ARMV8_SCTLR_EL1,
    21612160    DBGFREG_ARMV8_TCR_EL1,
     
    21652164    DBGFREG_ARMV8_VBAR_EL1,
    21662165
    2167     DBGFREG_ARMV8_LAST = DBGFREG_ARMV8_VBAR_EL1,
     2166    /** EL2 system registers: */
     2167    DBGFREG_ARMV8_CNTHCTL_EL2,
     2168    DBGFREG_ARMV8_CNTHP_CTL_EL2,
     2169    DBGFREG_ARMV8_CNTHP_CVAL_EL2,
     2170    DBGFREG_ARMV8_CNTHP_TVAL_EL2,
     2171    DBGFREG_ARMV8_CNTVOFF_EL2,
     2172    DBGFREG_ARMV8_CPTR_EL2,
     2173    DBGFREG_ARMV8_ELR_EL2,
     2174    DBGFREG_ARMV8_ESR_EL2,
     2175    DBGFREG_ARMV8_FAR_EL2,
     2176    DBGFREG_ARMV8_HCR_EL2,
     2177    DBGFREG_ARMV8_HPFAR_EL2,
     2178    DBGFREG_ARMV8_MAIR_EL2,
     2179    DBGFREG_ARMV8_MDCR_EL2,
     2180    DBGFREG_ARMV8_SCTLR_EL2,
     2181    DBGFREG_ARMV8_SPSR_EL2,
     2182    DBGFREG_ARMV8_SP_EL2,
     2183    DBGFREG_ARMV8_TCR_EL2,
     2184    DBGFREG_ARMV8_TPIDR_EL2,
     2185    DBGFREG_ARMV8_TTBR0_EL2,
     2186    DBGFREG_ARMV8_TTBR1_EL2,
     2187    DBGFREG_ARMV8_VBAR_EL2,
     2188    DBGFREG_ARMV8_VMPIDR_EL2,
     2189    DBGFREG_ARMV8_VPIDR_EL2,
     2190    DBGFREG_ARMV8_VTCR_EL2,
     2191    DBGFREG_ARMV8_VTTBR_EL2,
     2192    DBGFREG_ARMV8_LAST = DBGFREG_ARMV8_VTTBR_EL2,
    21682193    /** @} */
    21692194
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette