Assertion failed on FPU

Wei Jin coder.soap at gmail.com
Sun Dec 15 16:59:56 CET 2013


Hi all,

I'm trying to get L4Linux running on my raspberry pi(model B) but there is
something wrong that I couldn't figure out.

The error message is:

Assertion failed: 'Fpu::fpu.current().owner() == current()' [ret=0xf0013544]
  /home/soap/project/L4/kernel/fiasco/src/kern/arm/thread-arm.cpp:800 at
f0012b7c

The value of "Fpu::fpu.current().owner()" is 0 which seems to be the value
set when fpu initialized.

Can anyone help me to fix it?


FPU is enabled in Fiasco config and the hello example works.

All the components are at latest revision(l4linux:41, fiasco:59, l4re:59)

Please let me know if something is missing.



Here's the full log:
-------------------------------------------
L4 Bootstrapper
  Build: #37 Sun Dec 15 22:03:04 CST 2013, 4.7.2
  Scanning up to 256 MB RAM
  Memory size is 256MB (00000000 - 0fffffff)
  RAM: 0000000000000000 - 000000000fffffff: 262144kB
  Total RAM: 256MB
  mod09: 0151b000-0181b000: ramdisk-arm.rd
  mod08: 01229000-0151a4b8: vmlinuz.arm
  mod07: 01228000-012280bd: arm-rv.io
  mod06: 01112000-01227740: io
  mod05: 01111000-01111173: l4lx.cfg
  mod04: 010be000-01110bec: ned
  mod03: 010a4000-010bd498: l4re
  mod02: 01072000-010a3664: moe
  mod01: 01068000-010713b0: sigma0
  mod00: 01016000-0106787c: fiasco
  Moving up to 10 modules behind 1100000
  moving module 00 { 1016000-106787b } -> { 1905000-195687b } [333948]
  moving module 01 { 1068000-10713af } -> { 1957000-19603af } [37808]
  moving module 02 { 1072000-10a3663 } -> { 1961000-1992663 } [202340]
  moving module 03 { 10a4000-10bd497 } -> { 181b000-1834497 } [103576]
  moving module 04 { 10be000-1110beb } -> { 1835000-1887beb } [338924]
  moving module 05 { 1111000-1111172 } -> { 1100000-1100172 } [371]
  moving module 06 { 1112000-122773f } -> { 1101000-121673f } [1136448]
  moving module 07 { 1228000-12280bc } -> { 1217000-12170bc } [189]
  moving module 08 { 1229000-151a4b7 } -> { 1218000-15094b7 } [3085496]
  moving module 09 { 151b000-181afff } -> { 150a000-1809fff } [3145728]
  moving module 03 { 181b000-1834497 } -> { 180a000-1823497 } [103576]
  moving module 04 { 1835000-1887beb } -> { 1824000-1876beb } [338924]
  Scanning fiasco -serial_esc
  Scanning sigma0
  Scanning moe rom/l4lx.cfg
  Relocated mbi to [0x100f000-0x100f15d]
  Loading fiasco
  Loading sigma0
  Loading moe
  find kernel info page...
  found kernel info page at 0x2000
Regions of list 'regions'
    [     1000,      19ff] {      a00} Kern   fiasco
    [     2000,     5efff] {    5d000} Kern   fiasco
    [    90000,     968cf] {     68d0} Sigma0 sigma0
    [    98000,     9e17b] {     617c} Sigma0 sigma0
    [   140000,    16d58b] {    2d58c} Root   moe
    [   170000,    186f0f] {    16f10} Root   moe
    [  1000000,   10153f7] {    153f8} Boot   bootstrap
    [  100f000,   100f25a] {      25b} Root   Multiboot info
    [  1100000,   1876beb] {   776bec} Root   Module
  API Version: (87) experimental
  Sigma0 config    ip:00090100 sp:01014de4
  Roottask config  ip:00140260 sp:00000000
  Starting kernel fiasco at 000011ec
Hello from Startup::stage2
Cache config: ON
ID_PFR[01]:  00000111 00000011 ID_[DA]FR0: 00000033 00000000
ID_MMFR[04]: 01130003 10030302 01222100 00000000
FPU0: Arch: VFPv2(1), Part: VFP11(20), r: 5, v: b, i: 41, t: hard, p:
dbl/sngl
SERIAL ESC: allocated IRQ 57 for serial uart
Not using serial hack in slow timer handler.
Welcome to Fiasco.OC (arm)!
L4/Fiasco.OC arm microkernel (C) 1998-2013 TU Dresden
Rev: r59 compiled with gcc 4.7.2 for Broadcom 2835    []
Build: #18 Sun Dec 15 21:36:50 CST 2013

Calibrating timer loop... done.
MDB: use page size: 20
MDB: use page size: 12
SIGMA0: Hello!
  KIP @ 2000
  allocated 4KB for maintenance structures
