Simon Himmelbauer himmelba@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@7e202000: 0, sdhci@7e300000: 1 Loading Environment from FAT... OK In: serial Out: vidconsole Err: vidconsole Net: No ethernet found. starting USB... Bus usb@7e980000: scanning bus usb@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'