VirtualBox

Changeset 108824 in vbox for trunk/src/VBox/VMM/VMMAll


Ignore:
Timestamp:
Apr 2, 2025 7:12:26 AM (5 weeks ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
168270
Message:

VMM/GIC: bugref:10877 GITS work-in-progress. LPI config table work.

File:
1 edited

Legend:

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

    r108779 r108824  
    23192319            break;
    23202320        case GIC_REDIST_REG_CTLR_OFF:
    2321             *puValue = GIC_REDIST_REG_CTLR_CES_SET(1);
     2321            *puValue = pGicDev->fEnableLpis ? GIC_DIST_REG_CTLR_ENABLE_LPI : 0
     2322                     | GIC_REDIST_REG_CTLR_CES_SET(1);
     2323            break;
     2324        case GIC_REDIST_REG_PROPBASER_OFF:
     2325            *puValue = pGicDev->uLpiConfigBaseReg.s.Lo;
     2326            break;
     2327        case GIC_REDIST_REG_PROPBASER_OFF + 4:
     2328            *puValue = pGicDev->uLpiConfigBaseReg.s.Hi;
    23222329            break;
    23232330        default:
     
    24382445{
    24392446    VMCPU_ASSERT_EMT(pVCpu);
    2440     RT_NOREF(pDevIns, pVCpu, uValue);
     2447    RT_NOREF(pVCpu, uValue);
    24412448
    24422449    VBOXSTRICTRC rcStrict = VINF_SUCCESS;
     2450    PGICDEV      pGicDev  = PDMDEVINS_2_DATA(pDevIns, PGICDEV);
    24432451    switch (offReg)
    24442452    {
    24452453        case GIC_REDIST_REG_WAKER_OFF:
    24462454            Assert(uValue == 0);
     2455            break;
     2456        case GIC_REDIST_REG_PROPBASER_OFF:
     2457            pGicDev->uLpiConfigBaseReg.s.Lo = uValue & RT_LO_U32(GIC_REDIST_REG_PROPBASER_RW_MASK);
     2458            break;
     2459        case GIC_REDIST_REG_PROPBASER_OFF + 4:
     2460            pGicDev->uLpiConfigBaseReg.s.Hi = uValue & RT_HI_U32(GIC_REDIST_REG_PROPBASER_RW_MASK);
    24472461            break;
    24482462        default:
     
    30613075    PGICDEV  pGicDev  = PDMDEVINS_2_DATA(pDevIns, PGICDEV);
    30623076
     3077    /* Distributor. */
    30633078    RT_ZERO(pGicDev->bmIntrGroup);
    30643079    RT_ZERO(pGicDev->bmIntrConfig);
     
    30723087    pGicDev->fIntrGroup1Enabled = false;
    30733088    pGicDev->fAffRoutingEnabled = true; /* GICv2 backwards compatibility is not implemented, so this is RA1/WI. */
     3089
     3090    /* LPIs. */
    30743091    RT_ZERO(pGicDev->bmLpiPending);
    30753092    RT_ZERO(pGicDev->abLpiConfig);
    3076 
     3093    pGicDev->uLpiConfigBaseReg.u = 0;
     3094    pGicDev->fEnableLpis = false;
     3095
     3096    /* GITS. */
    30773097    PGITSDEV pGitsDev = &pGicDev->Gits;
    30783098    gitsInit(pGitsDev);
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