SIGMA0: Dump of all resource maps
RAM:------------------------
[0:0;fff]
[0:5f000;8ffff]
[0:97000;97fff]
[0:9f000;13ffff]
[4:140000;16dfff]
[0:16e000;16ffff]
[4:170000;186fff]
[0:187000;100efff]
[4:100f000;100ffff]
[0:1010000;10fffff]
[4:1100000;1876fff]
[0:1877000;effffff]
IOMEM:----------------------
[0:10000000;ffffffff]
MOE: Hello world
MOE: found 237400 KByte free memory
MOE: found RAM from 5f000 to f000000
MOE: allocated 239 KByte for the page array @0x9f000
MOE: virtual user address space [0-bfffffff]
MOE: rom name space cap -> [C:501000]
  BOOTFS: [180a000-1823498] [C:503000] l4re
  BOOTFS: [1824000-1876bec] [C:504000] ned
  BOOTFS: [1100000-1100173] [C:505000] l4lx.cfg
  BOOTFS: [1101000-1216740] [C:506000] io
  BOOTFS: [1217000-12170bd] [C:507000] arm-rv.io
  BOOTFS: [1218000-15094b8] [C:508000] vmlinuz.arm
  BOOTFS: [150a000-180a000] [C:509000] ramdisk-arm.rd
MOE: cmdline: moe rom/l4lx.cfg
MOE: Starting: rom/ned rom/l4lx.cfg
MOE: loading 'rom/ned'
Ned says: Hi World!
Ned: loading file: 'rom/l4lx.cfg'
l4linux | libio: Warning: Query of 'vbus' failed!
l4linux | PH  0 (t:        1) offs=00008000 vaddr=02000000 vend=0235af1c
l4linux |                     phys=02000000 ephys=0235af1c
l4linux |                     f_sz=002d93b6 memsz=0035af1c flgs=rwx
l4linux | PH  1 (t:        4) offs=0029b3f4 vaddr=022933f4 vend=02293418
l4linux |                     phys=022933f4 ephys=02293418
l4linux |                     f_sz=00000024 memsz=00000024 flgs=r-x
l4linux | PH  2 (t: 1685382481) offs=00000000 vaddr=00000000 vend=00000000
l4linux |                     phys=00000000 ephys=00000000
l4linux |                     f_sz=00000000 memsz=00000000 flgs=rwx
l4linux | Starting binary at 0x2000298, argc=7 argv=0x80007f8c
*argv=0xb1007ff0 argv0=rom/vmlinuz.arm
l4linux | External resolver is at 0xa80007a0
l4linux | ======> L4Linux starting... <========
l4linux | Linux version 3.11.0-l4-svn41 (soap at soap-quantal) (gcc version
4.7.2 (Sourcery CodeBench Lite 2012.09-64) ) #5 Sun Dec 15 21:56:56 CST 2013
l4linux | Binary name: rom/vmlinuz.arm
l4linux |    This is an AEABI build.
l4linux | Linux kernel command line (6 args): mem=64M console=ttyLv0
l4x_rd=rom/ramdisk-arm.rd root=1:0 ramdisk_size=2048 init=/bin/sh
l4linux | CPU mapping (l:p)[1]: 0:0
l4linux | Image: 02000000 - 02400000 [4096 KiB].
l4linux | Areas: Text:     02000000 - 022b2000 [2760kB] (a bit longer)
l4linux |        Data:     022b2000 - 022d4100 [136kB]
l4linux |        Initdata: 02294000 - 022b053c [113kB]
l4linux |        BSS:      022d93b6 - 0235af1c [518kB]
l4linux | Device scan:
l4linux | Device scan done.
l4linux | l4lx_thread_create: Created thread 413 (cpu0) (u:b3000e00,
v:b3000c00, sp:022b3fa4)
l4linux | main thread will be 413
l4linux | l4x_register_pointer_section: addr = 02000000 size = 3518464
l4linux | section-with-init: Virt: 0x2000000 to 0x235af1b [3435 KiB]
l4linux | section-with-init: Phys: 0x0024f000 to 0x005a9f1b, [3435 KiB]
l4linux | Main thread running, waiting...
l4linux | L4x: Memory size: 64MB
l4linux | L4x: Setting superpages for main memory
l4linux | L4x: Adjusted memory start: 02000000
l4linux |     Main memory: Virt: 0x2400000 to 0x63fffff [65536 KiB]
l4linux |     Main memory: Phys: 0x01900000 to 0x058fffff, [65536 KiB]
l4linux | l4x: vmalloc area: 06400000 - 0e400000
l4linux | l4x_register_pointer_section: addr = 02000000 size = 3518464
l4linux |            text: Virt: 0x2000000 to 0x235af1b [3435 KiB]
l4linux |            text: Phys: 0x0024f000 to 0x005a9f1b, [3435 KiB]
l4linux | l4x_rd_path: rom/ramdisk-arm.rd
l4linux | Loading: rom/ramdisk-arm.rd
l4linux | INITRD: Size of RAMdisk is 3072KiB
l4linux | RAMdisk from 00002000 to 00302000 [3072KiB]
l4linux | l4lx_thread_create: Created thread 418 (timer) (u:b3000a00,
v:00000000, sp:022f5fa0)
Booting Linux on physical CPU 0x0
Linux version 3.11.0-l4-svn41 (soap at soap-quantal) (gcc version 4.7.2
(Sourcery CodeBench Lite 2012.09-64) ) #5 Sun Dec 15 21:56:56 CST 2013
CPU: Fiasco [410fb767] revision 7 (ARMv7), cr=00000000
CPU: PIPT / VIPT nonaliasing data cache, VIPT nonaliasing instruction cache
Machine: L4
Memory policy: ECC disabled, Data cache writeback
INITRD: 00002000 - 00302000
Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 17209
Kernel command line: mem=64M console=ttyLv0 l4x_rd=rom/ramdisk-arm.rd
root=1:0 ramdisk_size=2048 init=/bin/sh
PID hash table entries: 512 (order: -1, 2048 bytes)
Dentry cache hash table entries: 16384 (order: 4, 65536 bytes)
Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)
Memory: 64804K/69636K available (2033K kernel code, 136K rwdata, 604K
rodata, 113K init, 518K bss, 4832K reserved)
Virtual kernel memory layout:
    vector  : 0xbffff000 - 0xc0000000   (   4 kB)
    fixmap  : 0xfff00000 - 0xfffe0000   ( 896 kB)
    vmalloc : 0x06400000 - 0x0e400000   ( 128 MB)
    lowmem  : 0x00000000 - 0x06400000   ( 100 MB)
    modules : Virtual kernel memory layout:
    vector  : 0xbffff000 - 0xc0000000   (   4 kB)
    fixmap  : 0xfff00000 - 0xfffe0000   ( 896 kB)
    vmalloc : 0x06400000 - 0x0e400000   ( 128 MB)
    lowmem  : 0x00000000 - 0x06400000   ( 100 MB)
    moNR_IRQS:220
