Unable to boot Fiasco.OC on amd64

Lluís Vilanova <[email protected]>
Newsgroups gmane.comp.micro-kernel.l4.devel
Message-ID <[email protected]>
Hi there,

After having to play with the load addresses of both fiasco and some of the
modules [1], I've been able to boot fiasco, but only to find it chokes on some
assertion, immediately following a pager warning (see error.jpg screenshot).

Sorry for using a screenshot, but I've been unable to make the serial console
work, so no copy&paste is available.

As I'm new to L4, I don't know if the error is due to my changes or due to some
other mis-configuration on the boot process. See the attached grub2.txt for the
GRUB2 entries I've tried (the error corresponds to the first entry).

I'm using the l4re-core-2013060718 tarball, all compiled on a debian testing
(gcc 4.7.3).

Any help on the boot or the serial console support is much appreciated.


Thanks a lot,
  Lluis

[1] To avoid some region overlaps, see attached l4.patch, and memory.jpg for the
    memory range configuration of the machine.



-- 
 "And it's much the same thing with knowledge, for whenever you learn
 something new, the whole world becomes that much richer."
 -- The Princess of Pure Reason, as told by Norton Juster in The Phantom
 Tollbooth

_______________________________________________
l4-hackers mailing list
[email protected]
http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers
l4.patch (text/x-diff, 3.6 KB)
diff -ur /home/vilanova/l4re-core-2013060718/src/kernel/fiasco/src/boot/amd64/boot_cpu.cc src/kernel/fiasco/src/boot/amd64/boot_cpu.cc
--- /home/vilanova/l4re-core-2013060718/src/kernel/fiasco/src/boot/amd64/boot_cpu.cc	2013-06-07 19:20:04.000000000 +0300
+++ src/kernel/fiasco/src/boot/amd64/boot_cpu.cc	2013-08-04 21:57:06.187556000 +0300
@@ -546,7 +546,7 @@
   ptab_alloc(&base_pml4_pa);
 
   // Establish one-to-one mappings for the first 4MB of physical memory
