Hi,
I’m trying to get the basic sel4 example (as outlined here: Raspberry PI 4 Model B | seL4 docs) running on a Raspberry Pi 4 4 GB.
I went through the steps according to the instructions and finally got sel4 booting. Unfortunately, the example stopped working after dropping into user space; see output below. Any help would be much appreciated.
U-Boot 2023.10-rc4-00074-gf8cc8e3116 (Sep 27 2023 - 14:21:36 +0200)
DRAM: 948 MiB (effective 3.9 GiB)
RPI 4 Model B (0xc03115)
Core: 209 devices, 16 uclasses, devicetree: board
MMC: mmcnr@7e300000: 1, mmc@7e340000: 0
Loading Environment from FAT… OK
In: serial,usbkbd
Out: serial,vidconsole
Err: serial,vidconsole
Net: eth0: ethernet@7d580000
PCIe BRCM: link up, 5.0 Gbps x1 (SSC)
starting USB…
Bus xhci_pci: Register 5000420 NbrPorts 5
Starting the controller
USB XHCI 1.00
scanning bus xhci_pci for devices… 2 USB Device(s) found
scanning usb for storage devices… 0 Storage Device(s) found
Hit any key to stop autoboot: 0
U-Boot> editenv sel4
edit: fatload mmc 0 0x10000000 sel4test-driver-image-arm-bcm2711 && go 0x10000000
U-Boot> saveenv
Saving Environment to FAT… OK
U-Boot> sel4
Unknown command ‘sel4’ - try ‘help’
U-Boot> run sel4
5153024 bytes read in 462 ms (10.6 MiB/s)
Starting application at 0x10000000 …
ELF-loader started on CPU: ARM Ltd. Cortex-A72 r0p3
paddr=[10000000…104ea0ff]
No DTB passed in from boot loader.
Looking for DTB in CPIO archive…found at 1013aa20.
Loaded DTB from 1013aa20.
paddr=[123d000…1243fff]
ELF-loading image ‘kernel’ to 1000000
paddr=[1000000…123cfff]
vaddr=[ffffff8001000000…ffffff800123cfff]
virt_entry=ffffff8001000000
ELF-loading image ‘sel4test-driver’ to 1244000
paddr=[1244000…1649fff]
vaddr=[400000…805fff]
virt_entry=40ef20
Enabling MMU and paging
Jumping to kernel-image entry point…
Bootstrapping kernel
available phys memory regions: 3
[1000000…3b400000]
[40000000…fc000000]
[100000000…200000000]
reserved virt address space regions: 3
[ffffff8001000000…ffffff800123d000]
[ffffff800123d000…ffffff800124356b]
[ffffff8001244000…ffffff800164a000]
Booting all finished, dropped to user space
seL4 failed assertion ‘isSchedulable(candidate)’ at /host/kernel/src/kernel/thread.c:371 in function schedule
halting…
Kernel entry via Interrupt, irq 0