Boot problem with the new version of l4linux on Xscale

WanKeun Jo jowkju at
Sat Oct 14 05:37:08 CEST 2006


I tried to run Fiasco-L4Linux on Xscale board. I'm using L4Linux-2.6.17 version.

First, I made a bootstap image (=bootstrap.raw) and loaded on Xscale and run it.
But some server programs' ranges were overlapped, so I fixed some server programs'
DEFAULT_RELOC_arm address, and then started working.

During the boot process, "Warning: Unable to open an initial console" is warned and halt. 
I checked on boot process after ram disk is loaded, dev file path lookup fails..
So as to mount dev file system again after loading ram disk, I added "devfs options" to fs/Kconfig.
And then the warning message is not presented.

But after that, I got a new error message
Assertion failed: 'space() == current_space()'  in /home/jowkju/project/Microkernel/Fiasco/Fiasco_Xscale/l4/kernel/fiasco/src/kern/thread-
at f0005400

This error may occur during the "init" program in ram disk execute. However, there may not be errors in init program because it works well in the 2.6.16 version.
And maybe the problem occurs during the context switching between "init" program and other 

The following is the whole messages from boot starts.
Starting kernel...

Hello from Startup::stage2
Initialize page table
  allocated zero page @0xf0400000[phys=0xa3800000]
  allocate zero-mapped page... [0xefc00000] done
  free zero-mapped page... done
  allocate zero-filled page... [0xefc01000] done
  free zero-filled page... done
  allocate no-zero-filled page... [0xefc02000] done
  free no-zero-filled page... done
SERIAL ESC: allocated IRQ 22 for serial uart
Not using serial hack in slow timer handler.
Welcome to Fiasco(arm)!
DD-L4(x0)/arm microkernel (C) 1998-2006 TU Dresden
Rev: Fri Sep 15 09:49:11 2006 compiled with gcc 3.4.4 for XScale
SIGMA0[2.0]: Hello World!
SIGMA0: KIP is at: a0001000
SIGMA0 free region:  : a0000000, a3ffffff
SIGMA0 alloc region: : a0000000, a003ffff owner: 1
SIGMA0 alloc region: : a004c000, a005f7ff owner: 1
SIGMA0 alloc region: : a3800000, a3ffffff owner: 1

  Command line found: "roottask task modname "bmodfs" module module module module module"

   66172kB (  64MB) total RAM (reported by bootloader)
   56652kB (  56MB) received RAM from Sigma0
    7868kB (   8MB) reserved RAM for RMGR

Roottask: Parsing command line config.
  configured task 0x00 (bmodfs):
    vm_offs:0 irq:ffff lmcp:ffff allow_cli:0 mcp:ff prio:10 small:ff mods:5

Roottask: Loading 12 modules.
#05: loading "names"
     from [a146c000-a14761a4] to [a0109000-a0110e20][a0111000-a011b000]
     entry at a0041060 via trampoline page code
#06: loading "log"
     from [a1477000-a148730c] to [a0160000-a0167f18][a0168000-a01956d4]
     entry at a004205c via trampoline page code
#07: loading "dm_phys -v"
     from [a1488000-a14a61a4] to [a01b0000-a01c4c78][a01c5000-a01ce000]
     entry at a0043064 via trampoline page code
#08: loading "simple_ts -t 10"
     from [a14a7000-a14ba30c] to [a0290000-a029a1f0][a029b000-a02a35a0]
     entry at a0044068 via trampoline page code
#09: loading "l4exec"
     from [a14bb000-a14f71a4] to [a01e0000-a0212348][a0213000-a022c000]
     entry at a0045060 via trampoline page code
#0a: loading "bmodfs"
     from [a14f8000-a151d1a4] to [a0240000-a025b0a8][a025c000-a0273000]
     passing module                        [ a151e000-a1547eec ]
     passing module shared_test                           [ a1548000-a1549700 ]
     passing module vmlinuz26.arm                         [ a154a000-a173c5b4 ]
     passing module rd1                                   [ a173d000-a1b3d000 ]
     passing module l4linux.cfg                           [ a1b3d000-a1b3d0b0 ]
     entry at a00460ec via trampoline page code
#0b: loading "loader --fprov=BMODFS l4linux.cfg"
     from [a1b3e000-a1b721a4] to [a02c0000-a02eaff4][a02eb000-a0309000]
     entry at a004707c via trampoline page code

