VirtualBox

Ignore:
Timestamp:
Mar 10, 2025 8:24:03 AM (6 weeks ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
167874
Message:

VMM/GIC: bugref:10404 Fixed register offset typo for GICD_ICFGRn fixes and ignore writes to ICC_AP0R[0-3] and ICC_AP1R[0-3] registers.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/VMMAll/GICAll.cpp

    r108485 r108486  
    23122312                     /*| GIC_DIST_REG_TYPER_NMI*/             /** @todo Support non-maskable interrupts */
    23132313                     /*| GIC_DIST_REG_TYPER_SECURITY_EXTN */  /** @todo Support dual security states. */
    2314                      /*| GIC_DIST_REG_TYPER_MBIS */           /** @todo Support message-based interrupts */
     2314                     | (pGicDev->fMbi ? GIC_DIST_REG_TYPER_MBIS : 0)
    23152315                     /*| GIC_DIST_REG_TYPER_LPIS */           /** @todo Support LPIs */
    23162316                     | (pGicDev->fRangeSel ? GIC_DIST_REG_TYPER_RSS : 0)
     
    23792379            AssertReleaseFailed();
    23802380            break;
     2381#if 0
    23812382        case GIC_DIST_REG_ICFGRn_OFF_START: /* Only 32 lines for now. */
    23822383            AssertReleaseFailed();
    23832384            break;
     2385#endif
    23842386        case GIC_DIST_REG_IGRPMODRn_OFF_START: /* Only 32 lines for now. */
    23852387            AssertReleaseFailed();
     
    25882590     */
    25892591    {
    2590         if (offReg - GIC_DIST_REG_ICFGRn_OFF_START + cbReg < GIC_DIST_REG_ICFGRn_RANGE_SIZE)
     2592        if (offReg - GIC_DIST_REG_ICFGRn_OFF_START < GIC_DIST_REG_ICFGRn_RANGE_SIZE)
    25912593        {
    25922594            uint16_t const idxReg = (offReg - GIC_DIST_REG_ICFGRn_OFF_START) / cbReg;
     
    36543656            break;
    36553657        case ARMV8_AARCH64_SYSREG_ICC_AP0R0_EL1:
    3656             AssertReleaseFailed();
    3657             break;
    36583658        case ARMV8_AARCH64_SYSREG_ICC_AP0R1_EL1:
    3659             AssertReleaseFailed();
    3660             break;
    36613659        case ARMV8_AARCH64_SYSREG_ICC_AP0R2_EL1:
    3662             AssertReleaseFailed();
    3663             break;
    36643660        case ARMV8_AARCH64_SYSREG_ICC_AP0R3_EL1:
    3665             AssertReleaseFailed();
    3666             break;
    36673661        case ARMV8_AARCH64_SYSREG_ICC_AP1R0_EL1:
    3668             AssertReleaseFailed();
    3669             break;
    36703662        case ARMV8_AARCH64_SYSREG_ICC_AP1R1_EL1:
    3671             AssertReleaseFailed();
    3672             break;
    36733663        case ARMV8_AARCH64_SYSREG_ICC_AP1R2_EL1:
    3674             AssertReleaseFailed();
    3675             break;
    36763664        case ARMV8_AARCH64_SYSREG_ICC_AP1R3_EL1:
    3677             AssertReleaseFailed();
     3665            /* Writes ignored, well behaving guest would write all 0s or the last read value of the register. */
    36783666            break;
    36793667        case ARMV8_AARCH64_SYSREG_ICC_NMIAR1_EL1:
Note: See TracChangeset for help on using the changeset viewer.

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