Commit Graph

405 Commits

Author SHA1 Message Date
Ivan-Velickovic 413c1c9cd6 tool: remove accidentally committed file
Signed-off-by: Ivan-Velickovic <i.velickovic@unsw.edu.au>
2025-07-19 20:07:33 +10:00
Ivan-Velickovic dc99c589ce tool: succumb to clippy
Thank you Clippy, this makes the code so much easier to read,
what a fantastic use of time.

Signed-off-by: Ivan-Velickovic <i.velickovic@unsw.edu.au>
2025-07-19 19:00:32 +10:00
Ivan Velickovic 068c564fb3 Rework README to talk about seL4 docs-site
Also add DEVELOPER.md for instructions on how to build from
source etc.

Signed-off-by: Ivan Velickovic <i.velickovic@unsw.edu.au>
2025-07-16 15:38:09 +10:00
Ivan Velickovic b00bebe3f6 Move list of supported platforms into manual
Signed-off-by: Ivan Velickovic <i.velickovic@unsw.edu.au>
2025-07-16 15:38:09 +10:00
Ivan-Velickovic 03e2ceafcf manual: fix typo
Signed-off-by: Ivan-Velickovic <i.velickovic@unsw.edu.au>
2025-07-08 10:21:25 +10:00
Ivan-Velickovic e5844202fc manual: add IDs for supported platforms
Signed-off-by: Ivan-Velickovic <i.velickovic@unsw.edu.au>
2025-07-07 20:09:20 +10:00
Ivan-Velickovic 475927e677 anual: fix typo
Signed-off-by: Ivan-Velickovic <i.velickovic@unsw.edu.au>
2025-07-07 20:08:29 +10:00
Gerwin Klein 68e0ee6997 manual: make IDs unique
The html5validator is complaining about duplicate IDs in html produced
from the markdown:

- `channel` occurs twice, once explicitly defined and once as a
  later heading. Rename explicit reference to #channels to match up with
  heading name.

- `libmicrokit` occurs twice as a heading, one with explicitly defined ID.
  Rename the second one to #libmicrokit_internals to disambiguate.

Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2025-07-07 18:07:01 +10:00
Hesham Almatary f340269411 Support building with LLVM
This commit adds support for building the seL4 kernel, loader, monitor,
and libmicrokit with LLVM (Clang, LLVM and ld.lld). Passing --llvm
should instruct the tool to build everything with with LLVM.

Clang/RISC-V don't implement or need -mstrict-align
Also fix a trivial error adding single quotes within a string.

Signed-off-by: Hesham Almatary <heshamalmatary@capabilitieslimited.co.uk>
2025-07-01 11:45:13 +10:00
Ivan-Velickovic a022c14004 loader: print first hart ID on RISC-V
Signed-off-by: Ivan-Velickovic <i.velickovic@unsw.edu.au>
2025-06-30 16:26:46 +10:00
Ivan-Velickovic e3c67fa505 Add support for SiFive Premier P550
Signed-off-by: Ivan-Velickovic <i.velickovic@unsw.edu.au>
2025-06-30 16:26:46 +10:00
julia 4d0d821848 build_sdk: specify KernelSel4Arch when building
This would otherwise give the warning

     platform maaxboard supports multiple architectures, none was given
     defaulting to: aarch64

on platforms which support multiple architectures, for instance, the
maaxboard which can be built for aarch64 and aarch32. This seems to have
been fine because the first option is always the 64-bit option, but this
is probably unlikely to be guaranteed.

For the CMake Builds for sel4test et al, this is set in
cmake-tool/helpers/application_settings.cmake.

