VirtualBox

Changeset 67668 in vbox for trunk/src/VBox/VMM/VMMR3


Ignore:
Timestamp:
Jun 28, 2017 4:28:34 PM (7 years ago)
Author:
vboxsync
Message:

PDM: rip out the entire FakePCIBIOS support, no longer triggered from here
Devices/Bus: register magic port to trigger FakePCIBIOS
BIOS: disable the unneeded function for PCI resource/IRQ initialization (only partially used anyway) and use the magic port to trigger FakePCIBIOS

Location:
trunk/src/VBox/VMM/VMMR3
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/VMMR3/PDM.cpp

    r67583 r67668  
    16451645        }
    16461646
    1647     /*
    1648      * Run Fake PCI BIOS after reset.
    1649      */
    1650     if (fAtReset && pVM->pdm.s.aPciBuses[0].pDevInsR3)
    1651     {
    1652         pdmLock(pVM);
    1653         int rc = pVM->pdm.s.aPciBuses[0].pfnFakePCIBIOSR3(pVM->pdm.s.aPciBuses[0].pDevInsR3);
    1654         pdmUnlock(pVM);
    1655         if (RT_FAILURE(rc))
    1656             AssertMsgFailed(("PCI BIOS fake failed rc=%Rrc\n", rc));
    1657     }
    1658 
    1659 
    16601647    LogFlow(("PDMR3MemSetup: returns void\n"));
    16611648}
  • trunk/src/VBox/VMM/VMMR3/PDMDevHlp.cpp

    r65338 r67668  
    26132613#if PDM_DEVHLPR3_VERSION >= PDM_VERSION_MAKE_PP(0xffe7, 20, 0)
    26142614    LogFlow(("pdmR3DevHlp_PCIBusRegister: caller='%s'/%d: pPciBusReg=%p:{.u32Version=%#x, .pfnRegisterR3=%p, .pfnIORegionRegisterR3=%p, "
    2615              ".pfnSetIrqR3=%p, .pfnFakePCIBIOSR3=%p, .pszSetIrqRC=%p:{%s}, .pszSetIrqR0=%p:{%s}} ppPciHlpR3=%p piBus=%p\n",
     2615             ".pfnSetIrqR3=%p, .pszSetIrqRC=%p:{%s}, .pszSetIrqR0=%p:{%s}} ppPciHlpR3=%p piBus=%p\n",
    26162616             pDevIns->pReg->szName, pDevIns->iInstance, pPciBusReg, pPciBusReg->u32Version, pPciBusReg->pfnRegisterR3,
    2617              pPciBusReg->pfnIORegionRegisterR3, pPciBusReg->pfnSetIrqR3, pPciBusReg->pfnFakePCIBIOSR3,
    2618              pPciBusReg->pszSetIrqRC, pPciBusReg->pszSetIrqRC, pPciBusReg->pszSetIrqR0, pPciBusReg->pszSetIrqR0,
    2619              ppPciHlpR3, piBus));
     2617             pPciBusReg->pfnIORegionRegisterR3, pPciBusReg->pfnSetIrqR3, pPciBusReg->pszSetIrqRC, pPciBusReg->pszSetIrqRC,
     2618             pPciBusReg->pszSetIrqR0, pPciBusReg->pszSetIrqR0, ppPciHlpR3, piBus));
    26202619#else
    26212620    LogFlow(("pdmR3DevHlp_PCIBusRegister: caller='%s'/%d: pPciBusReg=%p:{.u32Version=%#x, .pfnRegisterR3=%p, .pfnIORegionRegisterR3=%p, "
    2622              ".pfnSetIrqR3=%p, .pfnFakePCIBIOSR3=%p, .pszSetIrqRC=%p:{%s}, .pszSetIrqR0=%p:{%s}} ppPciHlpR3=%p\n",
     2621             ".pfnSetIrqR3=%p, .pszSetIrqRC=%p:{%s}, .pszSetIrqR0=%p:{%s}} ppPciHlpR3=%p\n",
    26232622             pDevIns->pReg->szName, pDevIns->iInstance, pPciBusReg, pPciBusReg->u32Version, pPciBusReg->pfnRegisterR3,
    2624              pPciBusReg->pfnIORegionRegisterR3, pPciBusReg->pfnSetIrqR3, pPciBusReg->pfnFakePCIBIOSR3,
    2625              pPciBusReg->pszSetIrqRC, pPciBusReg->pszSetIrqRC, pPciBusReg->pszSetIrqR0, pPciBusReg->pszSetIrqR0, ppPciHlpR3));
     2623             pPciBusReg->pfnIORegionRegisterR3, pPciBusReg->pfnSetIrqR3, pPciBusReg->pszSetIrqRC, pPciBusReg->pszSetIrqRC,
     2624             pPciBusReg->pszSetIrqR0, pPciBusReg->pszSetIrqR0, ppPciHlpR3));
    26262625#endif
    26272626
     
    26372636    if (    !pPciBusReg->pfnRegisterR3
    26382637        ||  !pPciBusReg->pfnIORegionRegisterR3
    2639         ||  !pPciBusReg->pfnSetIrqR3
    2640         ||  (!pPciBusReg->pfnFakePCIBIOSR3 && !pVM->pdm.s.aPciBuses[0].pDevInsR3)) /* Only the first bus needs to do the BIOS work. */
     2638        ||  !pPciBusReg->pfnSetIrqR3)
    26412639    {
    26422640        Assert(pPciBusReg->pfnRegisterR3);
    26432641        Assert(pPciBusReg->pfnIORegionRegisterR3);
    26442642        Assert(pPciBusReg->pfnSetIrqR3);
    2645         Assert(pPciBusReg->pfnFakePCIBIOSR3);
    26462643        LogFlow(("pdmR3DevHlp_PCIBusRegister: caller='%s'/%d: returns %Rrc (R3 callbacks)\n", pDevIns->pReg->szName, pDevIns->iInstance, VERR_INVALID_PARAMETER));
    26472644        return VERR_INVALID_PARAMETER;
     
    27382735    pPciBus->pfnSetConfigCallbacksR3 = pPciBusReg->pfnSetConfigCallbacksR3;
    27392736    pPciBus->pfnSetIrqR3             = pPciBusReg->pfnSetIrqR3;
    2740     pPciBus->pfnFakePCIBIOSR3        = pPciBusReg->pfnFakePCIBIOSR3;
    27412737
    27422738    Log(("PDM: Registered PCI bus device '%s'/%d pDevIns=%p\n", pDevIns->pReg->szName, pDevIns->iInstance, pDevIns));
  • trunk/src/VBox/VMM/VMMR3/PDMDevice.cpp

    r64626 r67668  
    424424
    425425    /*
    426      *
    427      * PCI BIOS Fake and Init Complete.
    428      *
    429      */
    430     if (pVM->pdm.s.aPciBuses[0].pDevInsR3)
    431     {
    432         pdmLock(pVM);
    433         rc = pVM->pdm.s.aPciBuses[0].pfnFakePCIBIOSR3(pVM->pdm.s.aPciBuses[0].pDevInsR3);
    434         pdmUnlock(pVM);
    435         if (RT_FAILURE(rc))
    436         {
    437             AssertMsgFailed(("PCI BIOS fake failed rc=%Rrc\n", rc));
    438             return rc;
    439         }
    440     }
    441 
     426     * Iterate thru the device instances and work the callback.
     427     */
    442428    for (PPDMDEVINS pDevIns = pVM->pdm.s.pDevInstances; pDevIns; pDevIns = pDevIns->Internal.s.pNextR3)
    443429    {
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