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
Hello Chris,
On Tue, May 22, 2018 at 02:22:33PM -0400, Chris Rothrock wrote:
########################################################## ### Without SABLE Boot Module ### ##########################################################
NOVA Microhypervisor v7-ef4b287 (x86_32): May 10 2018 10:39:11 [gcc 6.3.0]
[...]
########################################################## ### With SABLE Boot Module ### ##########################################################
NOVA Microhypervisor v7-ef4b287 (x86_64): Feb 9 2018 14:02:24 [gcc 6.3.0]
Additionally to using SABLE in the second boot you also run NOVA x86_64 unlike the SABLE-less boot of NOVA x86_32. Did you also check the two remaining combinations - no SABLE x86_64 and SABLE with x86_32?
Beside this difference I can't see anything leaping to the eye. Do other (more simple tests like run/log) also fail with a page fault that early?
Greets
I have tried this also with the 32 bit with the same results.
On Wed, May 23, 2018 at 2:16 PM, Christian Helmuth < christian.helmuth@genode-labs.com> wrote:
Hello Chris,
On Tue, May 22, 2018 at 02:22:33PM -0400, Chris Rothrock wrote:
########################################################## ### Without SABLE Boot Module ### ##########################################################
NOVA Microhypervisor v7-ef4b287 (x86_32): May 10 2018 10:39:11 [gcc
6.3.0] [...]
########################################################## ### With SABLE Boot Module ### ##########################################################
NOVA Microhypervisor v7-ef4b287 (x86_64): Feb 9 2018 14:02:24 [gcc
6.3.0]
Additionally to using SABLE in the second boot you also run NOVA x86_64 unlike the SABLE-less boot of NOVA x86_32. Did you also check the two remaining combinations - no SABLE x86_64 and SABLE with x86_32?
Beside this difference I can't see anything leaping to the eye. Do other (more simple tests like run/log) also fail with a page fault that early?
Greets
Christian Helmuth Genode Labs
https://www.genode-labs.com/ · https://genode.org/ https://twitter.com/GenodeLabs · /ˈdʒiː.nəʊd/
Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth
Working with our developers for SABLE, we branched a build of SABLE for one purpose - to NOT run the AMD skinit instruction before handing off boot to NOVA/Genode. Using this build of SABLE we are able to get a successful boot to the demo.
At this stage, it seems that something fundamental changed within Genode and/or NOVA (and I have also seen this with Genode/seL4 demo) that causes the memory fault to occur on AMD platforms ONLY when the skinit instruction is performed prior to boot hand-off. Is this a point where we can dig a little deeper to understand where this problem is occurring?
Chris Rothrock
On Wed, May 23, 2018 at 2:36 PM, Chris Rothrock cgrothrock@gmail.com wrote:
I have tried this also with the 32 bit with the same results.
On Wed, May 23, 2018 at 2:16 PM, Christian Helmuth < christian.helmuth@genode-labs.com> wrote:
Hello Chris,
On Tue, May 22, 2018 at 02:22:33PM -0400, Chris Rothrock wrote:
########################################################## ### Without SABLE Boot Module ### ##########################################################
NOVA Microhypervisor v7-ef4b287 (x86_32): May 10 2018 10:39:11 [gcc
6.3.0] [...]
########################################################## ### With SABLE Boot Module ### ##########################################################
NOVA Microhypervisor v7-ef4b287 (x86_64): Feb 9 2018 14:02:24 [gcc
6.3.0]
Additionally to using SABLE in the second boot you also run NOVA x86_64 unlike the SABLE-less boot of NOVA x86_32. Did you also check the two remaining combinations - no SABLE x86_64 and SABLE with x86_32?
Beside this difference I can't see anything leaping to the eye. Do other (more simple tests like run/log) also fail with a page fault that early?
Greets
Christian Helmuth Genode Labs
https://www.genode-labs.com/ · https://genode.org/ https://twitter.com/GenodeLabs · /ˈdʒiː.nəʊd/
Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth
--
Thank You,
Chris Rothrock Senior System Administrator (315) 308-1637
Hello Chris,
On Wed, May 30, 2018 at 12:11:03PM -0400, Chris Rothrock wrote:
Working with our developers for SABLE, we branched a build of SABLE for one purpose - to NOT run the AMD skinit instruction before handing off boot to NOVA/Genode. Using this build of SABLE we are able to get a successful boot to the demo.
At this stage, it seems that something fundamental changed within Genode and/or NOVA (and I have also seen this with Genode/seL4 demo) that causes the memory fault to occur on AMD platforms ONLY when the skinit instruction is performed prior to boot hand-off. Is this a point where we can dig a little deeper to understand where this problem is occurring?
Your issue description suggests you have the perfect "git bisect" situation: an old source-code revision where it seems to work and a new revision that shows an issue. Therefore, I recommend you try to narrow down the time frame where the issue appears first by testing different revisions of Genode with a minimalistic scenario like "make run/log".
From our side I can't promise any practical contribution as the
current release works pretty stable on our test hardware (admittedly Intel not AMD) and we don't have access to SABLE.
Regards
The build timeframe was less than a month before the 17.08 Genode was released. I was using the 17.05 build which still used the previous NOVA version since NOVA was also updated to v7 when Genode 17.08 was released.
I know I can (and have) re-downloaded the 17.05 Genode but is there a possibility of doing the prepare_port from an earlier version of a port (such as NOVA) so that I can reproduce the build that did work? When I use the 17.05 and prepare the port, it pulls the newest NOVA and this version actually doesn't work with the older Genode source code.
On Thu, May 31, 2018 at 10:57 AM, Christian Helmuth < christian.helmuth@genode-labs.com> wrote:
Hello Chris,
On Wed, May 30, 2018 at 12:11:03PM -0400, Chris Rothrock wrote:
Working with our developers for SABLE, we branched a build of SABLE for
one
purpose - to NOT run the AMD skinit instruction before handing off boot
to
NOVA/Genode. Using this build of SABLE we are able to get a successful boot to the demo.
At this stage, it seems that something fundamental changed within Genode and/or NOVA (and I have also seen this with Genode/seL4 demo) that causes the memory fault to occur on AMD platforms ONLY when the skinit
instruction
is performed prior to boot hand-off. Is this a point where we can dig a little deeper to understand where this problem is occurring?
Your issue description suggests you have the perfect "git bisect" situation: an old source-code revision where it seems to work and a new revision that shows an issue. Therefore, I recommend you try to narrow down the time frame where the issue appears first by testing different revisions of Genode with a minimalistic scenario like "make run/log".
From our side I can't promise any practical contribution as the current release works pretty stable on our test hardware (admittedly Intel not AMD) and we don't have access to SABLE.
Regards
Christian Helmuth Genode Labs
https://www.genode-labs.com/ · https://genode.org/ https://twitter.com/GenodeLabs · /ˈdʒiː.nəʊd/
Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth
Genode users mailing list users@lists.genode.org https://lists.genode.org/listinfo/users
Chris,
On Thu, May 31, 2018 at 11:14:02AM -0400, Chris Rothrock wrote:
The build timeframe was less than a month before the 17.08 Genode was released. I was using the 17.05 build which still used the previous NOVA version since NOVA was also updated to v7 when Genode 17.08 was released.
I don't understand this statement and maybe you mix things up here. NOVA changed is version from v6 to v7 in 2014.
I know I can (and have) re-downloaded the 17.05 Genode but is there a possibility of doing the prepare_port from an earlier version of a port (such as NOVA) so that I can reproduce the build that did work? When I use the 17.05 and prepare the port, it pulls the newest NOVA and this version actually doesn't work with the older Genode source code.
If you want to use an older version just check out the appropriate Git revision of Genode and run prepare_port for the ports needed. The port mechanism will take care to retrieve the proper port revision for the checked-out Genode revision. Please don't get distracted by the nova port fetching the current Git, it also checks out the proper revision on prepare_port.
Regards
Two topics of discussion in this email:
1) In a previous email in this chain you mentioned trying something more simplistic, such as run/log. Here are the results of this with and without the SABLE bootloader - this just hangs on handing off from NOVA to Genode, not even any errors. The SABLE code will be going open source soon and I will be able to provide this to you as needed in the effort to trace down the problem.
2) The only working binary I have from the 17.05 that I can get SABLE to boot properly is Genode with seL4. I am trying to be able to reproduce this build but when I build and run Genode 17.05 using seL4 kernel, it doesn't boot into the demo. The nitpicker and/or framebuffer seems to not load properly when it does on the binary I use for testing SABLE. Below is the output from that 17.05 (without using SABLE). Any ideas why this build is no longer working?
****************** With SABLE *** (18.02 x86_32) ******************
NOVA Microhypervisor v7-9b24eb4 (x86_32): May 3 2018 13:49:08 [gcc 6.3.0] [MBI]
[ 0] TSC:3593305 kHz BUS:99814 kHz (measured) [ 0] CORE:0:0:0 15:38:1:0 [0] AMD CPU booted by SABLE [ 3] CORE:0:3: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 [ 2] CORE:0:2:0 15:38:1:0 [0] AMD PRO A10-8750B R7, 12 Compute Cores 4C+8G
********************* Without SABLE *** (18.02 x86_32) *********************
NOVA Microhypervisor v7-9b24eb4 (x86_32): May 3 2018 13:49:08 [gcc 6.3.0] [MBI] [ 0] TSC:3593301 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 [ 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 [00100000,0032a000) binaries region [0022f000,0032a000) 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: [003eb000,003eb156) config ROM: [00001000,00002000) core_log ROM: [00101000,00102000) hypervisor_info_page ROM: [003ec000,0042d238) init ROM: [00339000,003eabb8) ld.lib.so ROM: [03401000,03402000) platform_info ROM: [00333000,00338e4c) test-log
Genode 18.02-20-g1f7b5e7 <local changes> 2722 MiB RAM and 63829 caps assigned to init [init -> test-log] hex range: [0e00,1680) [init -> test-log] empty hex range: [0abc0000,0abc0000) (empty!) [init -> test-log] hex range to limit: [f8,ff] [init -> test-log] invalid hex range: [f8,08) (overflow!) [init -> test-log] negative hex char: 0xfe [init -> test-log] positive hex char: 0x02 [init -> test-log] multiarg string: "parent -> child.7" [init -> test-log] String(Hex(3)): 0x3 [init -> test-log] Very long messages: [init -> test-log -> log] 1.....................................................................................................................................................................................................................................2 [init -> test-log] 3.....................................................................................................................................................................................................................................4 [init -> test-log] 5.....................................................................................................................................................................................................................................6 [init -> test-log] [init -> test-log] Test done.
********************************** Genode/seL4 Demo 17.05 *** **********************************
Parsing GRUB physical memory map Physical Memory Region from 0 size 9e000 type 1 Physical Memory Region from 9e000 size 2000 type 2
Physical Memory Region from e0000 size 20000 type 2
Physical Memory Region from 100000 size ac722000 type 1 Adding physical memory region 0x100000-0x1fc00000 Physical Memory Region from ac822000 size a23000 type 2
Physical Memory Region from ad245000 size 69000 type 3
Physical Memory Region from ad2ae000 size 4b5000 type 4
Physical Memory Region from ad763000 size 430000 type 2
Physical Memory Region from adb93000 size 1000 type 1 Physical Memory Region from adb94000 size 206000 type 4
Physical Memory Region from add9a000 size 156000 type 1 Physical Memory Region from adef0000 size 935000 type 2
Physical Memory Region from ae825000 size 4b000 type 1 Physical Memory Region from ae870000 size 781000 type 2
Physical Memory Region from aeff1000 size f000 type 1 Physical Memory Region from e0000000 size 10000000 type 2
Physical Memory Region from feb80000 size 82000 type 2
Physical Memory Region from fec10000 size 1000 type 2
Physical Memory Region from fed00000 size 1000 type 2
Physical Memory Region from fed40000 size 5000 type 2
Physical Memory Region from fed80000 size 10000 type 2
Physical Memory Region from ff000000 size 1000000 type 2 Physical Memory Region from 0 size 40000000 type 1
Kernel loaded to: start=0x100000 end=0x143000 size=0x43000 entry=0x10003e ACPI: RSDP paddr=0xf0490 ACPI: RSDP vaddr=0xdfcf0490 ACPI: RSDT paddr=0xad269028 ACPI: RSDT vaddr=0xdfe69028 ACPI: MADT paddr=0xad2764a8 ACPI: MADT vaddr=0xdfe764a8 ACPI: MADT apic_addr=0xfee00000 ACPI: MADT flags=0x1 ACPI: MADT_APIC apic_id=0x10 ACPI: MADT_APIC apic_id=0x11 ACPI: MADT_APIC apic_id=0x12 ACPI: MADT_APIC apic_id=0x13 ACPI: MADT_IOAPIC ioapic_id=0 ioapic_addr=0xfec00000 gsib=0 ACPI: MADT_IOAPIC ioapic_id=1 ioapic_addr=0xfec01000 gsib=24 ACPI: Not recording this IOAPIC, only support 1 ACPI: MADT_ISO bus=0 source=0 gsi=2 flags=0x0 ACPI: MADT_ISO bus=0 source=9 gsi=9 flags=0xf ACPI: 4 CPU(s) detected Detected 4 CPUs. Only just 1 Detected 1 boot module(s): module #0: start=0x14c000 end=0x7fb374 size=0x6af374 name='' ELF-loading userland images from boot modules: size=0xdff000 v_entry=0x2000000 v_start=0x2000000 v_end=0x2dff000 p_start=0x7fc000 p_end=0x15fb000 Moving loaded userland images to final location: from=0x7fc000 to=0x143000 size=0xdff000 PCI: Detected device @ bus=0x0 dev=0x0 fun=0x0: vid=0x1022 did=0x1422 type=normal PCI: Detected device @ bus=0x0 dev=0x0 fun=0x2: vid=0x1022 did=0x1423 type=normal PCI: Detected device @ bus=0x0 dev=0x1 fun=0x0: vid=0x1002 did=0x130f type=normal PCI: BAR[0] address=0xc0000000 size=0x10000000 PCI: BAR[2] address=0xd0000000 size=0x800000 PCI: BAR[4] ignored: PCI IO space not supported PCI: BAR[5] address=0xfeb00000 size=0x40000 PCI: Detected device @ bus=0x0 dev=0x1 fun=0x1: vid=0x1002 did=0x1308 type=normal PCI: BAR[0] address=0xfeb64000 size=0x4000 PCI: Detected device @ bus=0x0 dev=0x2 fun=0x0: vid=0x1022 did=0x1424 type=normal PCI: Detected device @ bus=0x0 dev=0x3 fun=0x0: vid=0x1022 did=0x1424 type=normal PCI: Detected device @ bus=0x0 dev=0x4 fun=0x0: vid=0x1022 did=0x1424 type=normal PCI: Detected device @ bus=0x0 dev=0x10 fun=0x0: vid=0x1022 did=0x7814 type=normal PCI: BAR[0] address=0xfeb6a000 size=0x2000 PCI: Detected device @ bus=0x0 dev=0x10 fun=0x1: vid=0x1022 did=0x7814 type=normal PCI: BAR[0] address=0xfeb68000 size=0x2000 PCI: Detected device @ bus=0x0 dev=0x11 fun=0x0: vid=0x1022 did=0x7801 type=normal PCI: BAR[0] ignored: PCI IO space not supported PCI: BAR[1] ignored: PCI IO space not supported PCI: BAR[2] ignored: PCI IO space not supported PCI: BAR[3] ignored: PCI IO space not supported PCI: BAR[4] ignored: PCI IO space not supported PCI: BAR[5] address=0xfeb70000 size=0x1000 PCI: Detected device @ bus=0x0 dev=0x12 fun=0x0: vid=0x1022 did=0x7807 type=normal PCI: BAR[0] address=0xfeb6f000 size=0x1000 PCI: Detected device @ bus=0x0 dev=0x12 fun=0x2: vid=0x1022 did=0x7808 type=normal PCI: BAR[0] address=0xfeb6e000 size=0x1000 PCI: Detected device @ bus=0x0 dev=0x13 fun=0x0: vid=0x1022 did=0x7807 type=normal PCI: BAR[0] address=0xfeb6d000 size=0x1000 PCI: Detected device @ bus=0x0 dev=0x13 fun=0x2: vid=0x1022 did=0x7808 type=normal PCI: BAR[0] address=0xfeb6c000 size=0x1000 PCI: Detected device @ bus=0x0 dev=0x14 fun=0x0: vid=0x1022 did=0x780b type=normal PCI: Detected device @ bus=0x0 dev=0x14 fun=0x2: vid=0x1022 did=0x780d type=normal PCI: BAR[0] address=0xfeb60000 size=0x4000 PCI: Detected device @ bus=0x0 dev=0x14 fun=0x3: vid=0x1022 did=0x780e type=normal PCI: Detected device @ bus=0x0 dev=0x14 fun=0x4: vid=0x1022 did=0x780f type=bridge PCI: Detected device @ bus=0x0 dev=0x15 fun=0x0: vid=0x1022 did=0x43a0 type=bridge PCI: Detected device @ bus=0x0 dev=0x15 fun=0x2: vid=0x1022 did=0x43a2 type=bridge PCI: Detected device @ bus=0x0 dev=0x18 fun=0x0: vid=0x1022 did=0x141a type=normal PCI: Detected device @ bus=0x0 dev=0x18 fun=0x1: vid=0x1022 did=0x141b type=normal PCI: Detected device @ bus=0x0 dev=0x18 fun=0x2: vid=0x1022 did=0x141c type=normal PCI: Detected device @ bus=0x0 dev=0x18 fun=0x3: vid=0x1022 did=0x141d type=normal PCI: Detected device @ bus=0x0 dev=0x18 fun=0x4: vid=0x1022 did=0x141e type=normal PCI: Detected device @ bus=0x0 dev=0x18 fun=0x5: vid=0x1022 did=0x141f type=normal PCI: Detected device @ bus=0x3 dev=0x0 fun=0x0: vid=0x10ec did=0x8168 type=normal PCI: BAR[0] ignored: PCI IO space not supported PCI: BAR[2] address=0xfea18000 size=0x1000 PCI: BAR[4] address=0xfea10000 size=0x4000 PCI: Detected device @ bus=0x3 dev=0x0 fun=0x1: vid=0x10ec did=0x816a type=normal PCI: BAR[0] ignored: PCI IO space not supported PCI: BAR[2] address=0xfea17000 size=0x1000 PCI: BAR[4] address=0xfea0c000 size=0x4000 PCI: Detected device @ bus=0x3 dev=0x0 fun=0x2: vid=0x10ec did=0x816b type=normal PCI: BAR[0] ignored: PCI IO space not supported PCI: BAR[2] address=0xfea16000 size=0x1000 PCI: BAR[4] address=0xfea08000 size=0x4000 PCI: Detected device @ bus=0x3 dev=0x0 fun=0x3: vid=0x10ec did=0x816c type=normal PCI: BAR[0] ignored: PCI IO space not supported PCI: BAR[2] address=0xfea15000 size=0x1000 PCI: BAR[4] address=0xfea04000 size=0x4000 PCI: Detected device @ bus=0x3 dev=0x0 fun=0x4: vid=0x10ec did=0x816d type=normal PCI: BAR[0] address=0xfea14000 size=0x1000 PCI: BAR[2] address=0xfea00000 size=0x4000 Starting node #0 core image: virtual address range [02000000,02e00000) size=0xe00000 VM area at [00002000,c0000000) :phys_alloc: Allocator 0x282b218 dump: Block: [00100000,00101000) size=4K avail=0 max_avail=0 Block: [00101000,00102000) size=4K avail=0 max_avail=0 Block: [00102000,00103000) size=4K avail=0 max_avail=0 Block: [00103000,00104000) size=4K avail=0 max_avail=0 Block: [00104000,00105000) size=4K avail=0 max_avail=0 Block: [00105000,00106000) size=4K avail=0 max_avail=0 Block: [00106000,00107000) size=4K avail=0 max_avail=0 Block: [00107000,00108000) size=4K avail=0 max_avail=0 Block: [00108000,00109000) size=4K avail=0 max_avail=0 Block: [00109000,0010a000) size=4K avail=0 max_avail=0 Block: [0010a000,0010b000) size=4K avail=0 max_avail=0 Block: [00f42000,00f43000) size=4K avail=0 max_avail=0 Block: [00f43000,00f44000) size=4K avail=0 max_avail=0 Block: [00f44000,00f45000) size=4K avail=0 max_avail=0 Block: [00f45000,00f46000) size=4K avail=0 max_avail=0 Block: [00f46000,00f47000) size=4K avail=0 max_avail=0 Block: [00f47000,00f48000) size=4K avail=0 max_avail=0 Block: [00f48000,00f49000) size=4K avail=0 max_avail=0 Block: [00f49000,00f4a000) size=4K avail=0 max_avail=0 Block: [00f4a000,00f4b000) size=4K avail=0 max_avail=0 Block: [00f4b000,00f4c000) size=4K avail=0 max_avail=0 Block: [00f4c000,00f4d000) size=4K avail=0 max_avail=0 Block: [00f4d000,00f4e000) size=4K avail=0 max_avail=0 Block: [00f4e000,00f4f000) size=4K avail=0 max_avail=458748K Block: [00f4f000,00f50000) size=4K avail=0 max_avail=0 Block: [00f50000,00f51000) size=4K avail=0 max_avail=0 Block: [00f51000,00f52000) size=4K avail=0 max_avail=0 Block: [00f52000,00f53000) size=4K avail=0 max_avail=0 Block: [00f53000,00f54000) size=4K avail=0 max_avail=0 Block: [00f54000,00f55000) size=4K avail=0 max_avail=0 Block: [00f55000,00f56000) size=4K avail=0 max_avail=0 Block: [00f56000,00f57000) size=4K avail=0 max_avail=0 Block: [00f57000,00f58000) size=4K avail=0 max_avail=0 Block: [00f58000,00f59000) size=4K avail=0 max_avail=0 Block: [00f59000,00f5a000) size=4K avail=0 max_avail=0 Block: [00f5a000,00f5b000) size=4K avail=0 max_avail=0 Block: [00f5b000,00f5c000) size=4K avail=0 max_avail=0 Block: [00f5c000,00f5d000) size=4K avail=0 max_avail=0 Block: [00f5d000,00f5e000) size=4K avail=0 max_avail=0 Block: [00f5e000,00f5f000) size=4K avail=0 max_avail=0 Block: [00f5f000,00f60000) size=4K avail=0 max_avail=0 Block: [00f60000,00f61000) size=4K avail=0 max_avail=0 Block: [00f61000,00f62000) size=4K avail=0 max_avail=0 Block: [00f62000,00f63000) size=4K avail=0 max_avail=0 Block: [00f63000,00f64000) size=4K avail=0 max_avail=0 Block: [00f64000,00f65000) size=4K avail=0 max_avail=0 Block: [00f65000,00f66000) size=4K avail=0 max_avail=0 Block: [00f66000,00f67000) size=4K avail=0 max_avail=458748K Block: [00f67000,00f68000) size=4K avail=0 max_avail=0 Block: [00f68000,00f69000) size=4K avail=0 max_avail=0 Block: [00f69000,00f6a000) size=4K avail=0 max_avail=0 Block: [00f6a000,00f6b000) size=4K avail=0 max_avail=0 Block: [00f6b000,00f6c000) size=4K avail=0 max_avail=0 Block: [00f6c000,00f6d000) size=4K avail=0 max_avail=0 Block: [00f6d000,00f6e000) size=4K avail=0 max_avail=0 Block: [00f6e000,00f6f000) size=4K avail=0 max_avail=0 Block: [00f6f000,00f70000) size=4K avail=0 max_avail=0 Block: [00f70000,00f71000) size=4K avail=0 max_avail=0 Block: [00f71000,00f72000) size=4K avail=0 max_avail=0 Block: [00f72000,00f73000) size=4K avail=0 max_avail=458748K Block: [00f73000,00f74000) size=4K avail=0 max_avail=0 Block: [00f74000,00f75000) size=4K avail=0 max_avail=0 Block: [00f75000,00f76000) size=4K avail=0 max_avail=0 Block: [00f76000,00f77000) size=4K avail=0 max_avail=540K Block: [00f77000,00f78000) size=4K avail=0 max_avail=0 Block: [00f78000,00f79000) size=4K avail=0 max_avail=540K Block: [00f79000,01000000) size=540K avail=540K max_avail=540K Block: [02000000,02001000) size=4K avail=0 max_avail=458748K Block: [02001000,1e000000) size=458748K avail=458748K max_avail=458748K Block: [1f400000,1f7e0000) size=3968K avail=3968K max_avail=458748K Block: [1f7f0000,1f7f6000) size=24K avail=24K max_avail=24K => mem_size=474673152 (452 MB) / mem_avail=474398720 (452 MB)
:unused_phys_alloc:Allocator 0x28306d8 dump: Block: [0010b000,00f42000) size=14556K avail=14556K max_avail=14556K Block: [01000000,02000000) size=16M avail=16M max_avail=20M Block: [1e000000,1f400000) size=20M avail=20M max_avail=20M Block: [1f7e0000,1f7f0000) size=64K avail=64K max_avail=2310320K Block: [1f7f6000,ac822000) size=2310320K avail=2310320K max_avail=2310320K Block: [adb93000,adb94000) size=4K avail=4K max_avail=2310320K Block: [add9a000,adef0000) size=1368K avail=1368K max_avail=1368K Block: [ae825000,ae870000) size=300K avail=300K max_avail=2310320K Block: [aeff1000,c0000000) size=278588K avail=278588K max_avail=278588K Block: [d0800000,e0000000) size=248M avail=248M max_avail=2310320K Block: [f0000000,fea00000) size=234M avail=234M max_avail=234M Block: [fea19000,feb00000) size=924K avail=924K max_avail=234M Block: [feb40000,feb60000) size=128K avail=128K max_avail=128K Block: [feb71000,feb80000) size=60K avail=60K max_avail=234M Block: [fec02000,fec10000) size=56K avail=56K max_avail=56K Block: [fec11000,fed00000) size=956K avail=956K max_avail=18880K Block: [fed01000,fed40000) size=252K avail=252K max_avail=252K Block: [fed45000,fed80000) size=236K avail=236K max_avail=18880K Block: [fed90000,ffffffff] size=18880K avail=18880K max_avail=18880K => mem_size=3232894976 (3083 MB) / mem_avail=3232894976 (3083 MB)
:virt_alloc: Allocator 0x282c284 dump: Block: [00002000,02000000) size=32760K avail=32760K max_avail=32760K Block: [02e01000,40000000) size=1001468K avail=1001468K max_avail=1792M Block: [50000000,c0000000) size=1792M avail=1792M max_avail=1792M => mem_size=2938097664 (2801 MB) / mem_avail=2938097664 (2801 MB)
:io_mem_alloc: Allocator 0x282d2fc dump: Block: [00000000,00001000) size=4K avail=4K max_avail=4K Block: [0009e000,00100000) size=392K avail=392K max_avail=19908K Block: [ac822000,adb93000) size=19908K avail=19908K max_avail=19908K Block: [adb94000,add9a000) size=2072K avail=2072K max_avail=264M Block: [adef0000,ae825000) size=9428K avail=9428K max_avail=9428K Block: [ae870000,aeff1000) size=7684K avail=7684K max_avail=264M Block: [c0000000,d0800000) size=264M avail=264M max_avail=264M Block: [e0000000,f0000000) size=256M avail=256M max_avail=264M Block: [fea00000,fea19000) size=100K avail=100K max_avail=100K Block: [feb00000,feb40000) size=256K avail=256K max_avail=256K Block: [feb60000,feb71000) size=68K avail=68K max_avail=68K Block: [feb80000,fec02000) size=520K avail=520K max_avail=264M Block: [fec10000,fec11000) size=4K avail=4K max_avail=4K Block: [fed00000,fed01000) size=4K avail=4K max_avail=64K Block: [fed40000,fed45000) size=20K avail=20K max_avail=64K Block: [fed80000,fed90000) size=64K avail=64K max_avail=64K => mem_size=586756096 (559 MB) / mem_avail=586756096 (559 MB)
boot module 'xray_trigger' (112712 bytes) boot module 'nitlog' (124816 bytes) boot module 'ps2_drv' (110324 bytes) boot module 'report_rom' (101328 bytes) boot module 'acpi_drv' (82264 bytes) boot module 'pointer' (71144 bytes) boot module 'scout' (1703696 bytes) boot module 'testnit' (84060 bytes) boot module 'ld.lib.so' (690196 bytes) boot module 'launchpad.config' (594 bytes) boot module 'nitpicker' (265936 bytes) boot module 'timer' (89608 bytes) boot module 'platform_drv' (261348 bytes) boot module 'config' (6482 bytes) boot module 'fb_drv' (305564 bytes) boot module 'liquid_fb' (248880 bytes) boot module 'status_bar' (114120 bytes) boot module 'launchpad' (740392 bytes) boot module 'sel4' (312776 bytes) boot module 'init' (253968 bytes) boot module 'rom_filter' (86348 bytes) Genode 17.05 452 MiB RAM and 261141 caps assigned to init Warning: void Genode::Rpc_cap_factory::free(Genode::Native_capability) not implemented - resources leaked: 0x1 Warning: void Genode::Rpc_cap_factory::free(Genode::Native_capability) not implemented - resources leaked: 0x2 Warning: void Genode::Rpc_cap_factory::free(Genode::Native_capability) not implemented - resources leaked: 0x4 Warning: void Genode::Rpc_cap_factory::free(Genode::Native_capability) not implemented - resources leaked: 0x8 Warning: void Genode::Rpc_cap_factory::free(Genode::Native_capability) not implemented - resources leaked: 0x10 [init] child "timer" announces service "Timer" [init] child "nitpicker_config" announces service "ROM" [init] child "acpi_report_rom" announces service "Report" [init] child "report_rom" announces service "Report" [init -> acpi_drv] Found MADT [init] child "acpi_report_rom" announces service "ROM" [init -> acpi_drv] MADT IRQ 0 -> GSI 2 flags: 0 [init] child "report_rom" announces service "ROM" [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 Warning: void Genode::Rpc_cap_factory::free(Genode::Native_capability) not implemented - resources leaked: 0x20 Warning: PD (init -> acpi_drv) cap limit (used=17, limit=19) exceeded during transfer_quota(3) [init -> acpi_drv] resource_request: cap_quota=3 [init -> nitpicker_config] Warning: top-level node <xray> missing in input ROM xray [init -> nitpicker_config] Warning: could not obtain input value for input xray_enabled [init -> acpi_drv] used before freeing emergency=864K [init -> acpi_drv] used after freeing emergency=848K [init] child "acpi_drv" requests resources: cap_quota=3
On Mon, Jun 4, 2018 at 3:53 AM, Christian Helmuth < christian.helmuth@genode-labs.com> wrote:
Chris,
On Thu, May 31, 2018 at 11:14:02AM -0400, Chris Rothrock wrote:
The build timeframe was less than a month before the 17.08 Genode was released. I was using the 17.05 build which still used the previous NOVA version since NOVA was also updated to v7 when Genode 17.08 was released.
I don't understand this statement and maybe you mix things up here. NOVA changed is version from v6 to v7 in 2014.
I know I can (and have) re-downloaded the 17.05 Genode but is there a possibility of doing the prepare_port from an earlier version of a port (such as NOVA) so that I can reproduce the build that did work? When I
use
the 17.05 and prepare the port, it pulls the newest NOVA and this version actually doesn't work with the older Genode source code.
If you want to use an older version just check out the appropriate Git revision of Genode and run prepare_port for the ports needed. The port mechanism will take care to retrieve the proper port revision for the checked-out Genode revision. Please don't get distracted by the nova port fetching the current Git, it also checks out the proper revision on prepare_port.
Regards
Christian Helmuth Genode Labs
https://www.genode-labs.com/ · https://genode.org/ https://twitter.com/GenodeLabs · /ˈdʒiː.nəʊd/
Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth
Genode users mailing list users@lists.genode.org https://lists.genode.org/listinfo/users
Chris,
On Fri, Jun 15, 2018 at 12:56:05PM -0400, Chris Rothrock wrote:
- In a previous email in this chain you mentioned trying something more
simplistic, such as run/log. Here are the results of this with and without the SABLE bootloader - this just hangs on handing off from NOVA to Genode, not even any errors. The SABLE code will be going open source soon and I will be able to provide this to you as needed in the effort to trace down the problem.
Honestly, with this little information I see no chance to help. I tend to blame SABLE for breaking boot compatibility because (like you write) it works without SABLE. I suggest you investigate if SABLE is able to boot multiboot OSes in a standard compliant way. Have a look at hypervisor and image.elf and ask the original SABLE developers if they identify something SABLE may not support / never was designed to support (e.g., multiple loaded segments). I'm not able to identify anything Genode core may do wrong if even the first log message is missing. Maybe you could add more diagnostic messages?
- The only working binary I have from the 17.05 that I can get SABLE to
boot properly is Genode with seL4. I am trying to be able to reproduce this build but when I build and run Genode 17.05 using seL4 kernel, it doesn't boot into the demo. The nitpicker and/or framebuffer seems to not load properly when it does on the binary I use for testing SABLE. Below is the output from that 17.05 (without using SABLE). Any ideas why this build is no longer working?
[...]
Warning: void Genode::Rpc_cap_factory::free(Genode::Native_capability) not implemented - resources leaked: 0x20 Warning: PD (init -> acpi_drv) cap limit (used=17, limit=19) exceeded during transfer_quota(3) [init -> acpi_drv] resource_request: cap_quota=3 [init -> nitpicker_config] Warning: top-level node <xray> missing in input ROM xray [init -> nitpicker_config] Warning: could not obtain input value for input xray_enabled [init -> acpi_drv] used before freeing emergency=864K [init -> acpi_drv] used after freeing emergency=848K [init] child "acpi_drv" requests resources: cap_quota=3
I doubt that this ever worked as the logged CAP quota shortage is a fatal error.
Sincerely