simplets| Configured for 10 tasks.
DMphys  | DMphys memory map:
DMphys  |   phys. memory 0xa0000000-0xa4000000 (from L4 kernel info page)
DMphys  |   using 0xa0000000-0xa4000000
DMphys  |        Memory area      Pool  PS  Flags
DMphys  |   0xa0000000-0xa0068000  --   --  RESERVED
DMphys  |   0xa0068000-0xa00bb000  --   --  DENIED
DMphys  |   0xa00bb000-0xa00cf000  --   --  RESERVED
DMphys  |   0xa00cf000-0xa0109000   0   12  MAPPED
DMphys  |   0xa0109000-0xa011b000  --   --  DENIED
DMphys  |   0xa011b000-0xa0160000   0   12  MAPPED
DMphys  |   0xa0160000-0xa0196000  --   --  DENIED
DMphys  |   0xa0196000-0xa01b0000   0   12  MAPPED
DMphys  |   0xa01b0000-0xa01cd000  --   --  RESERVED
DMphys  |   0xa01cd000-0xa01e0000   0   12  MAPPED
DMphys  |   0xa01e0000-0xa022c000  --   --  DENIED
DMphys  |   0xa022c000-0xa0240000   0   12  MAPPED
DMphys  |   0xa0240000-0xa0273000  --   --  DENIED
DMphys  |   0xa0273000-0xa0290000   0   12  MAPPED
DMphys  |   0xa0290000-0xa02a4000  --   --  DENIED
DMphys  |   0xa02a4000-0xa02c0000   0   12  MAPPED
DMphys  |   0xa02c0000-0xa0309000  --   --  DENIED
DMphys  |   0xa0309000-0xa0400000   0   12  MAPPED
DMphys  |   0xa0400000-0xa1500000   0   20  MAPPED
DMphys  |   0xa1500000-0xa151e000   0   12  MAPPED
DMphys  |   0xa151e000-0xa1b3e000  --   --  DENIED
DMphys  |   0xa1b3e000-0xa1c00000   0   12  MAPPED
DMphys  |   0xa1c00000-0xa3800000   0   20  MAPPED
DMphys  |   0xa3800000-0xa4000000  --   --  DENIED
DMphys  |
DMphys  | DMphys memory pools:
DMphys  |   pool 0 (Default memory pool):
DMphys  |   size:  48960KB total,  48960KB free,  32KB reserved
DMphys  |     0xa00cf000-0xa0109000 (   232KB,    0MB)
DMphys  |     0xa011b000-0xa0160000 (   276KB,    0MB)
DMphys  |     0xa0196000-0xa01b0000 (   104KB,    0MB)
DMphys  |     0xa01cd000-0xa01e0000 (    76KB,    0MB)
DMphys  |     0xa022c000-0xa0240000 (    80KB,    0MB)
DMphys  |     0xa0273000-0xa0290000 (   116KB,    0MB)
DMphys  |     0xa02a4000-0xa02c0000 (   112KB,    0MB)
DMphys  |     0xa0309000-0xa151e000 ( 18516KB,   18MB)
DMphys  |     0xa1b3e000-0xa3800000 ( 29448KB,   29MB)
bmodfs  | Passed the following modules:
bmodfs  |   module "" (168kB)
bmodfs  |   module "shared_test" (6kB)
bmodfs  |   module "vmlinuz26.arm" (1994kB)
bmodfs  |   module "rd1" (4096kB)
bmodfs  |   module "l4linux.cfg" (1kB)
loader  | sleeping for 1000 ms
exec    | vmlinuz26.arm: Loading
exec    | vmlinuz26.arm: Interpreter section found, contains "/usr/lib/"
exec    | vmlinuz26.arm: Has no symbols
exec    | vmlinuz26.arm: Has no lines
exec    | Loading
exec    | Has no symbols
exec    | Has no lines
exec    | Relocating to 00010000
exec    | Linking
exec    | Symbol l4sys_fixup_abs_syscalls is weak and undefined
exec    | Symbol mmap_normal is weak and undefined
exec    | Symbol munmap_normal is weak and undefined
exec    | Relocating entry 00006400 => 00016400
exec    | Setting section flag 0800
exec    | vmlinuz26.arm: Setting section flag 0800
loader  | vmlinuz26.arm: Starting l4env-style application
loader  | vmlinuz26.arm,#c: Starting at l4loader_init (00016440)
exec    | vmlinuz26.arm: Linking
exec    | vmlinuz26.arm: Relocating entry 00216000 => 00216000
loader  | vmlinuz26.arm,#c: Continue at l4env_init (00016b60,
l4lx    | ======> L4Linux 2.6 starting... <========
l4lx    | Linux version 2.6.17-l4 (jowkju at jowk) (gcc version 3.4.4) #44 Sat Oct
l4lx    :  14 12:21:10 KST 2006
l4lx    | Binary name: vmlinuz26.arm
l4lx    | Kernel command line (9 args): root=1:0 mem=16M load_ramdisk=1 ramdisk
l4lx    : _size=4096 l4env_rd=rd1 console=ttyLv0 l4ser.vkey_irq=46 panicblink=0
l4lx    :  lang=us
l4lx    | Image: 00200000 - 00434000 [2256 KiB].
l4lx    | Areas: Text:     00200000 - 0039c000 [1648kB] (a bit longer)
l4lx    |        Data:     0039c000 - 003e2fb0 [283kB]
l4lx    |        Initdata: 00200000 - 00215000 [84kB]
l4lx    |        BSS:      003e8000 - 00434000 [304kB]
l4lx    | l4lx_thread_create: Created thread 0c.03 (tamer)
l4lx    | Using tamed mode.
l4lx    | l4lx_thread_create: Created thread 0c.04 (server)
l4lx    | main thread will be 0c.04
l4lx    | l4env_register_pointer_section: addr = 00200000 size = 2310144
l4lx    |      sec-w-init: virt: 0x00200000 to 0x00433fff [2256 KiB]
l4lx    | Noncontiguous region for sec-w-init
l4lx    |      sec-w-init: Number of physical regions: 4, 2310144 Bytes
l4lx    | l4env_linux_startup thread 4.
l4lx    |      sec-w-init: 1: Phys: 0xa0309000 to 0xa04a1000, Size:  1671168
l4lx    |      sec-w-init: 2: Phys: 0xa011b000 to 0xa0160000, Size:   282624
l4lx    |      sec-w-init: 3: Phys: 0xa00cf000 to 0xa0109000, Size:   237568
l4lx    |      sec-w-init: 4: Phys: 0xa0273000 to 0xa0290000, Size:   118784
l4lx    | main thread: received startup message.
l4lx    | Main thread running, waiting...
l4lx    | setup_l4env_memory: Forcing superpages for main memory
l4lx    | Main memory size: 16MB
l4lx    |     Main memory: virt: 0x00500000 to 0x014fffff [16384 KiB]
l4lx    |     Main memory: Number of physical regions: 1, 16777216 Bytes
l4lx    |     Main memory: 1: Phys: 0xa2800000 to 0xa3800000, Size: 16777216
l4lx    | Filling lower ptabs...
l4lx    | Done (650 entries).
l4lx    | l4env_rd_path: rd1
l4lx    | Loading: rd1
l4lx    | INITRD: Size of RAMdisk is 4096KiB
l4lx    | RAMdisk from 01500000 to 01900000 [4096KiB]
l4lx    | l4lx_thread_create: Created thread 0c.05 (IRQ CPU0)
l4lx    | l4lx_thread_create: Created thread 0c.06 (timer.i0)
Linux version 2.6.17-l4 (jowkju at jowk) (gcc version 3.4.4) #44 Sat Oct 14 12:21:10 KST 2006
CPU: Fiasco [0001f000] revision 0 (ARMv4)
Machine: L4
Memory policy: ECC disabled, Data cache writeback
CPU0: D  write-through cache
CPU0: cache: 512 bytes, associativity 1, 8 byte lines, 64 sets
INITRD: 01500000 - 01900000
Built 1 zonelists
Kernel command line: root=1:0 mem=16M load_ramdisk=1 ramdisk_size=4096 l4env_rd=rd1 console=ttyLv0 l4ser.vkey_irq=46 panicblink=0 lang=us
l4lx_irq_init: l4lx_irq_max = 50
l4lx_irq_init: creating IRQ thread on cpu 0
irq_thread: Starting IRQ thread on CPU 0
PID hash table entries: 128 (order: 7, 512 bytes)
timer_irq_thread: Starting timer IRQ thread.
Dentry cache hash table entries: 4096 (order: 2, 16384 bytes)
Inode-cache hash table entries: 2048 (order: 1, 8192 bytes)
Memory: 5MB 16MB = 21MB total
Memory: 16152KB available (1556K code, 608K data, 84K init)
Mount-cache hash table entries: 512
checking if image is isn't (bad gzip magic numbers); looks like an initrd
INITRD: Freeing memory.
NET: Registered protocol family 16
NET: Registered protocol family 2
l4lx    | l4lx_thread_create: Created thread 0c.07 (Idler)
IP route cache hash table entries: 256 (order: -2, 1024 bytes)
TCP established hash table entries: 1024 (order: 0, 4096 bytes)
TCP bind hash table entries: 512 (order: -1, 2048 bytes)
TCP: Hash tables configured (established 1024 bind 512)
TCP reno registered
NetWinder Floating Point Emulator V0.97 (double precision)
devfs: 2004-01-31 Richard Gooch (rgooch at
devfs: devfs_debug: 0x0
devfs: boot_options: 0x1
io scheduler noop registered (default)
L4 serial driver
ttyLv0 at MMIO 0x1 (irq = 46) is a L4
RAMDISK driver initialized: 16 RAM disks of 4096K size 1024 blocksize
nbd: registered device at major 43
ts: Compaq touchscreen protocol output
TCP bic registered
NET: Registered protocol family 1
NET: Registered protocol family 17
RAMDISK: ext2 filesystem found at block 0
RAMDISK: Loading 4096KiB [1 disk] into ram disk... done.
VFS: Mounted root (ext2 filesystem) readonly.
Mounted devfs on /dev
execve for /sbin/init
Allocated 0d.00

Assertion failed: 'space() == current_space()'
  in /home/jowkju/project/Microkernel/Fiasco/Fiasco_Xscale/l4/kernel/fiasco/src/kern/thread-pagefault.cpp:82
  at f0005400

Return reboots, "k" enters L4 kernel debugger...
BUG: soft lockup detected on CPU#0!

How can I solve this problem??

One thing to notice is that there's no problem like the above in the previous version of l4linux. 
In the previous version, boot process works well.

Again, how can I solve this problem??

Thank you
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the l4-hackers mailing list