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