The pipeline was pasted into the Jenkins job, so it could not follow this repository and would drift out of step with the build scripts. It is here now, and the job points at this file, so a change to the build and the change to the pipeline that drives it travel together. The Gitea token is bound from the Jenkins credential 'gitea-token', which also masks it in the build log. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
zOS
zOS and ZPUTA are firmware / operating environments (with IOCP, a boot loader, and a set of
apps) for the ZPU family of soft-CPUs (Small, Medium, Flex, Evo) implemented in FPGA, and for
the NXP K64F (Kinetis Cortex-M4 / Teensy 3) as used on the tranZPUter board.
Building (automated, recommended)
The build is driven by build.sh, which assembles/compiles IOCP, the OS (zOS or ZPUTA) and the apps
for a chosen CPU. Two tool chains are involved and the setup scripts provide both:
| Target CPU | Tool chain | Source |
|---|---|---|
Small Medium Flex Evo (ZPU) |
zpu-elf-gcc 3.4.2 |
installed to /opt/zpu (hosted on eaw.app) |
K64F (Kinetis / Teensy 3) |
arm-none-eabi |
bundled in the repo at tools/arm |
Because both tool chains are Linux/cross binaries, the build runs native on Linux, in Docker on macOS, and in WSL1 on Windows (WSL2/Docker are avoided - they need nested virtualisation that some hosts, e.g. a VMware Fusion VM, can't provide; WSL1 has no VM):
| Script | Platform |
| ------ | -------- |
| setup_zOS.sh | Linux / macOS |
| setup_zOS_windows.cmd (double-click) or setup_zOS_windows_native.ps1 | Windows 10/11 (WSL1) |
Linux / macOS:
chmod +x setup_zOS.sh
./setup_zOS.sh
Windows — double-click setup_zOS_windows.cmd, or from PowerShell:
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
.\setup_zOS_windows_native.ps1
Then build any combination (build.sh picks native/Docker/WSL1 for the host automatically):
./build.sh -C Evo -O zos # zOS for the Evo ZPU
./build.sh -C K64F -O zos # zOS for the K64F
./build.sh -C Evo -O zputa # ZPUTA for the Evo ZPU
./build.sh -h # all options (-C CPU, -O os, addresses, sizes ...)
Outputs land under build/ and build/SD/ (the boot ROM, IOCP binary and bin/ app binaries for an
SD card).
Useful environment overrides: ZOS_METHOD=native|docker|wsl (force one method for the host),
ZOS_REPO_URL (repo to clone), ZOS_DIR (build in an existing checkout), ZOS_WSL_DISTRO (WSL1 distro
name, default Ubuntu), ZPU_TOOLCHAIN_URL (zpu-elf tool chain tarball).