Porting YSE5250 to base-foc

Stefan Kalkowski stefan.kalkowski at ...1...
Tue Sep 8 09:41:09 CEST 2015


Hi Waldo,

see my reply inline at the bottom

On 09/04/2015 03:12 PM, Waldo Paz Rodriguez wrote:
> Hello Genode comunity, I'm trying port the yse5250 board to base-foc. I
> follow the guide proposed by Norman Feske and test the printf scenario,
> as shown in the serial output Fiasco.OC and servers run correctly, but
> when I try to run Genode throws an error.
> 
> L4 Bootstrapper
> 
> Build: #3 vie sep 4 09:10:02 CDT 2015, 4.9.2
> 
> Scanning up to 2047 MB RAM
> 
> Memory size is 2047MB (40000000 - bfefffff)
> 
> RAM: 0000000040000000 - 00000000bfefffff: 2096128kB
> 
> Total RAM: 2047MB
> 
> mod05: 41144000-41174530: genode/test-printf
> 
> mod04: 410ff000-41143c70: genode/init
> 
> mod03: 410fe000-410fe110: genode/config
> 
> mod02: 41094000-410fddec: genode/core
> 
> mod01: 41082000-41093368: sigma0
> 
> mod00: 41015000-4108195c:
> /home/waldo/genode-15-08/build/foc_yse5250/kernel/fiasco.oc/fiasco
> 
> Moving up to 6 modules behind 41100000
> 
> moving module 00 { 41015000-4108195b } -> { 41260000-412cc95b } [444764]
> 
> moving module 01 { 41082000-41093367 } -> { 412cd000-412de367 } [70504]
> 
> moving module 02 { 41094000-410fddeb } -> { 412df000-41348deb } [433644]
> 
> moving module 03 { 410fe000-410fe10f } -> { 41175000-4117510f } [272]
> 
> moving module 04 { 410ff000-41143c6f } -> { 41176000-411bac6f } [281712]
> 
> moving module 05 { 41144000-4117452f } -> { 41100000-4113052f } [197936]
> 
> moving module 03 { 41175000-4117510f } -> { 41131000-4113110f } [272]
> 
> moving module 04 { 41176000-411bac6f } -> { 41132000-41176c6f } [281712]
> 
> Scanning
> /home/waldo/genode-15-08/build/foc_yse5250/kernel/fiasco.oc/fiasco
> -serial_esc
> 
> Scanning sigma0
> 
> Scanning genode/core
> 
> Relocated mbi to [0x4100e000-0x4100e148]
> 
> Loading o/genode-15-08/build/foc_yse5250/kernel/fiasco.oc/fiasco
> 
> Loading sigma0
> 
> Loading genode/core
> 
> find kernel info page...
> 
> found kernel info page at 0x40002000
> 
> Regions of list 'regions'
> 
> [ 40001000, 40001a3f] { a40} Kern
> o/genode-15-08/build/foc_yse5250/kernel/fiasco.oc/fiasco
> 
> [ 40002000, 4007afff] { 79000} Kern
> o/genode-15-08/build/foc_yse5250/kernel/fiasco.oc/fiasco
> 
> [ 400a0000, 400a5fdf] { 5fe0} Sigma0 sigma0
> 
> [ 400b0000, 400b617b] { 617c} Sigma0 sigma0
> 
> [ 41000000, 410143f7] { 143f8} Boot bootstrap
> 
> [ 4100e000, 4100e245] { 246} Root Multiboot info
> 
> [ 41100000, 41176c6f] { 76c70} Root Module
> 
> [ 80100000, 8024b63b] { 14b63c} Root genode/core
> 
> API Version: (87) experimental
> 
> Sigma0 config ip:400a0100 sp:41013de4
> 
> Roottask config ip:80100000 sp:00000000
> 
> Starting kernel o/genode-15-08/build/foc_yse5250/kernel/fiasco.oc/fiasco
> at 4000121c
> 
> Hello from Startup::stage2
> 
> Number of IRQs available at this GIC: 160
> 
> Cache config: ON
> 
> ID_PFR[01]: 00001031 00011011 ID_[DA]FR0: 02010555 00000000
> 
> ID_MMFR[04]: 10201105 20000000 01240000 02102211
> 
> Watchdog initialized
> 
> SERIAL ESC: allocated IRQ 84 for serial uart
> 
> Not using serial hack in slow timer handler.
> 
> \0x1b[1;32mWelcome to Fiasco.OC (arm)!
> 
> \0x1b[0;32mL4/Fiasco.OC arm microkernel (C) 1998-2013 TU Dresden
> 
> Rev: 7870838 compiled with gcc 4.9.2 for Samsung Exynos []
> 
> Build: #3 vie sep 4 09:09:57 CDT 2015
> 
> \0x1b[0m
> 
> Timer for CPU0 is at IRQ 152
> 
> Calibrating timer loop... done.
> 
> SIGMA0: Hello!
> 
> KIP @ 40002000
> 
> allocated 4KB for maintenance structures
> 
> SIGMA0: Dump of all resource maps
> 
> RAM:------------------------
> 
> [0:40000000;40000fff]
> 
> [0:4007b000;4009ffff]
> 
> [0:400a6000;400affff]
> 
> [0:400b7000;4100dfff]
> 
> [4:4100e000;4100efff]
> 
> [0:4100f000;410fffff]
> 
> [4:41100000;41176fff]
> 
> [0:41177000;800fffff]
> 
> [4:80100000;8024bfff]
> 
> [0:8024c000;beefffff]
> 
> IOMEM:----------------------
> 
> [0:0;3fffffff]
> 
> [0:bff00000;ffffffff]
> 
> 
> KIP @ 40002000
> 
> magic: 4be6344c
> 
> version: 87024444
> 
> sigma0 esp: 41013de4 eip: 400a0100
> 
> sigma1 esp: 00000000 eip: 00000000
> 
> root esp: 00000000 eip: 80100000
> 
> MBI @ 4100e000
> 
> mod[3] [41131000,41131110) config
> 
> mod[4] [41132000,41176c70) init
> 
> mod[5] [41100000,41130530) test-printf
> 
> :ram_alloc: Allocator 8023aec0 dump:
> 
> Block: [40000000,40001000) size=00001000 avail=00001000 max_avail=00001000
> 
> Block: [4007b000,400a0000) size=00025000 avail=00025000 max_avail=00025000
> 
> Block: [400a6000,400a601c) size=0000001c avail=00000000 max_avail=00025000
> 
> Block: [400a601c,400a6038) size=0000001c avail=00000000 max_avail=00000000
> 
> Block: [400a6038,400a6054) size=0000001c avail=00000000 max_avail=00009fac
> 
> Block: [400a6054,400b0000) size=00009fac avail=00009fac max_avail=00009fac
> 
> Block: [400b7000,400b701c) size=0000001c avail=00000000 max_avail=3ef89000
> 
> Block: [400b701c,4100e000) size=00f56fe4 avail=00f56fe4 max_avail=00f56fe4
> 
> Block: [4100f000,41100000) size=000f1000 avail=000f1000 max_avail=3ef89000
> 
> Block: [41177000,80100000) size=3ef89000 avail=3ef89000 max_avail=3ef89000
> 
> Block: [8024c000,bef00000) size=3ecb4000 avail=3ecb4000 max_avail=3ecb4000
> 
> => mem_size=2127253504 (2028 MB) / mem_avail=2127253392 (2028 MB)
> 
> :region_alloc: Allocator 8023c030 dump:
> 
> Block: [00001000,20000000) size=1ffff000 avail=1ffff000 max_avail=1ffff000
> 
> Block: [30000000,40000000) size=10000000 avail=10000000 max_avail=1ffff000
> 
> Block: [40001000,40002000) size=00001000 avail=00001000 max_avail=1ffff000
> 
> Block: [40003000,4007b000) size=00078000 avail=00078000 max_avail=00078000
> 
> Block: [400a0000,400a6000) size=00006000 avail=00006000 max_avail=1ffff000
> 
> Block: [400b0000,400b7000) size=00007000 avail=00007000 max_avail=010f0000
> 
> Block: [bef00000,bfff0000) size=010f0000 avail=010f0000 max_avail=010f0000
> 
> => mem_size=823611392 (785 MB) / mem_avail=823611392 (785 MB)
> 
> :io_mem: Allocator 8023b31c dump:
> 
> Block: [00000000,40000000) size=40000000 avail=40000000 max_avail=40000000
> 
> Block: [40001000,40002000) size=00001000 avail=00001000 max_avail=40000000
> 
> Block: [40003000,4007b000) size=00078000 avail=00078000 max_avail=00078000
> 
> Block: [400a0000,400a6000) size=00006000 avail=00006000 max_avail=00078000
> 
> Block: [400b0000,400b7000) size=00007000 avail=00007000 max_avail=410fffff
> 
> Block: [bef00000,ffffffff) size=410fffff avail=410fffff max_avail=410fffff
> 
> => mem_size=2165858303 (2065 MB) / mem_avail=2165858303 (2065 MB)
> 
> :io_port: Allocator 8023b778 dump:
> 
> :irq: Allocator 8023bbd4 dump:
> 
> Block: [00000000,00000298) size=00000298 avail=00000298 max_avail=00000298
> 
> => mem_size=664 (0 MB) / mem_avail=664 (0 MB)
> 
> :rom_fs: Rom_fs 8023c8e4 dump:
> 
> Rom: [41132000,41176c70) init
> 
> Rom: [41131000,41131110) config
> 
> Rom: [40002000,40003000) l4v2_kip
> 
> Rom: [40002000,40003000) kip
> 
> Rom: [41100000,41130530) test-printf
> 
> :core ranges: Allocator 8023f240 dump:
> 
> Block: [40000000,40001000) size=00001000 avail=00001000 max_avail=00001000
> 
> Block: [4007b000,400a0000) size=00025000 avail=00025000 max_avail=00025000
> 
> Block: [400a6000,400b0000) size=0000a000 avail=0000a000 max_avail=7def1000
> 
> Block: [400b7000,4100e000) size=00f57000 avail=00f57000 max_avail=7def1000
> 
> Block: [4100f000,bef00000) size=7def1000 avail=7def1000 max_avail=7def1000
> 
> => mem_size=2129100800 (2030 MB) / mem_avail=2129100800 (2030 MB)
> 
> \0x1b[32mGenode 15.08 <local changes>\0x1b[0m
> 
> int main(): \0x1b[33m--- create local services ---\0x1b[0m
> 
> int main(): \0x1b[33m--- start init ---\0x1b[0m
> 
> \0x1b[34mReceived something different than a pagefault, ignoring
> ...\0x1b[0m
> 

That means core's pagefault handler, which is an extra thread, received
an extraordinary exception from one of core's threads, which should
never happen. This might be e.g.: an undefined opcode etc.. To identify
the faulting thread, please enter the Fiasco.OC kernel debugger via the
escape key, and have a look at the process list (type: lp). One of the
few threads you'll see will wait for the core.pager thread, you'll have
to combine the IDs. You can scroll to the corresponding faulter thread
and inspect it's state (e.g. fault state, instruction pointer, etc.).

Good luck!

Regards Stefan

> 
> 
> Best Regards, waldo
> 
> 
> 
> ------------------------------------------------------------------------------
> 
> 
> 
> _______________________________________________
> genode-main mailing list
> genode-main at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/genode-main
> 

-- 
Stefan Kalkowski
Genode Labs

http://www.genode-labs.com/ ยท http://genode.org/




More information about the users mailing list