Running Genode on a Raspberry Pi 3

Tomasz Gajewski tomga at wp.pl
Sat Nov 7 12:12:40 CET 2020


Simon Himmelbauer <himmelba at in.tum.de> writes:

> Hi Genodians,
>
> I am trying to get a Genode image using the Fiasco.OC-kernel running
> on an RPi 3. I created an arm_v8a build directory and accordingly set
> the KERNEL and BOARD variable. I also compiled a u-boot image from the
> upstream repository.
>
> When I attempt to boot the image from the u-boot prompt, I receive the
> output below with no further reaction. I am still on Genode 19.05
> because of a few modifications so I unless there is no other solution,
> I would like to avoid upgrading to a newer version.
>
> I also tried to run a few L4Re images provided here [0] with the same
> result, so the problem might not even be specific to Genode.
>
> Does anyone else have experiences with running on an RPi 3? Is there
> anything I am missing here?

Hi,

today I was able to check this configuration and in my setup and it is
working ok for me. My setup is somewhat similar to one I described in my
article on genodians.org with loading image over tftp although I think I
did not describe in datail configuration for 64bit version.

I think one important piece is content of config.txt. Mine is:

  kernel=u-boot.bin
  enable_uart=1

  arm_64bit=1

  enable_jtag_gpio=1


Based on modification times of files on sd card I prepared it about year
ago (November 2019) and if I correctly remember I used current at that
time versions of rpi firmware and u-boot.


Below is the complete output I received from running run/log with
KERNEL=foc and BOARD=rpi3 on release 20.08

I hope this will help you.

Best regards,
Tomasz



MMC:   mmc at 7e202000: 0, sdhci at 7e300000: 1
Loading Environment from FAT... OK
In:    serial
Out:   vidconsole
Err:   vidconsole
Net:   No ethernet found.
starting USB...
Bus usb at 7e980000: scanning bus usb at 7e980000 for devices... 5 USB Device(s) found
       scanning usb for storage devices... 0 Storage Device(s) found
Hit any key to stop autoboot:  0 
lan78xx_eth Waiting for PHY auto negotiation to complete..... done
Using lan78xx_eth device
TFTP from server 192.168.177.99; our IP address is 192.168.177.53
Filename 'rpi3bplus/uImage'.
Load address: 0x8000000
Loading: ##################################################  1.1 MiB
	 796.9 KiB/s
done
Bytes transferred = 1140111 (11658f hex)
Automatic boot of image at addr 0x08000000 ...
## Booting kernel from Legacy Image at 08000000 ...
   Image Name:   
   Image Type:   AArch64 Linux Kernel Image (gzip compressed)
   Data Size:    1140047 Bytes = 1.1 MiB
   Load Address: 01000000
   Entry Point:  01000000
   Verifying Checksum ... OK
   Uncompressing Kernel Image

Starting kernel ...


L4 Bootstrapper
  Build: #3 Sat Nov  7 11:32:04 CET 2020, 8.3.0
  Scanning up to 512 MB RAM, starting at offset 32MB
  Memory size is 512MB (00000000 - 1fffffff)
  RAM: 0000000000000000 - 000000001fffffff: 524288kB
  Total RAM: 512MB
  Scanning /projects/genode/genode/build/arm_v8a/bin/foc-rpi3
  Scanning sigma0
  Scanning image.elf
  Moving up to 3 modules behind 1100000
  moving module 02 { 10c5000-129e32f } -> { 11b3000-138c32f } [1938224]
  moving module 01 { 10ac000-10c42bf } -> { 119a000-11b22bf } [99008]
  moving module 00 { 1012000-10aba07 } -> { 1100000-1199a07 } [629256]
  Loading /projects/genode/genode/build/arm_v8a/bin/foc-rpi3
  Loading sigma0
  Loading image.elf
  find kernel info page...
  found kernel info page (via ELF) at 3000
