Porting Fiasco + L4Re to Raspberry Pi 2

Adam Lackorzynski adam at os.inf.tu-dresden.de
Mon Feb 29 00:47:11 CET 2016


Hi,

On Wed Feb 24, 2016 at 15:59:44 +0100, Antoine DEBUT wrote:
> I am currently working on porting the Fiasco.OC micro kernel onto the
> Raspberry pi 2.
> 
> Therefore, I am struggling with memory mapping, and I encounter the
> following error when launching the default 'hello' entry:
> 
> L4 Bootstrapper
>   Build: #2 Tue Feb 23 11:57:19 CET 2016, 4.8.3 20140303 (prerelease)
>   Scanning up to 1024 MB RAM, starting at offset 32MB
>   Memory size is 1024MB (00000000 - 3fffffff)
>   RAM: 0000000000000000 - 000000003fffffff: 1048576kB
>   Total RAM: 1024MB
>   Scanning fiasco
>   Scanning sigma0
>   Scanning moe
>   Moving up to 5 modules behind 1100000
>   moving module 02 { 10db000-110c4d7 } -> { 11cc000-11fd4d7 } [201944]
>   moving module 01 { 10c9000-10da373 } -> { 11ba000-11cb373 } [70516]
>   moving module 00 { 1043000-10c889f } -> { 1134000-11b989f } [546976]
>   moving module 04 { 1029000-10425af } -> { 111a000-11335af } [103856]
>   moving module 03 { 100f000-102849b } -> { 1100000-111949b } [103580]
>   Loading fiasco
>   Loading sigma0
>   Loading moe
>   find kernel info page...
>   found kernel info page at 0x2000
> Regions of list 'regions'
>     [     1000,      1aff] {      b00} Kern   fiasco
>     [     2000,     92fff] {    91000} Kern   fiasco
>     [    93000,     930eb] {       ec} Root   mbi_rt
>     [    c0000,     c9c33] {     9c34} Sigma0 sigma0
>     [    d0000,     d6177] {     6178} Sigma0 sigma0
>     [   140000,    16905b] {    2905c} Root   moe
>     [   170000,    17b58b] {     b58c} Root   moe
>     [  1000000,   100e4ff] {     e500} Boot   bootstrap
>     [  1100000,   1133fff] {    34000} Root   Module
>   API Version: (87) experimental
>   Sigma0 config    ip:000c0100 sp:00000000
>   Roottask config  ip:00140250 sp:00000000
>   Starting kernel fiasco at 000012b8
>   Non-HYP kernel detected but running in HYP mode, switching back.
> Hello from Startup::stage2
> 
> Assertion failed
> at /home/adebut/Documents/snapshotTest/l4re-snapshot-2015123115/src/kernel/fiasco/src/kern/buddy_alloc.cpp:101:
> (unsigned long)block >= _base
> 
> Press any key to reboot.
 
That typically happens when something with the memory config is not
ok.

> I am currently working on the latest snapshot (2015123115), with
> U-Boot as a bootloader, and testing on a real board (Raspberry Pi 2
> model B V1.1). The entry built is the standard 'hello', and I use the
> ramdisk-arm.rd given in the snapshot.
> 
> I did add a custom Bsp for the board, mainly based on the first
> Raspberry Pi except for the Base Address, that is 0x3F000000
> instead of the first Pi's 0x20000000.

If memory shall go from 0-0x3fffffff, then 0x3F000000 overlaps with
that. Better give a bit less than 1024M, that could help.

> I highly think that it is an address configuration problem, because it
> first happened when I did expand the RAM size to 1024MB.
> With further investigation, I found out that it was the kernel memory
> allocation that causes this error, and suspect an incorrect MMU mapping.
> This suspicion comes from the fact that the assertion takes the address
> _base (0xf0400000) and the currently allocated block (0xee100000).
> 
> I did not modify any parameter in the kern/arm/mem_layout-arm.cpp file
> on the Fiasco directory, which provides the default ARM addressing.
> Maybe that's where my error comes from ? How can I correctly configure
> my memory mapping, besides what I already configure in the Bsp (given in
> attachment) ?

For a BSP, there's no change required in mem_layout-arm.cpp. It's most
likely the overlap described above.




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