I have been having a problem with Genode/NOVA demo booting using a custom boot module we are developing ever since Genode 17.08 was released and I was hoping to get some help tracing down the problem on the Genode side with this issue. Listed below is the output of two boots of the same build of the demo (in this case 17.11), one without our custom SABLE bootloader, one with. Before 17.08, the hand-off from SABLE to the NOVA kernel was fine, Genode booted and the demo ran as it should have. Now I get PAGE FAULT errors. I also tried downloading the previous version, 17.05 and recreating this build but still get errors, and from what I can tell, this is because the latest NOVA port gets brought in so I believe the problem resides with the way that the NOVA kernel handles modules already in memory at load time of the kernel that is causing this page fault. Are there any thoughts or leads you can assist with in this? As a side note, this SABLE boot loader module loads the Linux kernel flawlessly.
Chris Rothrock
########################################################## ### Without SABLE Boot Module ### ##########################################################
NOVA Microhypervisor v7-ef4b287 (x86_32): May 10 2018 10:39:11 [gcc 6.3.0] [MBI]
[ 0] TSC:3593297 kHz BUS:99813 kHz (measured) [ 0] CORE:0:0:0 15:38:1:0 [0] AMD PRO A10-8750B R7, 12 Compute Cores 4C+8G [ 1] CORE:0:1:0 15:38:1:0 [0] AMD PRO A10-8750B R7, 12 Compute Cores 4C+8G [ 3] CORE:0:3:0 15:38:1:0 [0] AMD PRO A10-8750B R7, 12 Compute Cores 4C+8G [ 2] CORE:0:2:0 15:38:1:0 [0] AMD PRO A10-8750B R7, 12 Compute Cores 4C+8G Hypervisor features SVM Hypervisor reports 4x1 CPUs CPU ID (genode->kernel:package:core:thread) remapping remap (0->0:0:0:0) boot cpu remap (1->1:0:1:0) remap (2->2:0:2:0) remap (3->3:0:3:0) Hypervisor info page contains 27 memory descriptors: core image [00100000,007d4000) binaries region [0022f000,007d4000) free for reuse detected physical memory: 0x00000000 - size: 0x0009e800 use physical memory: 0x00000000 - size: 0x0009e000 detected physical memory: 0x00100000 - size: 0xac722000 use physical memory: 0x00100000 - size: 0xac722000 detected physical memory: 0xadb93000 - size: 0x00001000 use physical memory: 0xadb93000 - size: 0x00001000 detected physical memory: 0xadd9a000 - size: 0x00156000 use physical memory: 0xadd9a000 - size: 0x00156000 detected physical memory: 0xae825000 - size: 0x0004b000 use physical memory: 0xae825000 - size: 0x0004b000 detected physical memory: 0xaeff1000 - size: 0x0000f000 use physical memory: 0xaeff1000 - size: 0x0000f000 detected physical memory: 0x00000000 - size: 0x40000000 ROM modules: ROM: [003a2000,003bad70) acpi_drv ROM: [006f3000,006f4d64) config ROM: [00015000,00016000) core_log ROM: [006f5000,00740dfc) fb_drv ROM: [007a4000,007c5810) global_keys_handler ROM: [00013000,00014000) hypervisor_info_page ROM: [0087e000,008bf238) init ROM: [007c6000,0087d554) launchpad ROM: [00648000,00648253) launchpad.config ROM: [00595000,00647c64) ld.lib.so ROM: [00741000,0078621c) liquid_fb ROM: [00332000,003440c0) nit_focus ROM: [00345000,00363af8) nitlog ROM: [00649000,00692c34) nitpicker ROM: [006a9000,006f23f0) platform_drv ROM: [0000e000,0000f000) platform_info ROM: [003bb000,003dbdb8) pointer ROM: [00364000,003887b0) ps2_drv ROM: [00389000,003a1db8) report_rom ROM: [008c0000,008d6500) rom_filter ROM: [003dc000,0057e8bc) scout ROM: [00787000,007a3fd4) status_bar ROM: [0057f000,00594c08) testnit ROM: [00693000,006a8f68) timer
Genode 17.11-221-g8d09d02 <local changes> 2718 MiB RAM and 63829 caps assigned to init [init -> acpi_drv] Found MADT [init -> acpi_drv] MADT IRQ 0 -> GSI 2 flags: 0 [init -> acpi_drv] MADT IRQ 9 -> GSI 9 flags: 15 [init -> acpi_drv] Found MCFG [init -> acpi_drv] MCFG BASE 0xe0000000 seg 0x0 bus 0x0-0xff [init -> platform_drv] 0:14.4 - bridge 1:0.0 [init -> platform_drv] 0:15.0 - bridge 2:0.0 [init -> platform_drv] 0:15.2 - bridge 3:0.0 [init -> fb_drv] Found PCI VGA at 00:01.0 [init -> fb_drv] fb mapped to 0x1000 [init -> ps2_drv] Using keyboard with scan code set 1 (xlate) [init -> ps2_drv] Warning: could not reset mouse (missing ack) [init -> ps2_drv] Error: failed to read from port [init -> ps2_drv] Warning: could not reset mouse (unexpected response) [init -> ps2_drv] Error: failed to read from port [init -> ps2_drv] Warning: could not enable stream [init -> fb_drv] Found: VESA BIOS version 3.0 [init -> fb_drv] OEM: AMD ATOMBIOS [init -> platform_drv] PS2 uses IRQ, vector 0x1 [init -> platform_drv] PS2 uses IRQ, vector 0xc [init -> ps2_drv] Warning: setting of mode indicators failed (0xed) [init -> ps2_drv] Warning: setting of mode indicators failed (0xed) [init -> ps2_drv] Warning: setting of mode indicators failed (0xed) [init -> fb_drv] Found: physical frame buffer at 0xc0000000 size: 16777216 [init -> fb_drv] fb mapped to 0xb0000000 [init -> fb_drv] using video mode: 1920x1080@16 [init -> scout] png is 101 x 92, depth=8
########################################################## ### With SABLE Boot Module ### ##########################################################
NOVA Microhypervisor v7-ef4b287 (x86_64): Feb 9 2018 14:02:24 [gcc 6.3.0] [MBI]
[ 0] TSC:3593306 kHz BUS:99814 kHz (measured) [ 0] CORE:0:0:0 15:38:1:0 [0] AMD CPU booted by SABLE [ 1] CORE:0:1:0 15:38:1:0 [0] AMD CPU booted by SABLE [ 2] CORE:0:2:0 15:38:1:0 [0] AMD PRO A10-8750B R7, 12 Compute Cores 4C+8G [ 3] CORE:0:3:0 15:38:1:0 [0] AMD PRO A10-8750B R7, 12 Compute Cores 4C+8G Hypervisor features SVM Hypervisor reports 4x1 CPUs CPU ID (genode->kernel:package:core:thread) remapping remap (0->0:0:0:0) boot cpu remap (1->1:0:1:0) remap (2->2:0:2:0) remap (3->3:0:3:0) Hypervisor info page contains 27 memory descriptors: core image [0000000000100000,0000000000902000) binaries region [000000000027a000,0000000000902000) free for reuse detected physical memory: 0x0000000000000000 - size: 0x000000000009e800 use physical memory: 0x0000000000000000 - size: 0x000000000009e000 detected physical memory: 0x0000000000100000 - size: 0x00000000ac722000 use physical memory: 0x0000000000100000 - size: 0x00000000ac722000 detected physical memory: 0x00000000adb93000 - size: 0x0000000000001000 use physical memory: 0x00000000adb93000 - size: 0x0000000000001000 detected physical memory: 0x00000000add9a000 - size: 0x0000000000156000 use physical memory: 0x00000000add9a000 - size: 0x0000000000156000 detected physical memory: 0x00000000ae825000 - size: 0x000000000004b000 use physical memory: 0x00000000ae825000 - size: 0x000000000004b000 detected physical memory: 0x00000000aeff1000 - size: 0x000000000000f000 use physical memory: 0x00000000aeff1000 - size: 0x000000000000f000 detected physical memory: 0x0000000100000000 - size: 0x0000000040000000 use physical memory: 0x0000000100000000 - size: 0x0000000040000000 ROM modules: ROM: [0000000000351000,0000000000370210) acpi_drv ROM: [0000000000719000,000000000071ad61) config ROM: [00000000addb0000,00000000addb1000) core_log ROM: [000000000071b000,0000000000778ed0) fb_drv ROM: [00000000007ed000,00000000008173a8) global_keys_handler ROM: [00000000addae000,00000000addaf000) hypervisor_info_page ROM: [00000000008df000,0000000000933380) init ROM: [0000000000818000,00000000008de1c0) launchpad ROM: [0000000000646000,0000000000646252) launchpad.config ROM: [0000000000565000,0000000000645908) ld.lib.so ROM: [0000000000779000,00000000007c9638) liquid_fb ROM: [00000000002ca000,00000000002dfc70) nit_focus ROM: [00000000002e0000,0000000000302fd0) nitlog ROM: [0000000000647000,00000000006a1500) nitpicker ROM: [00000000006be000,00000000007185d0) platform_drv ROM: [00000000addac000,00000000addad000) platform_info ROM: [0000000000371000,00000000003986e0) pointer ROM: [0000000000303000,0000000000330108) ps2_drv ROM: [0000000000331000,0000000000350198) report_rom ROM: [0000000000934000,00000000009516d8) rom_filter ROM: [0000000000399000,000000000054a9f8) scout ROM: [00000000007ca000,00000000007ec1e0) status_bar ROM: [000000000054b000,0000000000564aa8) testnit ROM: [00000000006a2000,00000000006bdfb8) timer
Genode 17.11-221-g8d09d02 <local changes> 3740 MiB RAM and 63253 caps assigned to init Error: PAGE-FAULT IN CORE addr=0xc0 ip=0x1b1950 (read)
stack pointer 0xa02fe6f8, qualifiers 0x4 irUwp faulter utcb 0xa02ff000, last message item count 1 0 - type=0x1 rights=0x3 region=0x80000+0x4000 hotspot=0x0(0x801) - delegated #1 0x00000000a02fe6f8 0x00000000001b1950 #2 0x00000000a02fe6f8 0x000000000017ecac