Changeset 17597 in vbox
- Timestamp:
- Mar 9, 2009 5:39:05 PM (16 years ago)
- Location:
- trunk/src/VBox/Devices/PC
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/PC/DevACPI.cpp
r17590 r17597 1765 1765 if (cbRamLow > UINT32_C(0xffe00000)) /* See MEM3. */ 1766 1766 { 1767 /* * @todo Do this in the E820 table/CMOS as well or things won't work right. */1767 /* Note: This is also enforced by DevPcBios.cpp. */ 1768 1768 LogRel(("DevACPI: Clipping cbRamLow=%#RX64 down to 0xffe00000.\n", cbRamLow)); 1769 1769 cbRamLow = UINT32_C(0xffe00000); -
trunk/src/VBox/Devices/PC/DevPcBios.cpp
r17545 r17597 539 539 540 540 /* Bochs BIOS specific? Anyway, it's the amount of memory above 16MB 541 and below 4GB (as it can only hold 4GB+16M). For 0E820h to work right, 542 this has to indicate less than 0xfffc0000 bytes or it'll conflict with 543 the high BIOS area. */ 541 and below 4GB (as it can only hold 4GB+16M). We have to chop off the 542 top 2MB or it conflict with what the ACPI tables return. (Should these 543 be adjusted, we still have to chop it at 0xfffc0000 or it'll conflict 544 with the high BIOS mapping.) */ 544 545 uint64_t const offRamHole = _4G - pThis->cbRamHole; 545 546 if (pThis->cbRam > 16 * _1M) 546 { 547 u32 = (uint32_t)( (RT_MIN(pThis->cbRam, offRamHole) - 16 * _1M) / _64K ); 548 u32 = RT_MIN(u32, 0xfefc); 549 } 547 u32 = (uint32_t)( (RT_MIN(RT_MIN(pThis->cbRam, offRamHole), UINT32_C(0xffe00000)) - 16U * _1M) / _64K ); 550 548 else 551 549 u32 = 0;
Note:
See TracChangeset
for help on using the changeset viewer.