VirtualBox

Changeset 65594 in vbox for trunk/src/VBox/Devices


Ignore:
Timestamp:
Feb 2, 2017 5:19:11 PM (8 years ago)
Author:
vboxsync
Message:

ACPI: properly determine PciPref64 for bigger RAM sizes; that window will now always end at 16TB-1 and only MIN+LEN is calculated dynamically

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

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Devices/PC/DevACPI.cpp

    r65576 r65594  
    31363136    const uint64_t offRamHole = _4G - cbRamHole;
    31373137    if (pThis->fPciPref64Enabled)
    3138         pThis->u64PciPref64 = pThis->u64RamSize  < _4G ? _4G : RT_ALIGN_64(pThis->u64RamSize, _1G); /* MEM4 */
     3138    {
     3139        /* Activate MEM4 */
     3140        if (offRamHole >= pThis->u64RamSize)
     3141            pThis->u64PciPref64 = _4G;
     3142        else
     3143            pThis->u64PciPref64 = RT_ALIGN_64(pThis->u64RamSize + offRamHole, _1G);
     3144    }
    31393145    uint64_t cbRamLow = offRamHole < pThis->u64RamSize ? offRamHole : pThis->u64RamSize;
    31403146    if (cbRamLow > UINT32_C(0xffe00000)) /* See MEM3. */
  • trunk/src/VBox/Devices/PC/vbox.dsl

    r65590 r65594  
    15771577                    ReadWrite,
    15781578                    0x0000000000000000,       // _GRA: Granularity.
    1579                     0x0000000100000000,       // _MIN: Min address, 4GB, will be overwritten.
    1580                     0x00000080ffffffff,       // _MAX: Max possible address, will be overwritten.
     1579                    0x0000000100000000,       // _MIN: Min address, def. 4GB, will be overwritten.
     1580                    0x00000fffffffffff,       // _MAX: Max possible address, 16TB-1, fixed.
    15811581                    0x0000000000000000,       // _TRA: Translation
    1582                     0x0000008000000000,       // _LEN: Range length (def. 512G, calculated dynamically)
     1582                    0x00000fff00000000,       // _LEN: Range length (calculated from _MIN)
    15831583                    ,                         // ResourceSourceIndex: Optional field left blank
    15841584                    ,                         // ResourceSource:      Optional field left blank
     
    16011601                    CreateQwordField (TOM, \_SB.PCI0.MEM4._LEN, TM4L)
    16021602
    1603                     Store (0x10000000, Local1)           // 16TB in units of 64KB
    16041603                    Multiply (PMEM, 0x10000, TM4N)       // PMEM in units of 64KB
    1605                     Multiply (Local1, 0x10000, TM4L)
    1606                     Subtract (Add (TM4N, TM4L), 1, TM4X) // MAX = MIN + LEN - 1
     1604                    Add (Subtract (TM4X, TM4N), 1, TM4L) // determine LEN, MAX is already there
    16071605
    16081606                    ConcatenateResTemplate (CRS, TOM, Local2)
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