Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
e4b287a
toyos-update: the signed image, the slot table and their decisions, pure
Japabu Sep 26, 2026
8c0fa9d
update: slots, a signing loader, `ssh … update < image`, and `swap` o…
Japabu Sep 26, 2026
e27e910
update: the gates' lists learn the slot words and updatecase
Japabu Sep 26, 2026
4444076
update: the ROOT and layout tests read the slotted image
Japabu Sep 26, 2026
ed25a46
update: the dying-kernel test answers a loader that does not fall back
Japabu Sep 26, 2026
d465e37
screen_loader_lines: bound the growth by the rows the lines take
Japabu Sep 26, 2026
b3ee273
toyos-abi 0.13.0 for the slot words, and clippy builds the loader wit…
Japabu Sep 26, 2026
5570d1d
toyos 0.14.0 and toyos-window 0.15.0, following toyos-abi's pin
Japabu Sep 26, 2026
f95f4ad
lockfiles: the dependency lists name the bumped toyos-abi and toyos
Japabu Sep 26, 2026
e0b5d74
Merge remote-tracking branch 'origin/main' into wt/toyos-update
Japabu Sep 26, 2026
01a9171
update tests: a machine between two kernels talks on the 16550
Japabu Sep 26, 2026
6d196f9
Answer the review: the floor rests on what the loader verifies, per key
Japabu Sep 26, 2026
56aa818
update_floor_is_the_images_own: the scope's stage first, so each cont…
Japabu Sep 26, 2026
d02b121
Merge remote-tracking branch 'origin/main' into wt/toyos-update
Japabu Sep 26, 2026
a97708a
toyos-abi 0.14.0, toyos 0.15.0 and toyos-window 0.16.0, past #525's
Japabu Sep 26, 2026
669fbc0
update tests: the variable store's walk names what it finds
Japabu Sep 26, 2026
eaa49e3
issues: a lane's tap socket path overruns macOS's sun_path from lane …
Japabu Sep 26, 2026
811afc0
update: the loader's wiring held by guests, the floor's reads by the …
Japabu Sep 26, 2026
de9369d
Merge remote-tracking branch 'origin/main' into wt/toyos-update
Japabu Sep 26, 2026
eefac4f
toyos-abi 0.15.0, toyos 0.16.0 and toyos-window 0.17.0, past #531's
Japabu Sep 26, 2026
513be66
issues: a floor variable a kernel made and the firmware keeps stops e…
Japabu Sep 26, 2026
a3bcbfa
Merge remote-tracking branch 'origin/main' into wt/toyos-update
Japabu Sep 26, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 9 additions & 11 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,11 @@ name: ci
# is `cargo run -- --ci <job>` (src/ci.rs), which runs the same on a dev host;
# nightly.yml boots the guests.
#
# The two required checks read different events, and neither is absent on the
# other — it is skipped, which a required check counts as passing: `abi-split`
# runs on the pull request alone, where the branch's own commits are; `host`
# runs only in the merge queue, where every branch has already been judged as
# a pull request. That is how each half enters the queue it does not itself
# run in.
# `abi-split` runs on both events: against main on the pull request, and in
# the merge queue against the group's base, where two branches that took one
# version meet. `host` runs only in the merge queue, where every branch has
# already been judged as a pull request; on the pull request it is skipped,
# which a required check counts as passing.

on:
pull_request:
Expand All @@ -21,15 +20,14 @@ concurrency:
cancel-in-progress: true

jobs:
# The published crates' versions, read from the branch against its merge
# base — a merge group's branches were each already judged this way as a
# pull request, so this does not run there. The name is the required check's.
# The published crates' versions; `src/ci.rs`'s `abi_split` reads which
# event it judges. The name is the required check's.
abi-split:
if: github.event_name == 'pull_request'
runs-on: ubuntu-latest
timeout-minutes: 5
steps:
# Full history: `sdkversion::judge` needs the merge base with origin/main.
# Full history: the judge needs the merge base with origin/main, or the
# group's base.
- uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4.4.0
with:
fetch-depth: 0
Expand Down
86 changes: 85 additions & 1 deletion Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,7 @@ members = [
"toyos-tco",
"toyos-tmpdir",
"toyos-untrusted",
"toyos-update",
"toyos-userbound",
"toyos-userpin",
"toyos-wallclock",
Expand Down Expand Up @@ -142,6 +143,11 @@ toyos-tco = { path = "toyos-tco" }
# every test here; `--ci host` holds the host tests to leaving nothing behind.
toyos-tmpdir = { path = "toyos-tmpdir" }
toyos-blackbox = { path = "toyos-blackbox" }
# The signed image, the slot table and the signer: `src/signing.rs` signs with
# the same crate the loader and `/system/bin/update` verify with.
toyos-update = { path = "toyos-update", features = ["sign"] }
# A throwaway key's seed, from the operating system. Already resolved here.
getrandom = "0.3"
# `classify`, so the host reading a log volume and `logd` writing it cannot
# disagree about which files on it are `logd`'s.
toyos-wallclock = { path = "toyos-wallclock" }
Expand Down
9 changes: 8 additions & 1 deletion bootloader/.cargo/config.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,13 @@
[build]
target = "x86_64-unknown-uefi"
rustflags = ["-Dwarnings", "-Cforce-frame-pointers=yes"]
rustflags = [
"-Dwarnings",
"-Cforce-frame-pointers=yes",
# `ed25519-dalek`'s field arithmetic in plain 64-bit integers: its default
# on x86-64 is the AVX2 backend, which this soft-float target has no
# registers for.
"--cfg=curve25519_dalek_backend=\"serial\"",
]

[target.x86_64-unknown-uefi]
linker = "toyos-ld"
Loading
Loading