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
}