mirror of
https://github.com/genodelabs/genode.git
synced 2025-01-19 03:06:39 +00:00
fc6bcd9f9f
The Demo of 64bit Genode/NOVA fails during the booting phase when physical memory was tried to be mapped lying above 4G boundary. (qemu -m 4096 triggered it on some systems). The memory never got mapped and the attempt to access the virtual region resulted in a unexpected page fault inside Genode core. The latest revision removed the artificial boundary of 4G for 64bit. Example trace showing the issue: ([-1] lines show debugging output that mapping failed) ... int main(): --- create local services --- int main(): --- start init --- int main(): transferred 4047 MB to init int main(): --- init created, waiting for exit condition --- start new pager object with EIP=0x1025814, ESP=0x6001000 [init] Could not open file "ld.lib.so" start new pager object with EIP=0x10213e4, ESP=0x6001000 start new pager object with EIP=0x1037684, ESP=0x6001000 start new pager object with EIP=0x1021664, ESP=0x6001000 start new pager object with EIP=0x101e374, ESP=0x6001000 start new pager object with EIP=0x10295a4, ESP=0x6001000 start new pager object with EIP=0x1037db4, ESP=0x6001000 [init -> pci_drv] PCI driver started [init -> launchpad] Could not open file "ld.lib.so" [init -> launchpad] Could not open file "config" [init -> launchpad] Could not obtain config file [init -> ps2_drv] Detected ExPS/2 mouse - activating scroll-wheel and 5-button support. [init -> ps2_drv] Using keyboard with scan code set 1 (xlate). [init -> timer] Timer::Timeout_scheduler::Timeout_scheduler(Platform_timer*, Genode::Rpc_entrypoint*): starting timeout scheduler [init -> vesa_drv] int Framebuffer_drv::map_io_mem(Genode::addr_t, Genode::size_t, bool, void**, Genode::addr_t, Genode::Dataspace_capability*): fb mapped to 1000 start new pager object with EIP=0x101eaf0, ESP=0x401fef80 [init -> timer] Timer::Session_component::Session_component(Timer::Timeout_scheduler*, Genode::Cap_session*): created new session component, _session_cap.valid=1 start new pager object with EIP=0x1021d10, ESP=0x400fef80 start new pager object with EIP=0x1021d10, ESP=0x401fef80 [init -> vesa_drv] Could not open file "config" [init -> vesa_drv] Could not obtain config file [init -> vesa_drv] Found: VESA BIOS version 2.0 [init -> vesa_drv] OEM: VGABIOS Cirrus extension [init -> vesa_drv] Found: physical frame buffer at 0xfc000000 size: 0x00400000 [init -> vesa_drv] int Framebuffer_drv::map_io_mem(Genode::addr_t, Genode::size_t, bool, void**, Genode::addr_t, Genode::Dataspace_capability*): fb mapped to 400000 [init -> nitpicker] framebuffer is 1024x768@1 [init -> nitpicker] create session with args: fb_format=1, label="launchpad", ram_quota=1646592 [init -> nitpicker] Could not open file "config" [init -> nitpicker] Could not obtain config file [init -> nitpicker] create session with args: fb_width=400, fb_height=1504, fb_format=1, label="launchpad", ram_quota=1211392 [ 0] DEL MEM PD:0xffffffff8100d620->0xffffffff8100d320 SB:0x00100000 RB:0x00002a00 O:0x08 A:0x7 [-1] Pd::delegate snd->S::tree_lookup(0x100000) == 0x0 -- base-nova/contrib/src/pd.cpp:54 - Pd::snd 0xffffffff8100d620 =? Pd::kern 0xffffffff8100d620 [ 0] DEL MEM PD:0xffffffff8100d620->0xffffffff8100d320 SB:0x00100100 RB:0x00002b00 O:0x05 A:0x7 [-1] Pd::delegate snd->S::tree_lookup(0x100100) == 0x0 -- base-nova/contrib/src/pd.cpp:54 - Pd::snd 0xffffffff8100d620 =? Pd::kern 0xffffffff8100d620 [ 0] DEL MEM PD:0xffffffff8100d620->0xffffffff8100d320 SB:0x00100120 RB:0x00002b20 O:0x02 A:0x7 [-1] Pd::delegate snd->S::tree_lookup(0x100120) == 0x0 -- base-nova/contrib/src/pd.cpp:54 - Pd::snd 0xffffffff8100d620 =? Pd::kern 0xffffffff8100d620 [ 0] DEL MEM PD:0xffffffff8100d620->0xffffffff8100d320 SB:0x00100124 RB:0x00002b24 O:0x01 A:0x7 [-1] Pd::delegate snd->S::tree_lookup(0x100124) == 0x0 -- base-nova/contrib/src/pd.cpp:54 - Pd::snd 0xffffffff8100d620 =? Pd::kern 0xffffffff8100d620 [ 0] Killed EC:0xffffffff823ca880 SC:0xffffffff823cb740 V:0xe CS:0x2b EIP:0x1215a0 CR2:0x2b25fff ERR:0x6 (PT not found) |
||
---|---|---|
.. | ||
doc | ||
etc | ||
include | ||
lib/mk | ||
mk | ||
patches | ||
run | ||
src | ||
Makefile | ||
README |
This repository contains the port of Genode to the NOVA microhypervisor. For more information on this base platform, please refer to the official website. :[http://hypervisor.org]: Official website for the NOVA microhypervisor. For information on using Genode on NOVA, please revisit the documentation at 'base-nova/doc/nova.txt':