Changeset 65843 in vbox for trunk/src/VBox
- Timestamp:
- Feb 22, 2017 7:23:56 PM (8 years ago)
- Location:
- trunk/src/VBox
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/PC/DevACPI.cpp
r65711 r65843 171 171 SYSTEM_INFO_INDEX_SERIAL3_IOBASE = 7, 172 172 SYSTEM_INFO_INDEX_SERIAL3_IRQ = 8, 173 SYSTEM_INFO_INDEX_PREF64_MEMORY_ START= 9,173 SYSTEM_INFO_INDEX_PREF64_MEMORY_MIN = 9, 174 174 SYSTEM_INFO_INDEX_RTC_STATUS = 10, 175 175 SYSTEM_INFO_INDEX_CPU_LOCKED = 11, /**< Contains a flag indicating whether the CPU is locked or not */ … … 192 192 SYSTEM_INFO_INDEX_PARALLEL1_IOBASE = 28, 193 193 SYSTEM_INFO_INDEX_PARALLEL1_IRQ = 29, 194 SYSTEM_INFO_INDEX_END = 30, 194 SYSTEM_INFO_INDEX_PREF64_MEMORY_MAX = 30, 195 SYSTEM_INFO_INDEX_END = 31, 195 196 SYSTEM_INFO_INDEX_INVALID = 0x80, 196 197 SYSTEM_INFO_INDEX_VALID = 0x200 … … 309 310 uint64_t u64RamSize; 310 311 /** Offset of the 64-bit prefetchable memory window. */ 311 uint64_t u64PciPref64; 312 uint64_t u64PciPref64Min; 313 /** Limit of the 64-bit prefetchable memory window. */ 314 uint64_t u64PciPref64Max; 312 315 /** The number of bytes below 4GB. */ 313 316 uint32_t cbRamLow; … … 1326 1329 break; 1327 1330 1328 case SYSTEM_INFO_INDEX_PREF64_MEMORY_START: 1329 *pu32 = pThis->u64PciPref64 >> 16; /* 64KB units */ 1330 Assert(((uint64_t)*pu32 << 16) == pThis->u64PciPref64); 1331 case SYSTEM_INFO_INDEX_PREF64_MEMORY_MIN: 1332 *pu32 = pThis->u64PciPref64Min >> 16; /* 64KB units */ 1333 Assert(((uint64_t)*pu32 << 16) == pThis->u64PciPref64Min); 1334 break; 1335 1336 case SYSTEM_INFO_INDEX_PREF64_MEMORY_MAX: 1337 *pu32 = pThis->u64PciPref64Max >> 16; /* 64KB units */ 1338 Assert(((uint64_t)*pu32 << 16) == pThis->u64PciPref64Max); 1339 LogRel(("MAX\n")); 1331 1340 break; 1332 1341 … … 3139 3148 /* Activate MEM4 */ 3140 3149 if (pThis->u64RamSize > offRamHole) 3141 pThis->u64PciPref64 = RT_ALIGN_64(pThis->u64RamSize + cbRamHole, _1G);3150 pThis->u64PciPref64Min = RT_ALIGN_64(pThis->u64RamSize + cbRamHole, _1M); 3142 3151 else 3143 pThis->u64PciPref64 = _4G;3152 pThis->u64PciPref64Min = _4G; 3144 3153 } 3145 3154 uint64_t cbRamLow = pThis->u64RamSize > offRamHole ? offRamHole : pThis->u64RamSize; … … 3569 3578 "McfgLength\0" 3570 3579 "PciPref64Enabled\0" 3580 "PciPref64Limit\0" 3571 3581 "SmcEnabled\0" 3572 3582 "FdcEnabled\0" … … 3641 3651 return PDMDEV_SET_ERROR(pDevIns, rc, 3642 3652 N_("Configuration error: Failed to read \"PciPref64Enabled\"")); 3653 3654 /* query the limit of the the 64-bit prefetchable memory window */ 3655 rc = CFGMR3QueryU64Def(pCfg, "PciPref64Limit", &pThis->u64PciPref64Max, _1G64*64); 3656 if (RT_FAILURE(rc)) 3657 return PDMDEV_SET_ERROR(pDevIns, rc, 3658 N_("Configuration error: Failed to read \"PciPref64Limit\"")); 3643 3659 3644 3660 /* query whether we are supposed to present custom table */ -
trunk/src/VBox/Devices/PC/vbox.dsl
r65823 r65843 338 338 IndexField (IDX0, DAT0, DwordAcc, NoLock, Preserve) 339 339 { 340 MEML, 32, 340 MEML, 32, // low-memory length (64KB units) 341 341 UIOA, 32, // if IO APIC enabled 342 342 UHPT, 32, // if HPET enabled … … 347 347 SL3B, 32, // Serial3 base IO address 348 348 SL3I, 32, // Serial3 IRQ 349 PM EM, 32,349 PMNN, 32, // start of 64-bit prefetch window (64KB units) 350 350 URTC, 32, // if RTC shown in tables 351 351 CPUL, 32, // flag of CPU lock state … … 368 368 PP1B, 32, // Parallel1 base IO address 369 369 PP1I, 32, // Parallel1 IRQ 370 PMNX, 32, // limit of 64-bit prefetch window (64KB units) 370 371 Offset (0x80), 371 372 ININ, 32, … … 389 390 DBG ("UFDC: ") 390 391 HEX4 (UFDC) 391 DBG ("PM EM: ")392 HEX4 (PM EM)392 DBG ("PMNN: ") 393 HEX4 (PMNN) 393 394 } 394 395 … … 1580 1581 0x0000000000000000, // _GRA: Granularity. 1581 1582 0x0000000100000000, // _MIN: Min address, def. 4GB, will be overwritten. 1582 0x00000 fffffffffff, // _MAX: Max possible address, 16TB-1, fixed.1583 0x0000000fffffffff, // _MAX: Max address, def. 64GB-1, will be overwritten. 1583 1584 0x0000000000000000, // _TRA: Translation 1584 0x00000 fff00000000, // _LEN: Range length (calculated from _MIN)1585 0x0000000f00000000, // _LEN: Range length (_MAX-_MIN+1) 1585 1586 , // ResourceSourceIndex: Optional field left blank 1586 1587 , // ResourceSource: Optional field left blank … … 1597 1598 Subtract (0xfe000000, RAMT, RAMR) 1598 1599 1599 if (LNotEqual (PM EM, 0x00000000))1600 if (LNotEqual (PMNN, 0x00000000)) 1600 1601 { 1601 1602 // Not for Windows < 7! … … 1606 1607 CreateQwordField (TOM, \_SB.PCI0.MEM4._LEN, TM4L) 1607 1608 1608 Multiply (PMEM, 0x10000, TM4N) // PMEM in units of 64KB 1609 Multiply (PMNN, 0x10000, TM4N) // PMNN in units of 64KB 1610 Subtract (Multiply (PMNX, 0x10000), 1, TM4X) // PMNX in units of 64KB 1609 1611 Add (Subtract (TM4X, TM4N), 1, TM4L) // determine LEN, MAX is already there 1610 1612 -
trunk/src/VBox/Main/src-client/ConsoleImpl2.cpp
r65698 r65843 3228 3228 InsertConfigInteger(pCfg, "McfgBase", uMcfgBase); 3229 3229 InsertConfigInteger(pCfg, "McfgLength", cbMcfgLength); 3230 InsertConfigInteger(pCfg, "PciPref64Enabled", 1); 3230 /* 64-bit prefetch window root resource: 3231 * Only for ICH9 and if PAE or Long Mode is enabled */ 3232 if (fEnablePAE || fIsGuest64Bit) 3233 InsertConfigInteger(pCfg, "PciPref64Enabled", 1); 3231 3234 } 3232 3235 InsertConfigInteger(pCfg, "HostBusPciAddress", uHbcPCIAddress);
Note:
See TracChangeset
for help on using the changeset viewer.