l4timer: Using IRQ210
sched_clock: 32 bits at 100 Hz, resolution 10000000ns, wraps every
4294967286ms
Console: colour dummy device 80x30
console [ttyLv0] enabled
Calibrating delay loop... 464.48 BogoMIPS (lpj=2322432)
pid_max: default: 32768 minimum: 301
Mount-cache hash table entries: 512
CPU: Testing write buffer coherency: ok
Setting up static identity map for 0x021e7cb8 - 0x021e7cb8
NET: Registered protocol family 16
DMA: preallocated 256 KiB pool for atomic coherent allocations
bio: create slab <bio-0> at 0
Switched to clocksource l4kipclk
NET: Registered protocol family 2
TCP established hash table entries: 1024 (order: 1, 8192 bytes)
TCP bind hash table entries: 1024 (order: 0, 4096 bytes)
TCP: Hash tables configured (established 1024 bind 1024)
TCP: reno registered
UDP hash table entries: 256 (order: 0, 4096 bytes)
UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
NET: Registered protocol family 1
Trying to unpack rootfs image as initramfs...
rootfs image is not initramfs (junk in compressed archive); looks like an
initrd
INITRD: Freeing memory.
l4x: Checks passed.
msgmni has been set to 126
io scheduler noop registered
io scheduler deadline registered
io scheduler cfq registered (default)
L4 serial driver
ttyLv0 at MMIO 0x1 (irq = 211) is a L4
l4ser_shm: L4 shared mem serial driver
l4cdds: No name given, not starting.
brd: module loaded
l4bdds: No name given, not starting.
mousedev: PS/2 mouse device common for all mice
TCP: cubic registered
NET: Registered protocol family 17
0x00000000, 0xf1199000 // these are values of 'Fpu::fpu.current().owner()'
and 'current()'

Assertion failed: 'Fpu::fpu.current().owner() == current()' [ret=0xf0013544]
  /home/soap/project/L4/kernel/fiasco/src/kern/arm/thread-arm.cpp:800 at
f0012b7c
-------------------------------------------------------
# end of log


Thank you for any help!

Soap
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://os.inf.tu-dresden.de/pipermail/l4-hackers/attachments/20131215/835c32db/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: assertion.log
Type: application/octet-stream
Size: 10145 bytes
Desc: not available
URL: <http://os.inf.tu-dresden.de/pipermail/l4-hackers/attachments/20131215/835c32db/attachment.obj>


More information about the l4-hackers mailing list