Hello,
I'm working with L4Ka microkernel (https://github.com/l4ka/pistachio)
for a long time. I have upgraded my compiler for a new 4.8 a few days
ago. L4Ka is built for amd64 (K8 option).
When I try to boot L4ka built with gcc 4.7.x or 4.8.x, it immediatly
reboots just after its initialization :
L4Ka::Pistachio - built on Jun 16 2013 12:41:59 by bertrand@riemann
using gcc version 4.7.3
Checking CPU features
virtual memory layout:
user area 0 - ffffff0000000000
copy area ffffff8000000000 - ffffff8080000000
ktcb area fffffffe80000000 - fffffffec0000000
kernel area ffffff0000000000 - ffffffffffffffff
cpulocal data ffffffffc0a00000 - ffffffffc0c00000
apic area ffffffffffc00000 - ffffffffffc03000
utcb pgarea ffffffffffa00000
space link ffffff0000000000
Initializing kernel memory (ffffffffc0c17000-ffffffffc0d17000) [1M]
Initializing kernel space
Switching to CPU local pagetable 0000000000c18000 (CPU 0)
CPU local pagetable activated c18000 (CPU 0)
Initializing TCBs
Activating TSS (Preliminary)
Initializing GDT (Preliminary)
Activating IDT (Preliminary)
Initializing kernel interface page (ffffffffc062e000)
Adding more kernel memory
found 8M kmem (7600000-7dfffff) ->
(ffffffffc7600000-ffffffffc7dfffff)
Initializing memory info
Initializing mapping database
Initializing kernel debugger
Initializing IRQ hardware
Parsing ACPI tables
RSDP is at fffffffec00fd950
RSDT is at 0000000007ffe450
XSDT is at 0000000000000000
FACP is at 0000000007ffff80
SSDT is at 0000000007fff7a0
APIC is at 0000000007fff680
HPET is at 0000000007fff640
FADT is at 0000000007ffff80 (remap fffffffec7ffff80), pmtimer
IO port b008
MADT is at 0000000007fff680 (remap fffffffec7fff680), local
APICs @ 00000000fee00000
Mapping local APICs at 00000000fee00000 to ffffffffffc00000
local APIC: apic_id=0 use=ok proc_id=0
local APIC: apic_id=1 use=ok proc_id=1
Found 2 active CPUs, boot CPU is 0
Initializing IOAPICs
IOAPIC: id=0 irq_base=0 addr=00000000fec00000
realid=0 maxint=24, version=17
IRQ source override: srcbus=0, srcirq=0, dest=2, conform pol.,
trigger=conform
IRQ source override: srcbus=0, srcirq=5, dest=5, active high,
trigger=level
IRQ source override: srcbus=0, srcirq=9, dest=9, active high,
trigger=level
IRQ source override: srcbus=0, srcirq=10, dest=10, active high,
trigger=level
IRQ source override: srcbus=0, srcirq=11, dest=11, active high,
trigger=level
MADT: found unknown type=4, len=6
24 IRQ input lines, max IRQ ID is 23
IRQ 0: APIC 0, line 0, edge, high active
IRQ 1: APIC 0, line 1, edge, high active
IRQ 2: APIC 0, line 2, edge, low active
IRQ 3: APIC 0, line 3, edge, high active
IRQ 4: APIC 0, line 4, edge, high active
IRQ 5: APIC 0, line 5, level, high active
IRQ 6: APIC 0, line 6, edge, high active
IRQ 7: APIC 0, line 7, edge, high active
IRQ 8: APIC 0, line 8, edge, high active
IRQ 9: APIC 0, line 9, level, high active
IRQ 10: APIC 0, line 10, level, high active
IRQ 11: APIC 0, line 11, level, high active
IRQ 12: APIC 0, line 12, edge, high active
IRQ 13: APIC 0, line 13, edge, high active
IRQ 14: APIC 0, line 14, edge, high active
IRQ 15: APIC 0, line 15, edge, high active
IRQ 16: APIC 0, line 16, level, low active
IRQ 17: APIC 0, line 17, level, low active
IRQ 18: APIC 0, line 18, level, low active
IRQ 19: APIC 0, line 19, level, low active
IRQ 20: APIC 0, line 20, level, low active
IRQ 21: APIC 0, line 21, level, low active
IRQ 22: APIC 0, line 22, level, low active
IRQ 23: APIC 0, line 23, level, low active
Initializing Timer
global timer: trap gate 64
Starting 2 application processors (0000000000d1e4e0->0000000000004000)
Sending startup IPI to CPU#1 APIC 1
local APIC id=0, version=17
local APIC error trap gate 67
Activating TSS (CPU 0)se
Initializing GDT (CPU 0)
Activating IDT (CPU 0)
Enabling global pages (CPU 0)
Disabling K8 Flush Filter
Activating MSRS (CPU 0)
Initializing Timer (CPU 0)
Calculating processor speed (CPU 0)... AP processor is alive
AP switched to kernel ptab
local APIC id=1, version=17
local APIC error trap gate 67
Activating TSS (CPU 1)se
Initializing GDT (CPU 1)
Activating IDT (CPU 1)
Enabling global pages (CPU 1)
Disabling K8 Flush Filter
Activating MSRS (CPU 1)
Initializing Timer (CPU 1)
Calculating processor speed (CPU 1)...
speed: 1648 MHz, bus speed: 1001 MHz (CPU 0)
Initializing Processor (CPU 0)
Registering processor 0 in KIP (1001MHz, 1648MHz)
speed: 1657 MHz, bus speed: 1006 MHz (CPU 1)
Initializing Processor (CPU 1)
Registering processor 1 in KIP (1006MHz, 1657MHz)
Initialize cpu local mappings (CPU 1)
Remapping CPU local memory ffffffffc0a00000 - ffffffffc0c00000
(CPU 1)
Switching to CPU local pagetable 0000000000c28000 (CPU 1)
CPU local pagetable activated c28000 (CPU 1)
Initializing threading (CPU 1)
Switching to idle thread (CPU 1)
Idle thread started on CPU 1
Initializing threading (CPU 0)
Switching to idle thread (CPU 0)
System has 24 hardware interrupts
and... reboots.
If I rebuild the same kernel with the same options, it just runs as
expected. I have no idea to investigate.
Best regards,
JKB