VirtualBox

Changeset 108918 in vbox


Ignore:
Timestamp:
Apr 9, 2025 12:32:57 PM (11 days ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
168401
Message:

VMM/GIC: bugref:10877 GIC ITS, initialize type and size of ITS table (DTE or ITE?) as read-only bits.

File:
1 edited

Legend:

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

    r108914 r108918  
    316316        {
    317317            if (cb == 8)
    318                 pGitsDev->aItsTableRegs[idxReg].u = uValue;
     318                pGitsDev->aItsTableRegs[idxReg].u = uValue & GITS_CTRL_REG_BASER_RW_MASK;
    319319            else
    320                 pGitsDev->aItsTableRegs[idxReg].s.Lo = uValue;
     320                pGitsDev->aItsTableRegs[idxReg].s.Lo = uValue & RT_LO_U32(GITS_CTRL_REG_BASER_RW_MASK);
    321321        }
    322322        else
    323323        {
    324324            Assert(cb == 4);
    325             pGitsDev->aItsTableRegs[idxReg].s.Hi = uValue;
     325            pGitsDev->aItsTableRegs[idxReg].s.Hi = uValue & RT_HI_U32(GITS_CTRL_REG_BASER_RW_MASK);
    326326        }
    327327        return;
     
    411411    Assert(RT_ELEMENTS(pGitsDev->auCtes) >= RT_BF_GET(pGitsDev->uTypeReg.u, GITS_BF_CTRL_REG_TYPER_HCC));
    412412    RT_ZERO(pGitsDev->aItsTableRegs);
    413     //pGitsDev->aItsTableRegs[0].u = RT_BF_MAKE(GITS_BF_CTRL_REG_BASER_ENTRY_SIZE, )
    414 
    415     pGitsDev->uCmdBaseReg.u = 0;
    416     pGitsDev->uCmdReadReg   = 0;
    417     pGitsDev->uCmdWriteReg  = 0;
     413
     414    pGitsDev->aItsTableRegs[0].u = RT_BF_MAKE(GITS_BF_CTRL_REG_BASER_ENTRY_SIZE, GITS_ITE_SIZE - 1)
     415                                 | RT_BF_MAKE(GITS_BF_CTRL_REG_BASER_TYPE,       GITS_BASER_TYPE_DEVICES)
     416                                 | RT_BF_MAKE(GITS_BF_CTRL_REG_BASER_VALID,      1);
     417
     418    pGitsDev->uCmdBaseReg.u   = 0;
     419    pGitsDev->uCmdReadReg     = 0;
     420    pGitsDev->uCmdWriteReg    = 0;
    418421    RT_ZERO(pGitsDev->auCtes);
    419422
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