Introducing seL4 4.0.0

Announcing the release of seL4 4.0.0 with the following changes:


  • Reorder bootinfo structure.
  • Add missing seL4_AllRights macro in libsel4.
  • Disallow kernel from using a device frame as an IPC buffer.
  • Syscall docs in manual now generated by doxygen.
  • Changes to make verification easier.
  • Various documentation fixes.
  • Benchmarks refactoring.
  • Coding style fixes.
  • Support for TLB and Cache management.
  • Preemptible backwards memzero for Retype.
  • Support for TCB operations in X86 multicore.
  • Support for raspberry-pi 3.
  • Add seL4_BenchmarkFlushCaches() for arm and ia32.

ARM specific changes:

  • ARM Hyp refactoring.
  • Update VCPU fault definitions.
  • Add userspace invocations for hardware debugging.
  • Enable PMU export for V8.
  • Support ARM MPCore registers.
  • Fix config dependency for ‘IPC Buffer location’.
  • Use new cap rights structures in iospace.
  • Move initial setting of TPIDRURW register.
  • Support for prefetcher on Cortex-A9.
  • Fix fastpath_restore on ARM Hyp and implement slowpath and restore in C.
  • am335x: Prevent out of bounds array access.


  • Remove temporary SMMU memory mapping support.
  • Correct SMMU PD and PT indexing.
  • Split the mux controller from the misc region.


  • Fix issues with OMAP IRQ Code.

X86 specific changes:

  • Add userspace invocations for hardware debugging.
  • Avoid writing the fs/gs base unless necessary.
  • Explicitly declare address of .phys.bss.
  • Add BSS regions for BOOT and PHYS code.
  • Write FS and GS base when restoring user context.
  • Initialize store area when using XSAVE variant instructions.
  • Efficiently pack objects for fastpath.
  • Increase IPI words to 3.
  • Support for x2APIC.
  • Support larger XSAVE region sizes.
  • Change ia32 to use fs register for IPC buffer.
  • Update the bootinfo for number of cores.
  • Initial support for SMP vt-x.
  • Split CPU ID management into mode and general.
  • Fix cpuid family/model composition.
  • Add X86_64 support.

Implementation improvements

  • Several enhancements for both x86 and ARM have been made. Please see the commit log for details.

Upgrade notes

Full changelog

Use git log 3.2.0..4.0.0 in

More details

See the 4.0.0 manual included in the release for detailed descriptions of the new features. Or ask on the mailing list!