No description
Find a file
Adrian Danis 0adf212462 libsel4: Ensure the ARM syscall stubs always treat instances of seL4_MessageInfo as POD
A C++ compiler will attempt to interpret 'return info' as an invocation of a copy
constructor. Even though the copy constructor is auto-generated (and eventually
completely eliminated due to inlining) and just does obvious member copying it
still results in an intermediate invocation that must take a reference to 'info'.
Because 'info' is a register variable it is not permissable to take a reference
to it. Manually reconstructing a new info from the .words keeps everything as
Plain Old Data
2015-01-13 14:22:29 +11:00
haskell haskell: removed Lyrebird target 2014-12-11 16:03:10 +11:00
include zynq: Increase kernel window size (start at 0xe0000000) now that the elfloader does not attempt to access the serial port at 0xe0001000 after PD switch 2015-01-07 16:58:33 +11:00
libsel4 libsel4: Ensure the ARM syscall stubs always treat instances of seL4_MessageInfo as POD 2015-01-13 14:22:29 +11:00
manual further support for XN bit on ARM 2014-11-26 12:44:06 +11:00
src zynq: Increase kernel window size (start at 0xe0000000) now that the elfloader does not attempt to access the serial port at 0xe0001000 after PD switch 2015-01-07 16:58:33 +11:00
tools bf gen: Add a backend for AutoCorres. 2014-11-06 15:07:20 +11:00
.gitignore Ignore generated libsel4 headers. 2014-11-11 11:14:54 +11:00
CAVEATS-generic.txt update CAVEATS text to include security proofs 2014-11-05 14:21:35 +11:00
CAVEATS-ia32.txt Release snapshot 2014-07-18 05:03:59 +10:00
CONTRIBUTORS.md add Max's contribution 2014-08-08 14:48:02 +10:00
gdb-macros Release snapshot 2014-07-18 05:03:59 +10:00
Kconfig Kconfig: Remove x86_64 platform options. 2015-01-09 10:25:36 +11:00
LICENSE_BSD2.txt Release snapshot 2014-07-18 05:03:59 +10:00
LICENSE_GPLv2.txt adjust LICENSE file name to header reference. 2014-07-18 09:24:29 +02:00
Makefile Add support for Zynq-7000 2014-12-18 12:29:25 +11:00
README.md add DOI 2014-08-11 15:58:41 +10:00

The seL4 Repository

This repository contains the source code of seL4 microkernel.

For details about the seL4 microkernel, including details about its formal correctness proof, please see the sel4.systems website and associated FAQ.

DOIs for citing recent releases of this repository:

  • DOI

We welcome contributions to seL4. Please see the website for information on how to contribute.

This repository is usually not used in isolation, but as part of the build system in a larger project.

Repository Overview

  • include and src: C and ASM source code of seL4
  • tools: build tools
  • haskell: Haskell model of the seL4 kernel, kept in sync with the C version.
  • libsel4: C bindings for the seL4 ABI
  • manual: LaTeX sources of the seL4 reference manual

Build Instructions

tl;dr:

TOOLPREFIX=arm-none-eabi- ARCH=arm PLAT=imx31 ARMV=armv6 CPU=arm1136jf-s \
make

The kernel source requires a cross-compiler for the target architecture. To build using make, follow these instructions:

  • Ensure that the appropriate cross-compiler for your target architecture is installed.

  • Set the TOOLPREFIX environment variable to your cross-compiler's prefix. E.g. arm-none-eabi-.

  • Set the ARCH, PLAT, ARMV and CPU variables for the intended target architecture and platform, chosen from the following lists:

    ARCH PLAT ARMV CPU
    arm imx31 armv6 arm1136jf-s
    arm omap3 armv7-a cortex-a8
    arm am335x armv7-a cortex-a8
    ia32 pc99
  • For a debug build, append DEBUG=y.

See the seL4 website for more comprehensive build instructions.

License

The files in this repository are released under standard open source licenses. Please see the individual file headers and LICENSE_GPLv2.txt and LICENSE_BSD2.txt files for details.