-  pdir_map_range(base_pml4_pa, /*virt*/0, /*phys*/0, /*size*/4 << 20,
+  pdir_map_range(base_pml4_pa, /*virt*/0, /*phys*/0, /*size*/512 << 20,
 		 INTEL_PDE_VALID | INTEL_PDE_WRITE | INTEL_PDE_USER);
 
   // map in the first 4MB of physical memory to 0xfffffffff0000000
diff -ur /home/vilanova/l4re-core-2013060718/src/kernel/fiasco/src/kern/ia32/64/linking.h src/kernel/fiasco/src/kern/ia32/64/linking.h
--- /home/vilanova/l4re-core-2013060718/src/kernel/fiasco/src/kern/ia32/64/linking.h	2013-06-07 19:20:04.000000000 +0300
+++ src/kernel/fiasco/src/kern/ia32/64/linking.h	2013-08-04 20:28:02.040486000 +0300
@@ -1,7 +1,7 @@
 #pragma once
 
 #define FIASCO_MP_TRAMP_PAGE     0x1000   // must be below 1MB
-#define FIASCO_IMAGE_PHYS_START  0x400000
+#define FIASCO_IMAGE_PHYS_START  0x800000
 //#define FIASCO_IMAGE_PHYS_START  0x2000
 #define FIASCO_IMAGE_VIRT_START  0xfffffffff0000000
 
diff -ur /home/vilanova/l4re-core-2013060718/src/kernel/fiasco/src/kernel.amd64.ld src/kernel/fiasco/src/kernel.amd64.ld
--- /home/vilanova/l4re-core-2013060718/src/kernel/fiasco/src/kernel.amd64.ld	2013-06-07 19:20:04.000000000 +0300
+++ src/kernel/fiasco/src/kernel.amd64.ld	2013-08-04 20:21:33.858997000 +0300
@@ -3,7 +3,7 @@
 #include "globalconfig.h"
 #include "linking.h"
 
-_boot_sys_start = 0x300000;
+_boot_sys_start = 0x900000;
 _kernel_image	= FIASCO_IMAGE_VIRT_START;	/* kernel link address */
 _load		= FIASCO_IMAGE_PHYS_START & 0x1fffff;
 /*
diff -ur /home/vilanova/l4re-core-2013060718/src/l4/pkg/bootstrap/server/src/Make.rules src/l4/pkg/bootstrap/server/src/Make.rules
--- /home/vilanova/l4re-core-2013060718/src/l4/pkg/bootstrap/server/src/Make.rules	2013-06-07 19:20:04.000000000 +0300
+++ src/l4/pkg/bootstrap/server/src/Make.rules	2013-08-04 22:04:27.533512000 +0300
@@ -16,7 +16,7 @@
 
 DEFAULT_RELOC_arm   := 0x01000000
 DEFAULT_RELOC_x86   := 0x002d0000
-DEFAULT_RELOC_amd64 := 0x002d0000
+DEFAULT_RELOC_amd64 := 0x02000000
 DEFAULT_RELOC_ppc32 := 0x002d0000
 DEFAULT_RELOC_sparc := 0x00800000
 RELOC_PHYS          := y
diff -ur /home/vilanova/l4re-core-2013060718/src/l4/pkg/moe/server/src/Makefile src/l4/pkg/moe/server/src/Makefile
--- /home/vilanova/l4re-core-2013060718/src/l4/pkg/moe/server/src/Makefile	2013-06-07 19:20:04.000000000 +0300
+++ src/l4/pkg/moe/server/src/Makefile	2013-08-04 19:05:42.255371000 +0300
@@ -2,7 +2,7 @@
 L4DIR		?= $(PKGDIR)/../..
 
 TARGET		= moe
-DEFAULT_RELOC	= 0x0140000
+DEFAULT_RELOC	= 0x0400000
 RELOC_PHYS      = y
 SRC_CC		= main.cc page_alloc.cc dataspace.cc dataspace_cont.cc \
                   dataspace_annon.cc globals.cc \
diff -ur /home/vilanova/l4re-core-2013060718/src/l4/pkg/sigma0/server/src/Makefile src/l4/pkg/sigma0/server/src/Makefile
--- /home/vilanova/l4re-core-2013060718/src/l4/pkg/sigma0/server/src/Makefile	2013-06-07 19:20:04.000000000 +0300
+++ src/l4/pkg/sigma0/server/src/Makefile	2013-08-04 20:32:35.109780000 +0300
@@ -8,7 +8,7 @@
                        cxx_io_kdebug l4sys-direct l4sys
 DEFINES             += -DL4_MINIMAL_LIBC
 DEFAULT_RELOC_x86   := 0x00100000
-DEFAULT_RELOC_amd64 := 0x00100000
+DEFAULT_RELOC_amd64 := 0x10000000
 DEFAULT_RELOC_arm   := 0x00090000
 DEFAULT_RELOC_sparc := 0x01200000
 DEFAULT_RELOC_ppc32 := 0x00100000
memory.jpg (image/jpeg, 45 KB) - not displayed
error.jpg (image/jpeg, 75.8 KB) - not displayed
grub2.txt (text/plain, 491 B)
menuentry "L4" {
    multiboot /boot/l4/bootstrap -serial
    module /boot/l4/fiasco /fiasco -serial_esc
    module /boot/l4/l4f/sigma0 /sigma0
    module /boot/l4/l4f/moe /moe
    module /boot/l4/l4f/hello /hello
}
menuentry "L4 - L4re" {
    multiboot /boot/l4/bootstrap -serial
    module /boot/l4/fiasco /fiasco -serial_esc
    module /boot/l4/l4f/sigma0 /sigma0
    module /boot/l4/l4f/moe /moe --init=rom/hello
    module /boot/l4/l4f/l4re /l4re
    module /boot/l4/l4f/hello /hello
}
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.