mirror of
https://github.com/openglow-org/forgefirm.git
synced 2026-09-27 16:51:12 -07:00
The documentation site, docs.forgefirm.org, is the one home for the developer documentation. BUILD.md, kas/README.md, and docs/ACCEPTANCE.md are on the site under Developers, and they are deleted here. Every reference points at the site: README.md, BRINGUP.md, UPDATE-SYSTEM.md, the kas configuration comments, release.sh, the CI workflow comments, and the releases, forgetest, and bench READMEs. BRINGUP.md: "Next work" item 16, step timing under CPU contention, is closed; the video work resolved it. The items after it are renumbered. CAMPAIGN-LOG.md records the closure. Documentation and comments only. No layer content changes, so the manifest identity of the next image does not change. No catalog consequence.
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, the output firmware
|
|
# images land here (build/tmp/deploy/images/glowforge/), and the install docs
|
|
# live here (INSTALL.md, SERIAL.md). The build and release procedure is on the
|
|
# documentation site: https://docs.forgefirm.org/developers/
|
|
#
|
|
# 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/ScottW514/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 gates the release rootfs against a passwordless root entry.
|
|
|
|
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"
|