VirtualBox

儲存庫 vbox 的更動 101496


忽略:
時間撮記:
2023-10-18 上午11:27:55 (16 月 以前)
作者:
vboxsync
svn:sync-xref-src-repo-rev:
159568
訊息:

VMM,Main: Don't hardcode the vTimer interrupt number in the NEM backend but let the configuration constructor decide the value so it matches the FDT, bugref:10390 bugref:10528

位置:
trunk/src/VBox
檔案:
修改 4 筆資料

圖例:

未更動
新增
刪除
  • trunk/src/VBox/Main/src-client/ConsoleImplConfigArmV8.cpp

    r101483 r101496  
    200200        InsertConfigInteger(pRoot, "TimerMillies",         10);
    201201
     202        /*
     203         * NEM
     204         */
     205        PCFGMNODE pNEM;
     206        InsertConfigNode(pRoot, "NEM", &pNEM);
     207
    202208        uint32_t idPHandleIntCtrl = RTFdtPHandleAllocate(hFdt);
    203209        Assert(idPHandleIntCtrl != UINT32_MAX);
     
    234240
    235241        /* Configure the timer and clock. */
     242        InsertConfigInteger(pNEM, "VTimerInterrupt", 0xb);
    236243        vrc = RTFdtNodeAdd(hFdt, "timer");                                                  VRC();
    237244        vrc = RTFdtNodePropertyAddCellsU32(hFdt, "interrupts", 12,
     
    263270
    264271        vrc = RTFdtNodeFinalize(hFdt);                                                      VRC();
    265 
    266         /*
    267          * NEM
    268          */
    269         PCFGMNODE pNEM;
    270         InsertConfigNode(pRoot, "NEM", &pNEM);
    271272
    272273        /*
  • trunk/src/VBox/VMM/VMMR3/NEMR3.cpp

    r99370 r101496  
    103103                                  "|VmxLbr"
    104104#endif
     105#if defined(VBOX_VMM_TARGET_ARMV8)
     106                                  "|VTimerInterrupt"
     107#endif
    105108                                  ,
    106109                                  "" /* pszValidNodes */, "NEM" /* pszWho */, 0 /* uInstance */);
     
    136139        pVCpu->nem.s.fTrapXcptGpForLovelyMesaDrv = f;
    137140    }
     141
     142#if defined(VBOX_VMM_TARGET_ARMV8)
     143    /** @cfgm{/NEM/VTimerInterrupt, uint32_t}
     144     * Specifies the interrupt identifier for the VTimer. */
     145    rc = CFGMR3QueryU32(pCfgNem, "VTimerInterrupt", &pVM->nem.s.u32GicPpiVTimer);
     146    AssertLogRelRCReturn(rc, rc);
     147#endif
    138148
    139149    return VINF_SUCCESS;
  • trunk/src/VBox/VMM/VMMR3/NEMR3Native-darwin-armv8.cpp

    r101234 r101496  
    7070*   Defined Constants And Macros                                                                                                 *
    7171*********************************************************************************************************************************/
    72 
    73 
    74 /** @todo The vTimer PPI for the virt platform, make it configurable. */
    75 #define NEM_DARWIN_VTIMER_GIC_PPI_IRQ           11
    7672
    7773
     
    14121408            TMCpuSetVTimerNextActivation(pVCpu, UINT64_MAX);
    14131409            pVCpu->nem.s.fVTimerActivated = true;
    1414             return GICPpiSet(pVCpu, NEM_DARWIN_VTIMER_GIC_PPI_IRQ, true /*fAsserted*/);
     1410            return GICPpiSet(pVCpu, pVM->nem.s.u32GicPpiVTimer, true /*fAsserted*/);
    14151411        }
    14161412        default:
     
    14771473        {
    14781474            /* Clear the interrupt. */
    1479             GICPpiSet(pVCpu, NEM_DARWIN_VTIMER_GIC_PPI_IRQ, false /*fAsserted*/);
     1475            GICPpiSet(pVCpu, pVM->nem.s.u32GicPpiVTimer, false /*fAsserted*/);
    14801476
    14811477            pVCpu->nem.s.fVTimerActivated = false;
  • trunk/src/VBox/VMM/include/NEMInternal.h

    r101236 r101496  
    220220     *  us to use the debug execution loop. */
    221221    bool                        fUseDebugLoop;
     222
     223#if defined(VBOX_VMM_TARGET_ARMV8)
     224    /** The PPI interrupt number of the vTimer. */
     225    uint32_t                    u32GicPpiVTimer;
     226#endif
    222227
    223228#if defined(RT_OS_LINUX)
注意: 瀏覽 TracChangeset 來幫助您使用更動檢視器

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