Booting L4Linux on Raspberry Pi 2

Adam Lackorzynski adam at os.inf.tu-dresden.de
Mon Mar 21 00:21:21 CET 2016


Hi,

On Mon Mar 14, 2016 at 15:45:27 +0100, Antoine DEBUT wrote:
> I now encounter a new error, which is the following :
> 
> 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 41f (timer0) (u:b3000a00,
> v:00000000, sp:023bbfa0)
> l4linux | Booting Linux on physical CPU 0x0
> l4linux | Linux version 4.3.0-l4 (adebut at PC-MARGAERY) (gcc version
> 4.8.3 20140303 (prerelease) (crosstool6
> l4linux | CPU: Fiasco
> [410fc075] revision 5 (ARMv7), cr=00400000
> l4linux | CPU: PIPT / VIPT
> nonaliasing data cache, VIPT nonaliasing instruction cache
> l4linux | Machine: L4
> l4linux | Ignoring unrecognised tag 0x00000000
> l4linux | Memory policy: Data cache writealloc
> l4linux | CPU: All CPU(s) started in SVC mode.
> l4linux | INITRD: 00002000 - 00302000
> l4linux | Built 1 zonelists in Zone order, mobility grouping on.  Total
> pages: 17717
> l4linux | Kernel command line: mem=64M console=ttyLv0
> l4x_rd=rom/ramdisk-arm.rd root=1:0 ramdisk_size=400h
> l4linux | PID hash
> table entries: 512 (order: -1, 2048 bytes)
> l4linux | Dentry cache hash
> table entries: 16384 (order: 4, 65536 bytes)
> l4linux | Inode-cache hash
> table entries: 8192 (order: 3, 32768 bytes)
> l4linux | Memory: 64768K/71684K available (2628K kernel code, 128K
> rwdata, 776K rodata, 144K init, 537K b)
> l4linux | Virtual kernel memory layout:
> l4linux |     vector  : 0xbffff000 - 0xc0000000   (   4 kB)
> l4linux | fixmap  : 0xffc00000 - 0xfff00000   (3072 kB)
> l4linux |     vmalloc : 0x06600000 - 0x0e600000   ( 128 MB)
> l4linux |     lowmem  : 0x00000000 - 0x06600000   ( 102 MB)
> l4linux |     modules : Virtual kernel memory layout:
> l4linux |     vector  : 0xbffff000 - 0xc0000000   (   4 kB)
> l4linux |     fixmap  : 0xffc00000 - 0xfff00000   (3072 kB)
> l4linux |     vmalloc : 0x06600000 - 0x0e600000   ( 128 MB)
> l4linux |     lowmem  : 0x00000000 - 0x06600000   ( 102 MB)
> l4linux |     moNR_IRQS:282
> l4linux | l4x: Cannot query L4ICU: -2004
> l4linux | clocksource: l4kipclk: mask: 0xffffffffffffffff max_cycles:
> 0x1d854df40, max_idle_ns: 352636161s
> l4linux | l4timer: Using IRQ210
> l4linux | sched_clock: 64 bits at 1000kHz, resolution 1000ns, wraps
> every 2199023255500ns
> l4linux | Console: colour dummy device 80x30
> l4linux | console [ttyLv0] enabled
> l4linux | Calibrating delay loop... 1191.11 BogoMIPS (lpj=5955584)
> l4linux | pid_max: default: 32768 minimum: 301
> l4linux | Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
> l4linux | Mountpoint-cache hash table entries: 1024 (order: 0, 4096
> bytes)
> l4linux | CPU: Testing write buffer coherency: ok
> l4linux | Setting up static identity map for 0x2000000 - 0x2000000
> l4linux | VFP support v0.3: implementor 41 architecture 2 part 30
> variant 7 rev 5
> l4linux | clocksource: jiffies: mask: 0xffffffff
> max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
> l4linux | NET: Registered protocol family 16
> l4linux | DMA: preallocated 256 KiB pool for atomic coherent allocations
> l4linux | Failed to create "l4x" debugfs directory: 1
> l4linux | clocksource: Switched to clocksource l4kipclk
> l4linux | NET: Registered protocol family 2
> l4linux | TCP established hash table entries: 1024 (order: 0, 4096
> bytes)
> l4linux | TCP bind hash table entries: 1024 (order: 0, 4096 bytes)
> l4linux | TCP: Hash tables configured (established 1024 bind 1024)
> l4linux | UDP hash table entries: 256 (order: 0, 4096 bytes)
> l4linux | UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
> l4linux | NET: Registered protocol family 1
> l4linux | Trying to unpack rootfs image as initramfs...
> l4linux | rootfs image is not initramfs (junk in compressed archive);
> looks like an initrd
> l4linux | INITRD: Freeing memory.
> l4linux | l4x: Checks passed.
> l4linux | NetWinder Floating Point Emulator V0.97 (double precision)
> l4linux | futex hash table entries: 256 (order: -1, 3072 bytes)
> l4linux | io scheduler noop registered
> l4linux | io scheduler deadline registered
> l4linux | io scheduler cfq registered (default)
> l4linux | L4 serial driver
> l4linux | serial-ttyLv.0: ttyLv0 at MMIO 0x1 (irq = 0, base_baud =
> 230400) is a L4-vcon
> l4linux | l4ser_shm: L4 shared mem serial driver
> l4linux | l4cdds: No name given, not starting.
> l4linux | brd: module loaded
> l4linux | l4bdds: No name given, not starting.
> l4linux | mousedev: PS/2 mouse device common for all mice
> l4linux | NET: Registered protocol family 17
> l4linux | RAMDISK: ext2 filesystem found at block 0
> l4linux | RAMDISK: Loading 3072KiB [1 disk] into ram disk... done.
> l4linux | EXT4-fs (ram0): couldn't mount as ext3 due to feature
> incompatibilities
> l4linux | EXT4-fs (ram0): mounting ext2 file system
> using the ext4 subsystem
> l4linux | EXT4-fs (ram0): mounted filesystem
> without journal. Opts: (null)
> l4linux | VFS: Mounted root (ext2 filesystem) readonly on device 1:0.
> l4linux | Freeing unused kernel memory: 144K (02354000 - 02378000)
> l4linux | /bin/sh: can't access tty; job control turned off
> 
> I think it's related to the fact that my SD card contains two
> partitions: a vfat and an ext4, and that the system wants to mount it on
> the first one, giving an incorrect type.

You're missing the prompt? Do you use L4.Env.log in the config as used
in the examples (e.g. l4lx.cfg)?

> Therefore, modifying the argument in the l4linux boot command doesn't
> change a thing. I would like to have a configuration like
> root=/dev/mmcblk0p2 so the l4linux would be mounted on the second
> partition, but can't figure how to configure it properly.
> Do you have any advices ?

That requires that L4Linux accesses the corresponding controller and all
devices required for that. Roughly, you'll need to add appropriate
device tree entries as well as corresponding entries in io's vbus to
allow L4Linux access the hardware.

> > > Also, I found out that there are a bunch of board.defconfig files
> > > for l4linux. How are they correctly called upon building l4linux ?
> > > I don't find any rules to call them, so I suppose they are chosen
> > > upon calling the arm_defconfig rule accordingly to the board chosen
> > > in building Fiasco or L4Re?
> > 
> > I'm not sure I understand what you mean with "board.defconfig".
> > xxx_defconfig files are used like "make ... xxx_defconfig" for an
> > initial configuration. None of the defconfig files is chosen according
> > to any setting, that needs to be done by hand.
> 
> I was talking about the configuration files given in the
> l4linux/arch/arm/configs/ directory, and wondered if the corresponding
> board was chosen, so you did answer me. :)

Ah, files in arch/arm/configs will not be used.



Adam
-- 
Adam                 adam at os.inf.tu-dresden.de
  Lackorzynski         http://os.inf.tu-dresden.de/~adam/



More information about the l4-hackers mailing list