VirtualBox

Changeset 32960 in vbox for trunk/src/VBox


Ignore:
Timestamp:
Oct 6, 2010 4:59:56 PM (14 years ago)
Author:
vboxsync
Message:

PCI: bad typo in PCI address computation, now Windows boots fine with MCFG

Location:
trunk/src/VBox/Devices
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Devices/Bus/DevPciIch9.cpp

    r32951 r32960  
    193193    GCPhysAddr = GCPhysAddr - pGlobals->u64PciConfigMMioAddress;
    194194    pPciAddr->iBus          = (GCPhysAddr >> 20) & ((1<<8)       - 1);
    195     pPciAddr->iDeviceFunc   = (GCPhysAddr >> 15) & ((1<<(5+3))   - 1); // 5 bits - device, 3 bits - function
     195    pPciAddr->iDeviceFunc   = (GCPhysAddr >> 12) & ((1<<(5+3))   - 1); // 5 bits - device, 3 bits - function
    196196    pPciAddr->iRegister     = (GCPhysAddr >>  0) & ((1<<(6+4+2)) - 1); // 6 bits - register, 4 bits - extended register, 2 bits -Byte Enable
    197197}
     
    573573    uint32_t u32 = 0;
    574574
     575    Log2(("ich9pciMcfgMMIOWrite: %p(%d) \n", GCPhysAddr, cb));
     576
    575577    PCI_LOCK(pDevIns, VINF_IOM_HC_IOPORT_WRITE);
    576578
     
    604606    uint32_t    rv = 0xffffffff;
    605607
    606     PCI_LOCK(pDevIns, VINF_IOM_HC_IOPORT_WRITE);
     608    Log2(("ich9pciMcfgMMIORead: %p(%d) \n", GCPhysAddr, cb));
     609
     610    PCI_LOCK(pDevIns, VINF_IOM_HC_IOPORT_READ);
    607611
    608612    ich9pciPhysToPciAddr(pGlobals, GCPhysAddr, &aDest);
     
    22062210    if (pGlobals->u64PciConfigMMioAddress != 0)
    22072211    {
    2208         rc = PDMDevHlpMMIORegister(pDevIns, pGlobals->u64PciConfigMMioAddress, pGlobals->u64PciConfigMMioLength, pGlobals,
    2209                                    ich9pciMcfgMMIOWrite, ich9pciMcfgMMIORead, NULL, "MCFG ranges");
     2212        rc = PDMDevHlpMMIORegister(pDevIns,
     2213                                   pGlobals->u64PciConfigMMioAddress,
     2214                                   pGlobals->u64PciConfigMMioLength,
     2215                                   0,
     2216                                   ich9pciMcfgMMIOWrite,
     2217                                   ich9pciMcfgMMIORead,
     2218                                   NULL /* fill */,
     2219                                   "MCFG ranges");
    22102220        if (RT_FAILURE(rc))
    22112221        {
     
    22232233                                          "ich9pciMcfgMMIOWrite",
    22242234                                          "ich9pciMcfgMMIORead",
    2225                                           NULL);
     2235                                          NULL /* fill */);
    22262236             if (RT_FAILURE(rc))
    22272237             {
     
    22412251                                          "ich9pciMcfgMMIOWrite",
    22422252                                          "ich9pciMcfgMMIORead",
    2243                                           NULL);
     2253                                          NULL /* fill */);
    22442254             if (RT_FAILURE(rc))
    22452255             {
  • trunk/src/VBox/Devices/PC/DevAPIC.cpp

    r32935 r32960  
    14491449
    14501450    index = (addr >> 4) & 0xff;
    1451     addr -= (s->apicbase & ~0xfff);
    1452 
    1453     if (addr > 0xfff || (index == 0))
    1454     {
    1455         /* MSR area read, undefined result by spec */
    1456         Log(("APIC: MSR area read: %x\n", index));
    1457         return 0;
    1458     }
    14591451
    14601452    switch(index) {
     
    15421534#endif
    15431535
    1544     index = (addr >> 4) & 0xff; 
     1536    index = (addr >> 4) & 0xff;
    15451537
    15461538    switch(index) {
     
    28502842     */
    28512843    IoApicReg.u32Version  = PDM_IOAPICREG_VERSION;
    2852     IoApicReg.pfnSetIrqR3 = ioapicSetIrq;   
     2844    IoApicReg.pfnSetIrqR3 = ioapicSetIrq;
    28532845    IoApicReg.pszSetIrqRC = fGCEnabled ? "ioapicSetIrq" : NULL;
    28542846    IoApicReg.pszSetIrqR0 = fR0Enabled ? "ioapicSetIrq" : NULL;
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