mirror of
https://github.com/genodelabs/genode.git
synced 2025-01-18 02:40:08 +00:00
vbox5: enable SMP setups
We use the use old IOAPIC implementation, which works for us much better than the new one. Issue #2338
This commit is contained in:
parent
c782966aea
commit
e4aea2efeb
@ -45,12 +45,14 @@ VBOX_CC_OPT += -DRTLOG_REL_ENABLED -DRT_STRICT -DVBOX_STRICT
|
||||
|
||||
VBOX_CC_OPT += -DVBOX_WITH_USB -DVBOX_WITH_VUSB
|
||||
|
||||
VBOX_CC_OPT += -DVBOX_WITH_NEW_APIC
|
||||
VBOX_CC_OPT += -DVBOX_WITH_NEW_IOAPIC
|
||||
# SMP is not working with the new version
|
||||
# VBOX_CC_OPT += -DVBOX_WITH_NEW_APIC
|
||||
# VBOX_CC_OPT += -DVBOX_WITH_NEW_IOAPIC
|
||||
|
||||
VBOX_CC_OPT += -DVBOX_WITH_E1000
|
||||
|
||||
VBOX_CC_OPT += -DVBOX_WITH_AHCI
|
||||
VBOX_CC_OPT += -DVBOX_WITH_MULTI_CORE
|
||||
|
||||
VIRTUALBOX_VERSION_MAJOR := $(shell cat $(VIRTUALBOX_DIR)/Config.kmk 2>/dev/null | grep "VBOX_VERSION_MAJOR = " | grep -v "'VBOX_VERSION_MAJOR" | sed "s/^.*= //")
|
||||
VIRTUALBOX_VERSION_MINOR := $(shell cat $(VIRTUALBOX_DIR)/Config.kmk 2>/dev/null | grep "VBOX_VERSION_MINOR = " | grep -v "'VBOX_VERSION_MINOR" | sed "s/^.*= //")
|
||||
|
@ -13,7 +13,11 @@ SRC_CC += Devices/PC/DevACPI.cpp
|
||||
SRC_CC += Devices/PC/DevFwCommon.cpp
|
||||
SRC_CC += Devices/PC/DevDMA.cpp
|
||||
SRC_CC += Devices/PC/DevHPET.cpp
|
||||
ifeq ($(filter $(VBOX_CC_OPT),-DVBOX_WITH_NEW_IOAPIC),)
|
||||
SRC_CC += Devices/PC/DevIoApic_Old.cpp
|
||||
else
|
||||
SRC_CC += Devices/PC/DevIoApic.cpp
|
||||
endif
|
||||
SRC_CC += Devices/PC/DevLPC.cpp
|
||||
SRC_CC += Devices/PC/DevPcBios.cpp
|
||||
SRC_C += Devices/PC/DevPcArch.c
|
||||
|
@ -87,8 +87,10 @@ SRC_CC += VMM/VMMR3/IOM.cpp
|
||||
SRC_CC += VMM/VMMAll/IOMAll.cpp
|
||||
SRC_CC += VMM/VMMAll/IOMAllMMIO.cpp
|
||||
|
||||
ifneq ($(filter $(VBOX_CC_OPT),-DVBOX_WITH_NEW_APIC),)
|
||||
SRC_CC += VMM/VMMR3/APIC.cpp
|
||||
SRC_CC += VMM/VMMAll/APICAll.cpp
|
||||
endif
|
||||
|
||||
CC_OPT += -DVBOX_IN_VMM
|
||||
|
||||
|
25
repos/ports/run/vbox4_win10_64.run
Normal file
25
repos/ports/run/vbox4_win10_64.run
Normal file
@ -0,0 +1,25 @@
|
||||
#
|
||||
# Windows 10 in VirtualBox 4
|
||||
#
|
||||
|
||||
assert_spec nova
|
||||
assert_spec 64bit
|
||||
|
||||
set flavor "win10"
|
||||
|
||||
set use_vbox4 1
|
||||
set use_vbox5 0
|
||||
|
||||
set use_rumpfs 1
|
||||
# Write overlay only into ram
|
||||
set use_ram_fs 1
|
||||
# However read initial overlay from disk
|
||||
set use_overlay_from_disk 1
|
||||
|
||||
set use_usb 1
|
||||
set use_ps2 [have_spec ps2]
|
||||
|
||||
set use_vms 1
|
||||
set use_cpu_load 0
|
||||
|
||||
source ${genode_dir}/repos/ports/run/vbox_win.inc
|
@ -71,6 +71,8 @@ if {(![have_spec nova] && ![have_spec muen])} {
|
||||
set virtualbox_binary "virtualbox-rem"
|
||||
if {[have_spec muen]} { set virtualbox_binary "virtualbox-muen" }
|
||||
if {[have_spec nova]} { set virtualbox_binary "virtualbox-nova" }
|
||||
set virtualbox5_binary "virtualbox5-rem"
|
||||
if {[have_spec nova]} { set virtualbox5_binary "virtualbox5-nova" }
|
||||
|
||||
set flavor "win7"
|
||||
|
@ -8,7 +8,7 @@ assert_spec 64bit
|
||||
set flavor "win7"
|
||||
|
||||
set use_vbox4 0
|
||||
set use_vbox5 5
|
||||
set use_vbox5 1
|
||||
|
||||
set use_rumpfs 1
|
||||
# Write overlay only into ram
|
@ -21,7 +21,7 @@
|
||||
<ExtraDataItem name="GUI/LastNormalWindowPosition" value="513,100,1024,790"/>
|
||||
</ExtraData>
|
||||
<Hardware version="2">
|
||||
<CPU count="1" hotplug="false">
|
||||
<CPU count="2" hotplug="false">
|
||||
<HardwareVirtEx enabled="true"/>
|
||||
<HardwareVirtExNestedPaging enabled="true"/>
|
||||
<HardwareVirtExVPID enabled="true"/>
|
||||
|
@ -38,6 +38,9 @@ extern "C" int VBoxDevicesRegister(PPDMDEVREGCB pCallbacks, uint32_t u32Version)
|
||||
REGISTER(DevicePcArch);
|
||||
REGISTER(DevicePcBios);
|
||||
REGISTER(DeviceIOAPIC);
|
||||
#ifndef VBOX_WITH_NEW_APIC
|
||||
REGISTER(DeviceAPIC);
|
||||
#endif
|
||||
REGISTER(DevicePS2KeyboardMouse);
|
||||
REGISTER(DevicePIIX3IDE);
|
||||
REGISTER(DeviceI8254);
|
||||
|
@ -182,8 +182,12 @@ class Backupable : public Shareable<T>
|
||||
void rollback() { }
|
||||
void commit() { }
|
||||
void commitCopy() { }
|
||||
void assignCopy(const T *) { }
|
||||
void assignCopy(const Backupable &) { }
|
||||
|
||||
void assignCopy(const T *t) {
|
||||
*this->Shareable<T>::data() = *t; }
|
||||
|
||||
void assignCopy(const Backupable<T> &t) {
|
||||
*this->Shareable<T>::data() = *t.data(); }
|
||||
|
||||
HRESULT backupEx() { return S_OK; }
|
||||
|
||||
|
@ -46,13 +46,15 @@ blk_cache
|
||||
rump_ext2
|
||||
thread
|
||||
pthread
|
||||
vbox_auto_win7
|
||||
vbox_auto_win7_64
|
||||
vbox_auto_win7_64_raw
|
||||
vbox_auto_win7_vbox5
|
||||
vbox_auto_win7_share
|
||||
vbox_auto_win7_multiple
|
||||
vbox_auto_win81_64
|
||||
vbox4_win7_32
|
||||
vbox4_win7_64
|
||||
vbox4_win7_64_raw
|
||||
vbox4_win7_32_share
|
||||
vbox4_win7_64_multiple
|
||||
vbox4_win81_64
|
||||
vbox4_win10_64
|
||||
vbox5_win7_32
|
||||
vbox5_win10_64
|
||||
tz_vmm
|
||||
vmm
|
||||
bomb
|
||||
|
Loading…
Reference in New Issue
Block a user