Current Software Specifications
Software Stack: From First Boot to Full Distribution
Note: This is an initial draft of the software roadmap for the PowerPC Notebook project. This should be treated as high level thinking for now to give us a starting point rather than as a finalized roadmap. Comments and contributions are welcome.
Target architecture: PPC64 Big Endian.
Introduction
The software stack for the PowerPC Notebook is a critical enabler for the hardware. Our challenge is to bring up a modern, open-source Linux system on non-mainstream architecture (PowerPC), using a custom motherboard based on the NXP T2080 SoC (?). That means:
- Bootstrapping software from scratch, with limited upstream support
* Building and testing a minimal Linux system to prove hardware works
* Gradually evolving toward a user-friendly, maintainable Linux distribution
We outline a progressive roadmap: from booting the board to building our own distro, using modern infrastructure and tools wherever possible.
1. Basic Plan: Booting the First Prototype
The first goal is to ensure our hardware can boot into a minimal Linux environment.
What Needs to Be Done
Why
- Validates CPU, memory, and power circuitry
- Enables testing and debugging of other peripherals
- Serves as foundation for OS bring-up and userland development
2. Essentials: Proving the Prototype Works
Once we can boot, we need a minimal userland to interact with the system.
=== Components Required ===
Goal
- Boot into a shell prompt
- Validate basic system resources (<code>/proc/cpuinfo</code>, <code>dmesg</code>, etc.)
- Confirm networking, storage, and peripheral availability
3. Nice-to-Haves: Editors, Tools, and Utilities
Once the system is up, we add tools to support development, testing, and usability.
=== Suggested Additions ===
4. Distro: Building Our Own PowerPC Linux Distribution
Eventually, we want a user-facing Linux distribution specifically optimized for the PowerPC Notebook.
=== Building Blocks ===
- debootstrap / live-build (Debian-based builds)
- Buildroot (for minimal rootfs + kernel images)
- Yocto Project (flexible meta-distribution)
- Gentoo Catalyst (for full ISO or stage builds)
5. Reusing and Cross-compiling from Existing Distros
Before reinventing the wheel, we aim to reuse as much as possible from other PowerPC-supporting Linux distributions.
=== Sources of Reusable Packages ===
* Debian Ports: Many packages already built for PPC64 (Big Endian)
* Gentoo PPC64: Source-based packages easily recompiled for our target
* Void Linux PPC: Lightweight, musl or glibc-based
* Buildroot: Embedded-focused, ideal for minimal images
* Yocto layers/meta-ppc: Helpful BSPs and tooling
Cross-compiling Approach
1. Use `powerpc64-linux-gnu-gcc` cross-toolchain
2. Cross-compile Debian source packages or Gentoo ebuilds
3. Create our own package repository (e.g., Debian-style repo or overlay FS)
4. Validate on QEMU before deploying to real hardware
=== Tools and Infrastructure ===
6. CI/CD Pipelines and Build Infrastructure
To ensure maintainability, reproducibility, and collaboration, we aim to adopt continuous integration and modern DevOps practices.
CI/CD Goals
- Automatically build U-Boot, kernel, and rootfs images
- Run tests on emulated environments (QEMU PPC64)
- Deploy daily/weekly builds for community testing
- Detect regressions early and validate commits
Tools
7. Docker Images for Build and Dev Environments
Pre-configured Docker images help developers build and test quickly across any host system.
Use Cases
- Build U-Boot or Linux kernel from any host
- Package testing in isolated environments
- Running PPC-specific tools in reproducible containers
Example Images
8. Inspirations from Debian and Other Projects
We aim to reuse and adapt ideas from existing projects to accelerate development.
Relevant Debian Practices
- Reproducible Builds
- Debian Ports infrastructure
- <code>live-build</code> and <code>debootstrap</code>
- Debian Installer (<code>d-i</code>)
- QA tools: lintian, piuparts, autopkgtest
=== Related Projects to Watch ===
{| class="wikitable"
! Project !! Relevance
|-
| Debian PowerPC || Maintains PPC64 ports and packages
|-
| Void PPC || Maintains lightweight PPC builds
|-
| Gentoo PPC || Flexible, source-based PPC support
|-
| Yocto/OpenEmbedded || Board support packages and rootfs config
|-
| OpenPOWER Firmware || Future firmware replacement roadmap
|}
9. Build Tooling (WIP/Placeholders)
This section will document the exact steps, tools, and workflows needed to build every part of the software stack.
Build Tooling Overview
- Cross-toolchain setup (e.g. NXP SDK, crosstool-ng, LLVM)
- U-Boot build and customization
- Linux kernel configuration and build
- Root filesystem generation methods (debootstrap, Buildroot, Yocto)
- Build orchestration (Makefiles, shell scripts, CI runners)
- Packaging tools for our distro (dpkg, xbps, etc.)
- Secure image signing (U-Boot SPL, FIT images, secure boot)
- Emulator-based validation and test harnesses
Note: Details for each item will be populated progressively as we finalize architecture and test results.
10. Other Links and Resources
Technical Resources
- NXP T2080 Reference Manual
* Denx U-Boot Git
* Linux PowerPC Git
* Debian PowerPC Wiki
* Void PPC Project
Community and Support
* Power Progress Community
* PowerPC IRC/Matrix
* OpenPOWER Foundation