Skip to content

Latest commit

 

History

History
141 lines (99 loc) · 6.81 KB

index.md

File metadata and controls

141 lines (99 loc) · 6.81 KB
SPDX-License-Identifier SPDX-FileCopyrightText
CC-BY-SA-4.0
2020 seL4 Project a Series of LF Projects, LLC.

Supported platforms

Summary

seL4 is available on 3 major hardware architectures, ARM, RISC-V and x86, for a number of platforms with varying hardware features.

seL4 is formally verified for specific configurations for a subset of these platforms. The depth of the proofs and which properties are verified depend on the platform.

The tables below provide more details.

Platforms' attributes

The tables below list the platforms for which seL4 is available. For each platform, the tables list:

  • whether specific features are supported (e.g. Virtualisation, IOMMU/SMMU, etc) and to which degree (where applicable);
  • the verification status (see more below);
  • who has contributed this platform port;
  • who is maintaining this platform port.

Verification status

The seL4 proofs only hold for specific configurations, as noted in the Verification Status column in the tables, as follows:

  • Unverified: this platform is not verified at all and is not scheduled for verification.
  • Ongoing: this feature is currently undergoing verification.
  • FC: the functional correctness proofs are complete.
  • Verified: all proofs for this platform are complete, including functional correctness, integrity and information flow.

More information can be found on the Verified Configurations page.

Not in the lists below?

If the platform, architecture, feature that you are after is not listed on this page, you have several options, listed below. It is important to note however that, as explained in the guidelines linked below, contributing new ports or features will require compelling arguments, discussion with the technical community (including through Request-For-Comments), as well as testing requirements and maintenance/expertise commitment, to a degree depending on the nature of the contribution.

  • You can contact one of the seL4 Foundation Endorsed Services Providers to get commercial support or professional advice to develop such a port or feature (with the implications and expectations detailed in our guidelines for contributing kernel code);

  • You can check the roadmap for any planned contributions, from the seL4 Foundation or larger community, such on any new architecture ports, new large formal verifications, or large or fundamental new features;

  • You can contact the seL4 community through one of our communication channels to ask whether someone is developing such a port or feature already, or whether there is general interest in discussing such a new port or feature;

  • If you are in a position to develop the seL4 port or feature yourself, you should follow our guidelines for contributing kernel code, which details the implications and expectations.

Simulating seL4

Running seL4 in a simulator is a quick way to test it out and iteratively develop software. Note that feature support is then limited by the simulator. See Running It for how to run seL4 using Qemu.

You can also run seL4 on VMware.

ARM

seL4 has support for select ARMv7 and ARMv8 Platforms.

Platform System-on-chip Core Arch Virtualisation SMMU Verification Status Contributed by Maintained by
{%- assign sorted = site.pages sort: 'platform' %}
{% for page in sorted %}
{%- if page.arm_hardware and page.Maintained != "No" -%}
{{ page.platform }} {{ page.soc}} {{ page.cpu }} {{ page.arch }} {{ page.virtualization }} {{ page.iommu}} {{ page.Status }} {{ page.Contrib }} {{page.Maintained}}
{% endif %}
{%- endfor %}

RISC-V

We currently provide support for some of the RISC-V platforms. Support for the hypervisor extension is yet to be mainlined.

Platform Simulation System-on-chip Core Arch Virtualisation Verification Status Contributed by Maintained by
{% for page in sorted %}
{%- if page.riscv_hardware -%}
{{ page.platform }} {% if page.simulation_target %}Yes{% else %}No{% endif %} {{ page.soc }} {{ page.cpu }} {{ page.arch }} {{ page.virtualization }} {{ page.Status }} {{ page.Contrib }} {{ page.Maintained }}
{% endif %}
{%- endfor %}

x86

We support PC99-style Intel Architecture Platforms.

Platform Arch Virtualisation IOMMU Verification Status Contributed by Maintained by
PC99 (32-bit) x86 VT-X VT-D Unverified Data61 seL4 Foundation
PC99 (64-bit) x64 VT-X VT-D FC (without VT-X, VT-D and fastpath) Data61 seL4 Foundation

Unmaintained platforms

Unmaintained platforms are platforms for which code has been contributed, but this code is not or no longer tested and is unlikely to work. We list these here, because bringing an unmaintained platform up may be faster and easier than starting from scratch on a new platform port.

ARM

| Platform | System-on-chip | Core | Arch | Virtualisation | SMMU | Verification Status | Contributed by | | - | - | - | - | - | - | - | - | - | {%- assign sorted = site.pages | sort: 'platform'%} {% for page in sorted %} {%- if page.arm_hardware and page.Maintained == "No" -%} | {{ page.platform }} (unmaintained) | {{ page.soc}} | {{ page.cpu }} | {{ page.arch }} | {{ page.virtualization }} | {{ page.iommu}} | {{ page.Status }} | {{ page.Contrib }} | {% endif %} {%- endfor %}