Signed-off-by: julia <git.ts@trainwit.ch>
2025-05-28 13:59:40 +10:00
julia 6143b3c5d6 treewide: typo fixes
Signed-off-by: julia <git.ts@trainwit.ch>
2025-05-28 13:59:40 +10:00
julia 1c2c10fbab use microkit-relative paths & check exit code
Signed-off-by: julia <git.ts@trainwit.ch>
2025-05-28 13:59:40 +10:00
julia 661e6e32ba nix: remove unused aarch64-toolchain & add qemu
Signed-off-by: julia <git.ts@trainwit.ch>
2025-05-28 13:59:40 +10:00
Ivan-Velickovic 1e94a1dfcf Update seL4 version
Signed-off-by: Ivan-Velickovic <i.velickovic@unsw.edu.au>
2025-05-23 11:06:23 +10:00
Ivan-Velickovic c5e3ec9b00 flake.nix: use python3.12 to be consistent with README
Signed-off-by: Ivan-Velickovic <i.velickovic@unsw.edu.au>
2025-05-22 13:36:34 +10:00
Ivan-Velickovic 5f6c536afb manual: fix typos
Signed-off-by: Ivan-Velickovic <i.velickovic@unsw.edu.au>
2025-04-10 10:54:03 +10:00
Nataliya Korovkina 6a439fed05 Add Ultra96V2 support
Signed-off-by: Nataliya Korovkina <malus.brandywine@gmail.com>
Signed-off-by: Ivan-Velickovic <i.velickovic@unsw.edu.au>
2025-04-09 12:15:51 +10:00
Ivan-Velickovic 14478c131d Enable "KernelAllowSMCCalls" by default on ARM
Previously I did not turn this option on by default because
I thought it would make the kernel proofs not apply anymore.
In reality this is only true really when a user makes use
of the SMC feature. Most users probably will never have to enable
it and the ones that that do will no longer have to patch Microkit
to enable it.

I've added a warning about using SMC calls in the manual to make users
aware of the implications of using this feature.

Signed-off-by: Ivan-Velickovic <i.velickovic@unsw.edu.au>
2025-04-09 12:15:19 +10:00
Ivan-Velickovic 350d630775 Fix Rust example for latest Microkit
* Update rust-sel4
* Update Rust nightly toolchain used

Signed-off-by: Ivan-Velickovic <i.velickovic@unsw.edu.au>
2025-03-30 12:17:21 +11:00
Ivan-Velickovic 7bbaace4ed Start 2.0.1-dev release cycle
Signed-off-by: Ivan-Velickovic <i.velickovic@unsw.edu.au>
2025-03-21 13:55:48 +11:00
Ivan-Velickovic a974a6b35e dev_build.py: fix for when we have '*-dev' versions of the SDK
Signed-off-by: Ivan-Velickovic <i.velickovic@unsw.edu.au>
2025-03-21 11:26:36 +11:00
Ivan-Velickovic 1a4872e2e9 build_sdk.py: read from VERSION file
Signed-off-by: Ivan-Velickovic <i.velickovic@unsw.edu.au>
2025-03-21 11:24:11 +11:00
Ivan-Velickovic 1b37907535 loader: fixes with UART init
QEMU virt AArch64 won't have U-Boot to initialise the UART for
us. QEMU doesn't care and will happily output to the UART even
if it's disabled, however if you add `-d guest_errors` to your
QEMU invocation, you will get a bunch of QEMU complaints saying
you are outputting to the UART while it is disabled. This
will fix that.

Signed-off-by: Ivan-Velickovic <i.velickovic@unsw.edu.au>
2025-03-20 16:59:29 +11:00
Ivan-Velickovic f1c5784c9a Add 2.0.1 release notes
Signed-off-by: Ivan-Velickovic <i.velickovic@unsw.edu.au>
2025-03-20 12:21:52 +11:00
Ivan-Velickovic 6acfe886e2 Update seL4 version
Signed-off-by: Ivan-Velickovic <i.velickovic@unsw.edu.au>
2025-03-19 16:47:06 +11:00
Ivan-Velickovic 307b9c62af tool: detect overlaps between user-specified maps and generated maps
A PD will have two sets of mappings in addition to what the
user has specified:
1. Mappings for the ELF
2. Mapping(s) for the stack region

Previously, it was possible to accidentally create an overlapping
between a user-specified mapping a mapping generated by the tool
automatically.

On ARM, this is quite subtle as seL4 allows overwriting existing
mappings resulting in no obvious error when this happens.

On RISC-V, this leads to an error upon booting due to seL4 *not*
allowing overwriting existing mappings with unmapping first.