Regions of list 'regions'
    [     1000,     abfff] {    ab000} Kern   /projects/genode/genode/build/arm_v8a/bin/foc-rpi3
    [    ac000,     ac0df] {       e0} Root   mbi_rt
    [    f0000,    107dc3] {    17dc4} Sigma0 sigma0
    [   117dc8,    11b2ef] {     3528} Sigma0 sigma0
    [  1000000,   101114b] {    1114c} Boot   bootstrap
    [  2000000,   22bafff] {   2bb000} Root   image.elf
  found kernel options (via ELF) at 4000
  Sigma0 config    ip:00100244 sp:00000000
  Roottask config  ip:02000000 sp:00000000
  Starting kernel /projects/genode/genode/build/arm_v8a/bin/foc-rpi3 at 00001700
Hello from Startup::stage2
FPU: Initialize
ARM generic timer: freq=19200000 interval=19200 cnt=192757258
SERIAL ESC: allocated IRQ 29 for serial uart
Not using serial hack in slow timer handler.
Welcome to L4/Fiasco.OC!
L4/Fiasco.OC microkernel on arm
Rev: 4367c50-dirty compiled with gcc 8.3.0 for Broadcom 2837    []
Build: #1 Sat Nov  7 11:19:34 CET 2020

Calibrating timer loop... Cache config: ON
Cache config: ON
done.
Cache config: ON
ID_PFR[01]:  00002222 00000000ID_PFR[01]:  00002222 00000000ID_PFR[01]:  00002222 00000000MDB: use page size: 30
 ID_[DA]FR0: 10305106 00000000
 ID_[DA]FR0: 10305106 00000000
ID_MMFR[04]: 00001122 00000000 00000000 00000000
ID_MMFR[04]: 00001122 00000000 00000000 00000000
MDB: use page size: 21
 ID_[DA]FR0: 10305106 00000000
MDB: use page size: 12
ID_MMFR[04]: 00001122 00000000 00000000 00000000
SIGMA0: Hello!
  KIP @ 3000
  allocated 4KB for maintenance structures
SIGMA0: Dump of all resource maps
RAM:------------------------
[0:0;fff]
[4:ac000;acfff]
[0:ad000;effff]
[0:108000;116fff]
[0:11c000;1ffffff]
[4:2000000;22bafff]
[0:22bb000;1effffff]
IOMEM:----------------------
[0:20000000;ffffffffffffffff]

KIP @ 0x3000
    magic: 0x4be6344c
  version: 0x87034444
MBI @ 0xac000
ROM modules:
 ROM: [0000000002278000,0000000002278156) config
 ROM: [0000000002279000,00000000022ba2d0) init
 ROM: [0000000000003000,0000000000004000) l4v2_kip
 ROM: [00000000021b6000,00000000022703f0) ld.lib.so
 ROM: [0000000002271000,00000000022771e8) test-log

Genode 20.08-2-g077dacba43
492 MiB RAM and 9238 caps assigned to init
[init -> test-log] hex range:          [0e00,1680)
[init -> test-log] empty hex range:    [0abc0000,0abc0000) (empty!)
[init -> test-log] hex range to limit: [f8,ff]
[init -> test-log] invalid hex range:  [f8,08) (overflow!)
[init -> test-log] negative hex char:  0xfe
[init -> test-log] positive hex char:  0x02
[init -> test-log] floating point:     1.70
[init -> test-log] multiarg string:    "parent -> child.7"
[init -> test-log] String(Hex(3)):     0x3
[init -> test-log] Very long messages:
[init -> test-log -> log] 1.....................................................................................................................................................................................................................................2
[init -> test-log] 3.....................................................................................................................................................................................................................................4
[init -> test-log] 5.....................................................................................................................................................................................................................................6
[init -> test-log] 
[init -> test-log] Test done.

Run script execution successful.
make: Leaving directory '/projects/genode/genode/build/arm_v8a'




More information about the users mailing list