VirtualBox

Changeset 99956 in vbox for trunk/include


Ignore:
Timestamp:
May 24, 2023 11:39:15 AM (21 months ago)
Author:
vboxsync
Message:

VMM/CPUM-armv8: Implement OSDLR_EL1, OSLAR_EL1 and OSLSR_EL1 accessed by Linux guests, bugref:10387

Location:
trunk/include
Files:
3 edited

Legend:

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

    r99576 r99956  
    6868    /** Read from a GICv3 PE ICC system register. */
    6969    kCpumSysRegRdFn_GicV3Icc,
     70    /** Read from the OSLSR_EL1 syste register. */
     71    kCpumSysRegRdFn_OslsrEl1,
    7072
    7173    /** End of valid system register read function indexes. */
     
    9294    /** Write to a GICv3 PE ICC system register. */
    9395    kCpumSysRegWrFn_GicV3Icc,
     96    /** Write to the OSLAR_EL1 syste register. */
     97    kCpumSysRegWrFn_OslarEl1,
    9498
    9599    /** End of valid system register write function indexes. */
  • trunk/include/VBox/vmm/cpumctx-armv8.h

    r99379 r99956  
    157157    uint32_t        fPadding0;
    158158
     159    /** OS lock status accessed through OSLAR_EL1 and OSLSR_EL1. */
     160    bool            fOsLck;
     161
     162    uint8_t         afPadding1[7];
     163
    159164    /** Externalized state tracker, CPUMCTX_EXTRN_XXX. */
    160165    uint64_t        fExtrn;
    161166
    162     uint64_t        au64Padding1[2];
     167    uint64_t        au64Padding2[1];
    163168} CPUMCTX;
    164169
  • trunk/include/iprt/armv8.h

    r99739 r99956  
    185185/** @name System register IDs.
    186186 * @{ */
    187 /** OSLAR_EL1 register - RW. */
     187/** OSLAR_EL1 register - WO. */
    188188#define ARMV8_AARCH64_SYSREG_OSLAR_EL1              ARMV8_AARCH64_SYSREG_ID_CREATE(2, 0, 1, 0, 4)
    189 /** OSLSR_EL1 register - RW. */
     189/** OSLSR_EL1 register - RO. */
    190190#define ARMV8_AARCH64_SYSREG_OSLSR_EL1              ARMV8_AARCH64_SYSREG_ID_CREATE(2, 0, 1, 1, 4)
    191191/** OSDLR_EL1 register - RW. */
     
    10681068/** @} */
    10691069
     1070
    10701071/** @name ICC_IGRPEN1_EL1 - Interrupt Controller Interrupt Group 1 Enable Register (EL1)
    10711072 * @{ */
     
    10741075#define ARMV8_ICC_IGRPEN1_EL1_AARCH64_ENABLE_BIT                0
    10751076/** @} */
    1076 
    10771077
    10781078
     
    10911091
    10921092
     1093/** @name OSLAR_EL1 - OS Lock Access Register.
     1094 * @{ */
     1095/** Bit 0 - The OS Lock status bit. */
     1096#define ARMV8_OSLAR_EL1_AARCH64_OSLK                            RT_BIT_64(0)
     1097#define ARMV8_OSLAR_EL1_AARCH64_OSLK_BIT                        0
     1098/** @} */
     1099
     1100
     1101/** @name OSLSR_EL1 - OS Lock Status Register.
     1102 * @{ */
     1103/** Bit 0 - OSLM[0] Bit 0 of OS Lock model implemented. */
     1104#define ARMV8_OSLSR_EL1_AARCH64_OSLM0                           RT_BIT_64(0)
     1105#define ARMV8_OSLSR_EL1_AARCH64_OSLM0_BIT                       0
     1106/** Bit 1 - The OS Lock status bit. */
     1107#define ARMV8_OSLSR_EL1_AARCH64_OSLK                            RT_BIT_64(1)
     1108#define ARMV8_OSLSR_EL1_AARCH64_OSLK_BIT                        1
     1109/** Bit 2 - Not 32-bit access. */
     1110#define ARMV8_OSLSR_EL1_AARCH64_NTT                             RT_BIT_64(2)
     1111#define ARMV8_OSLSR_EL1_AARCH64_NTT_BIT                         2
     1112/** Bit 0 - OSLM[1] Bit 1 of OS Lock model implemented. */
     1113#define ARMV8_OSLSR_EL1_AARCH64_OSLM1                           RT_BIT_64(3)
     1114#define ARMV8_OSLSR_EL1_AARCH64_OSLM1_BIT                       3
     1115/** @} */
     1116
     1117
    10931118/** @} */
    10941119
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