NOVA spinner and trace

Alexander Boettcher alexander.boettcher at genode-labs.com
Mon Oct 1 21:19:54 CEST 2018



On 01.10.2018 06:18, Nobody III wrote:
> I've tried replacing novga with spinner in the NOVA command line (in
> tool/run/boot_dir/nova), but nothing happens. What do i have to do to
> enable IRQ spinners?

If you switch to multiboot (MBI) 1, it seems to work. See attachment for
an example. For MBI 2 more investigations is required, it seems indeed
not to work.

>
> Also, when I enable TRACE_APIC or TRACE_ACPI in stdio.hpp in the NOVA
> contrib source, the kernel crashes and QEMU gets stuck in a boot loop. How
> can I add this trace information to the serial log and/or log_core?

Yes, some of the trace messages are just to early in code when not
everything is setup to work properly - you can't use them, as you noticed.

You may try to replace some of trace (TRACE_APIC, "<message>") resp.
trace(TRACE_ACPI, "<message"> with Console::print("<message>\n")
manually one-by-one. (without enabling the TRACE_ACPI/TRACE_APIC actually).

Good luck,

-- 
Alexander Boettcher
Genode Labs

https://www.genode-labs.com - https://www.genode.org

Genode Labs GmbH - Amtsgericht Dresden - HRB 28424 - Sitz Dresden
Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth
-------------- next part --------------
diff --git a/repos/base/run/log.run b/repos/base/run/log.run
index 545809a..0ff1213 100644
--- a/repos/base/run/log.run
+++ b/repos/base/run/log.run
@@ -22,10 +22,11 @@ install_config {
 
 build_boot_image "core ld.lib.so init test-log"
 
-append qemu_args "-nographic "
+# append qemu_args "-nographic "
 append xen_args  { sdl="0" }
 
-run_genode_until "Test done.*\n" 20
+run_genode_until forever
+#run_genode_until "Test done.*\n" 20
 
 grep_output {\[init -\> test-log}
 
diff --git a/tool/run/boot_dir/nova b/tool/run/boot_dir/nova
index 73f0e4d..a59a7df 100644
--- a/tool/run/boot_dir/nova
+++ b/tool/run/boot_dir/nova
@@ -3,7 +3,7 @@ proc binary_name_core_o    { } { return "core-nova.o" }
 proc binary_name_timer     { } { return "nova_timer_drv" }
 
 proc kernel_files { } { return hypervisor }
-proc kernel_output { } { return "novga serial" }
+proc kernel_output { } { return "serial spinner" }
 
 proc run_boot_string { } {
 	return "\nHypervisor reports "
@@ -129,15 +129,15 @@ proc run_boot_dir {binaries} {
 		# puts $fh "terminal_output console"
 
 		puts $fh "menuentry 'Genode on NOVA' {"
-		puts $fh " insmod multiboot2"
+		puts $fh " insmod multiboot"
 		puts $fh " insmod gzio"
-		puts $fh " multiboot2 /boot/bender $serial_bender_opt"
+		puts $fh " multiboot /boot/bender $serial_bender_opt"
 		if {[apply_microcode]} {
-			puts $fh " module2 /boot/microcode serial"
-			puts $fh " module2 /boot/micro.code micro.code"
+			puts $fh " module /boot/microcode serial"
+			puts $fh " module /boot/micro.code micro.code"
 		}
-		puts $fh " module2 /boot/hypervisor hypervisor iommu novpid [kernel_output]"
-		puts $fh " module2 /boot/image.elf.gz image.elf"
+		puts $fh " module /boot/hypervisor hypervisor iommu novpid [kernel_output]"
+		puts $fh " module /boot/image.elf.gz image.elf"
 		puts $fh "}"
 		close $fh
 	}


More information about the users mailing list