Philip Smart 0f063e1bae Add the build pipeline to the repository
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>
2026-08-09 22:50:31 +01:00

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.

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).

Description
zOS - ZPU/K64F Operating System and IOCP Bootloader
Readme 297 MiB
zOS v1.04 Latest
2026-08-09 22:49:02 +00:00
Languages
C++ 44.3%
C 33.3%
VHDL 20.9%
Python 0.4%
Makefile 0.4%
Other 0.6%