Signed-off-by: Ivan-Velickovic <i.velickovic@unsw.edu.au>
2025-03-19 16:30:51 +11:00
Gerwin Klein 1e52a5b550 github: use central CI workflows
Use GitHub workflow_call feature to reduce workflow duplication.

Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2025-03-17 12:15:59 +11:00
Ivan-Velickovic 342b440bb1 loader: always output '\r' before '\n'
Signed-off-by: Ivan-Velickovic <i.velickovic@unsw.edu.au>
2025-03-17 10:22:50 +10:30
Ivan-Velickovic bd45f0e0ef Pin to Python 3.12
Signed-off-by: Ivan-Velickovic <i.velickovic@unsw.edu.au>
2025-03-12 10:54:58 +11:00
Ivan-Velickovic 064cffda50 libmicrokit: fix UB with error reporting
Signed-off-by: Ivan-Velickovic <i.velickovic@unsw.edu.au>
2025-03-10 21:26:54 +11:00
Ivan-Velickovic 741df6b945 monitor: better debug info when untypeds mismatch
Signed-off-by: Ivan-Velickovic <i.velickovic@unsw.edu.au>
2025-03-10 20:56:10 +11:00
Yanfeng Liu 8b24ee0bbf Fix a typo in build_sdk.py
Signed-off-by: Yanfeng Liu <yfliu2008@qq.com>
2025-03-09 12:31:29 +11:00
Ivan-Velickovic 5a74353e53 manual: fix typo
Signed-off-by: Ivan-Velickovic <i.velickovic@unsw.edu.au>
2025-03-09 12:06:02 +11:00
Ivan-Velickovic a333e242bd manual: mention internals chapter in intro
Signed-off-by: Ivan-Velickovic <i.velickovic@unsw.edu.au>
2025-03-09 12:05:20 +11:00
Ivan-Velickovic d8fb6d6319 libmicrokit: fix error reporting for channels
Signed-off-by: Ivan-Velickovic <i.velickovic@unsw.edu.au>
2025-03-08 10:38:52 +11:00
Ivan-Velickovic 5c5d2b286b Start 2.0.0-dev release cycle
Signed-off-by: Ivan-Velickovic <i.velickovic@unsw.edu.au>
2025-03-08 10:29:15 +11:00
Ivan-Velickovic 662995bdb1 manual: mention Linux AArch64 support
Signed-off-by: Ivan-Velickovic <i.velickovic@unsw.edu.au>
2025-03-07 02:44:43 +11:00
Ivan-Velickovic ce34bd7f88 build_sdk.py: fix when host is Linux AArch64
Signed-off-by: Ivan-Velickovic <i.velickovic@unsw.edu.au>
2025-03-07 02:39:43 +11:00
Ivan-Velickovic 8aeb9f9006 Release 2.0.0
Signed-off-by: Ivan-Velickovic <i.velickovic@unsw.edu.au>
2025-03-06 16:34:27 +11:00
Ivan-Velickovic a183bcb765 Add 2.0.0 release notes
Signed-off-by: Ivan-Velickovic <i.velickovic@unsw.edu.au>
2025-03-06 16:34:27 +11:00
Ivan-Velickovic 16669b52be tool: improve error reporting for allocations
Signed-off-by: Ivan-Velickovic <i.velickovic@unsw.edu.au>
2025-03-06 15:29:38 +11:00
Ivan-Velickovic 476c3943bf Update seL4 version
Signed-off-by: Ivan-Velickovic <i.velickovic@unsw.edu.au>
2025-03-06 11:09:37 +11:00
Ivan-Velickovic 8ecb2371f3 Add .pdf to gitignore
Signed-off-by: Ivan-Velickovic <i.velickovic@unsw.edu.au>
2025-03-06 11:04:39 +11:00
Mathieu Mirmont 8871dc8ed1 tool/microkit: fix SchedContext allocation size
When creating CNodes, the `size` is the (log2) number of CSlots. When
creating SchedContexts the `size` is the (log2) size of the object in
bytes.

Signed-off-by: Mathieu Mirmont <mat@neutrality.ch>
2025-03-05 15:31:21 +11:00
Ivan-Velickovic 660f459263 Update seL4 version
Signed-off-by: Ivan-Velickovic <i.velickovic@unsw.edu.au>
2025-03-05 15:26:51 +11:00
Alwin Joshy 8645183737 fix relocation range-checking bug
Signed-off-by: Alwin Joshy <joshyalwin@gmail.com>
2025-03-05 15:05:15 +11:00
Ivan-Velickovic 199e41abdc loader: minor fixes/cleanup
Signed-off-by: Ivan-Velickovic <i.velickovic@unsw.edu.au>
2025-03-05 15:05:15 +11:00
Ivan Velickovic 379ef51d88 Fix loader link address for QEMU virt RISC-V
With the changes to seL4 regarding reserving the SBI region
properly [1] it means we can no longer use 0x80200000
as a loader link address for this platform.

[1]: cf3a64b44c

Signed-off-by: Ivan Velickovic <i.velickovic@unsw.edu.au>
2025-03-05 15:05:15 +11:00