Skip to content

Development and Tooling

The toolchain, the debug hardware, and the day-to-day loop of building something and getting it onto a machine.

Draft

This page is an outline. The sections below describe what still needs to be written, and no technical detail here should be treated as accurate yet.

Toolchain

To write: the compilers and language toolchains required, with versions. The bootloader needs an aarch64 cross-compiler and a bare-metal Rust target; confirm the exact requirements against the tree rather than copying them from upstream, since our fork may have moved.

Host setup

To write: what the development host itself needs — supported host operating systems, packages, and any host-side kernel requirements. Some of our debug tooling only runs on a Linux host, which is worth stating early.

Debug hardware

To write: the cables, adapters and second machines needed for tethered debug, and what each one buys you. Be specific about cable requirements — the wrong USB-C cable silently fails rather than erroring.

Host tools

To write: the tools used to talk to a target — what each one does, when you reach for it, and how to tell it is working. Note which are used as upstream ships them and which we carry patched.

Building

To write: the build invocations for each tree, what artefacts they produce, and where those artefacts end up. One subsection per tree.

Loading a build onto a target

To write: the loop of getting a build onto hardware and back out again, including the recovery path when it does not come up.

Working with agents

To write: our repositories carry agent instruction files. Explain what they are for and what a contributor should know about them.