mirror of
https://github.com/openglow-org/forgefirm.git
synced 2026-09-28 09:11:11 -07:00
Every fact in the two documents is now on the documentation site, which is the single source of truth. This repository carries no project documentation any more: it is the build and release base plus the acceptance tool, the bench tools and the fixture firmware. BRINGUP.md was the runbook, the hardware facts bank and the open-work list. CAMPAIGN-LOG.md was the dated record of how each result was obtained. What replaces them: the site for present state, and the commit message for the record of what a change did and how it was proven, so the change and its record stay together. Local open work is the developer's own file at the tree root and is not tracked here. README.md becomes an index card: what this is, build, test, and where the documentation is. The release pipeline tags the documentation. Firmware on a machine needs the documentation that agrees with it, so release.sh now tags the forgefirm-docs checkout with the same v<version> as the release, and prints the command that pushes the tag with the release. The checkout must exist and be clean, which is a new gate before the signature. FORGEFIRM_DOCS_DIR names the checkout (default: the sibling one) and FORGEFIRM_DOCS_SKIP releases without a tag, loudly, and is never the default. The tag is made at staging and pushed with the release, never before: a documentation tag for a release that never shipped is worse than no tag. No catalog consequence. release.sh is host-side and is in no image. The commission.py change is one sentence of a test description, not behavior. accel_crash_probe.py and the kas header lose pointers to the retired files. Checks: bash -n and sh -n on release.sh, and the tracked trees carry no reference to either retired file.
127 lines
4.8 KiB
YAML
127 lines
4.8 KiB
YAML
# ============================================================================
|
|
# ForgeFIRM - kas build configuration (factory Glowforge control board)
|
|
# ============================================================================
|
|
# The forgefirm repo is the BASE: it controls the build and the output firmware
|
|
# images land here (build/tmp/deploy/images/glowforge/). The install, build and
|
|
# release procedures are on the documentation site: https://docs.forgefirm.org/
|
|
#
|
|
# Target : Yocto Scarthgap (5.0 LTS) + linux-fslc 6.12 (mainline LTS)
|
|
# Machine: glowforge (i.MX6 Solo SOM inside Basic/Plus/Pro)
|
|
# Distro : forgefirm
|
|
#
|
|
# kas generates bblayers.conf and local.conf.
|
|
#
|
|
# Run from the forgefirm repo root so outputs land inside it:
|
|
# cd forgefirm
|
|
# kas build kas/forgefirm-glowforge.yml # fetch layers + full build
|
|
# kas shell kas/forgefirm-glowforge.yml # interactive bitbake env
|
|
# kas dump kas/forgefirm-glowforge.yml # show resolved config
|
|
#
|
|
# Reproducible pins (after first checkout):
|
|
# kas lock kas/forgefirm-glowforge.yml # writes kas/forgefirm-glowforge.lock.yml
|
|
# ============================================================================
|
|
|
|
header:
|
|
version: 14
|
|
|
|
machine: glowforge
|
|
distro: forgefirm
|
|
target: forgefirm-image
|
|
|
|
# kas uses KAS_WORK_DIR (the dir you run kas from = the forgefirm repo root).
|
|
# Upstream layers are cloned into ./layers/, the build runs in ./build/, and
|
|
# caches go in ./downloads + ./sstate-cache - all gitignored, all inside forgefirm.
|
|
repos:
|
|
|
|
# --- This repo (forgefirm) - auto-detected, no url/path needed -------------
|
|
forgefirm:
|
|
layers:
|
|
meta-forgefirm:
|
|
|
|
# --- Upstream layers (cloned + pinned to the scarthgap branch by kas) ------
|
|
|
|
poky:
|
|
url: https://git.yoctoproject.org/poky.git
|
|
branch: scarthgap
|
|
path: layers/poky
|
|
layers:
|
|
meta:
|
|
meta-poky:
|
|
|
|
meta-openembedded:
|
|
url: https://github.com/openembedded/meta-openembedded.git
|
|
branch: scarthgap
|
|
path: layers/meta-openembedded
|
|
layers:
|
|
meta-oe:
|
|
meta-python:
|
|
meta-networking:
|
|
|
|
meta-freescale:
|
|
url: https://github.com/Freescale/meta-freescale.git
|
|
branch: scarthgap
|
|
path: layers/meta-freescale
|
|
layers:
|
|
.:
|
|
|
|
meta-freescale-distro:
|
|
# Provides conf/distro/include/fslc-base.inc, required by the forgefirm distro.
|
|
url: https://github.com/Freescale/meta-freescale-distro.git
|
|
branch: scarthgap
|
|
path: layers/meta-freescale-distro
|
|
layers:
|
|
.:
|
|
|
|
# --- meta-openglow - Glowforge BSP layers ---------------------------------
|
|
# Referenced as a local sibling checkout (no url => kas performs no git ops,
|
|
# so in-place BSP edits are what gets built). The kernel-module-glowforge
|
|
# sources are NOT a layer; the kernel-module-glowforge.bb recipe fetches them
|
|
# by pinned SRCREV, so kas does not manage them here.
|
|
meta-openglow:
|
|
path: ../meta-openglow
|
|
layers:
|
|
meta-openglow-core:
|
|
meta-glowforge-bsp:
|
|
#
|
|
# Pinned-remote alternative for a fully self-contained clone (see the site,
|
|
# Developers, "Release flow"):
|
|
# meta-openglow:
|
|
# url: https://github.com/openglow-org/meta-openglow.git
|
|
# branch: scarthgap # pin via kas lock / a tag at release
|
|
# path: layers/meta-openglow
|
|
# layers:
|
|
# meta-openglow-core:
|
|
# meta-glowforge-bsp:
|
|
|
|
# ----------------------------------------------------------------------------
|
|
# local.conf additions
|
|
# ----------------------------------------------------------------------------
|
|
local_conf_header:
|
|
# Accept the NXP/Freescale firmware EULA - required to unpack firmware-imx
|
|
# (i.MX SDMA/VPU firmware blobs) pulled in by the i.MX6 BSP. ForgeFIRM targets
|
|
# the factory i.MX6 Glowforge board, so this firmware is intrinsic to the image.
|
|
eula: |
|
|
ACCEPT_FSL_EULA = "1"
|
|
|
|
# The kernel defaults to linux-fslc 6.12 in conf/machine/glowforge.conf
|
|
# (with the factory drivers forward-ported - EPIT/SDMA/OV5648/glowforge.ko -
|
|
# see the site, Developers, "Build"). This explicit pin is redundant but harmless.
|
|
kernel: |
|
|
PREFERRED_PROVIDER_virtual/kernel = "linux-fslc"
|
|
PREFERRED_VERSION_linux-fslc = "6.12%"
|
|
|
|
# NOTE: debug-tweaks (passwordless root) is deliberately NOT set here. It
|
|
# would apply to every target built from this config, including the release
|
|
# forgefirm-image. It lives in forgefirm-image-dev.bb's IMAGE_FEATURES so a
|
|
# single build yields a hardened release image and a debug dev image.
|
|
# release.sh checks the built release rootfs for the root policy (an
|
|
# empty root field, sshd refusing root and empty passwords).
|
|
|
|
build-tweaks: |
|
|
# Parallelism sized for a 12-core / 16 GB build VM; raise on larger hosts.
|
|
BB_NUMBER_THREADS = "8"
|
|
PARALLEL_MAKE = "-j 8"
|
|
# Caches kept inside the forgefirm repo (gitignored):
|
|
DL_DIR ?= "${TOPDIR}/../downloads"
|
|
SSTATE_DIR ?= "${TOPDIR}/../sstate-cache"
|