docs: build p29 on the pushed pins, image 20260902230436

CAMPAIGN-LOG: the push in CI order, the pin bumps, and build p29 with its
checks. BRINGUP item 9: the remediation is pushed, pinned, and built; owed
now is the flash, the fresh-boot baseline, and the full campaign on the
image, which the release gate asks for.
This commit is contained in:
ScottW514
2026-09-02 19:15:52 -04:00
parent 77c11c52e4
commit abccbf48e5
2 changed files with 43 additions and 22 deletions
+17 -22
View File
@@ -1352,39 +1352,34 @@ feature requests, enhancements) will eventually be tracked as GitHub issues.
shape fits any by-eye tunable the commissioning flow meets. shape fits any by-eye tunable the commissioning flow meets.
9. **Audit remediation follow-through.** The 2026-09-01 audit's fixes are 9. **Audit remediation follow-through.** The 2026-09-01 audit's fixes are
committed locally in every repository and host-tested, none pushed. Owed, pushed in every repository, pinned, and built (2026-09-02). The pooled
in order: one pooled bench session on a locally built dev image (kernel bench session came first, on a locally built dev image (kernel module,
module, forgectrl, grblHAL, gfhardware, gfutilities all moved, so the forgectrl, grblHAL, gfhardware, gfutilities all moved, so the campaign is
campaign is a full one; the drills that prove the safety fixes directly are a full one; the drills that prove the safety fixes directly are
`kernel.deadman-close` (new), `cloud.lid-during-button-wait` (now a job `kernel.deadman-close` (new), `cloud.lid-during-button-wait` (now a job
longer than the ring), `cloud.verdict-hold` (new, about twelve minutes with longer than the ring), `cloud.verdict-hold` (new, about twelve minutes with
the loop heater), `motion.deadman` (the hang case recovers on a soft the loop heater), `motion.deadman` (the hang case recovers on a soft
reset and `$X`: the stream fault is a critical alarm, which the core reset and `$X`: the stream fault is a critical alarm, which the core
unlocks only after a reset, and the reset is what re-arms the stream), unlocks only after a reset, and the reset is what re-arms the stream),
and the `cooling.*` set); then the push in CI order and the pin bumps. and the `cooling.*` set). The session's queues are green on image
The session's queues are green on image 20260902144848, the unattended 20260902144848, the unattended set and the attended set both; the harness
set and the attended set both (2026-09-02); the harness and diagnostic and diagnostic defects they found are fixed and pushed with the rest (the
defects they found are fixed in local commits (the dated record is in dated record is in CAMPAIGN-LOG). The two bench measurements are closed:
CAMPAIGN-LOG). The two bench measurements are closed: the connector pads the connector pads were not measured (the device tree carries the
were not measured (the device tree carries the factory's pad configuration factory's pad configuration and the factory machine shows no trouble
and the factory machine shows no trouble there, the operator's decision), there, the operator's decision), and the forced kernel hang ended in the
and the forced kernel hang ended in the factory recovery after the 60 s factory recovery after the 60 s watchdog with a power cycle returning, as
watchdog with a power cycle returning, as documented. Owed now: the pushes documented. Image 20260902230436 (release and dev) is built on the pushed
in CI order, the pin bumps, one image build, and the campaign on that pins, the kernel and the module rebuilt together for the watchdog sysfs
image, which the release gate asks for. change. Owed now: flash the dev image, take a fresh-boot baseline, and run
the full campaign on it, the campaign the release gate asks for.
Decisions taken in the remediation that the operator confirms or reverses: Decisions taken in the remediation that the operator confirms or reverses:
the release image has no shell login (the install page now says so); the the release image has no shell login (the install page now says so); the
cloud client holds and resumes on the cooling verdict with a 30-minute cloud client holds and resumes on the cooling verdict with a 30-minute
bound (`cloud_hold_max_s`); `FORGEFIRM_RELEASE` is 0.0.1, so the bench slot bound (`cloud_hold_max_s`); `FORGEFIRM_RELEASE` is 0.0.1, so the bench slot
at v0.1.0 will meet the installer's downgrade prompt; the `faultpos` at v0.1.0 will meet the installer's downgrade prompt; the `faultpos`
live-fire drill is gone; a coolant sensor unreadable for two ticks is the live-fire drill is gone; a coolant sensor unreadable for two ticks is the
SENSOR verdict. Bench measurements the audit asks for, pooled into the SENSOR verdict.
same session: the reset-to-probe state of the 40 V enable, the heater
enable, the TEC enable and the laser-enable nets at the connector during
a cold boot (the pads are 100 k pull-ups until a driver probes; a net
that floats high gets a pull-down pad in the device tree); one forced
kernel hard hang to confirm that the bootloader's watchdog-timeout path
boots the factory recovery and that a power cycle returns from it.
10. **PIC read pacing.** A PIC read within a fraction of a millisecond of 10. **PIC read pacing.** A PIC read within a fraction of a millisecond of
the previous one returns a disturbed value (facts bank, "Coolant-ADC the previous one returns a disturbed value (facts bank, "Coolant-ADC
+26
View File
@@ -7320,6 +7320,32 @@ So the documented path holds: a hard hang ends in the factory recovery
after the 60 s watchdog, and a power cycle returns. The recovery page and after the 60 s watchdog, and a power cycle returns. The recovery page and
the storage page say now what the console does not show. the storage page say now what the console does not show.
## 2026-09-02: the push, the pins, and build p29
With the pooled session green and the measurements closed, the remediation
went public in CI order: Glowforge-Utilities dbf80b8, python3-gfhardware
1511336, kernel-module-glowforge 8315fd8, forgectrl 522cdb2, forgefirm-docs
824f8c4, the grblHAL core fork f32d17e, meta-openglow 6a450f5 (the pins for
the kernel module at 0.0.2, gfhardware, and gfutilities at 0.9.14+git),
forgefirm 05cf734 (the pins for forgectrl at 0.1.1, grblhal-glowforge at
0.1.1, and forgefirm-app at 0.1.22+git), then grblHAL-glowforge b951f3a.
Every CI run on those heads is green.
Build p29 on the pushed pins: `bitbake -c fetch` verified every bumped pin
against GitHub; linux-fslc and the module were cleaned together (the kernel
configuration gained `CONFIG_WATCHDOG_SYSFS`, and the module's package name
carries the kernel's build hash); then both images built clean, release and
dev `20260902230436`. The built-image checks: the kernel and the module both
name `6.12.20-fslc-fslc-g3dc18b0dc67b`; the dev manifest records every pushed
commit at the planned versions; `WATCHDOG_SYSFS`, `IMX2_WDT` and
`STRICT_DEVMEM` are set; forgectrl carries the one-line settings dump and the
busy-start exit; the logging init sets the datagram queue; the suite carries
the corrected drills; no package list names gfui-client; the factory slots
mount `nofail`; the release image has no mmap or ctypes; no QA warnings.
Owed: the operator flashes the dev image, takes a fresh-boot baseline, and
runs the full campaign (all three layer hashes moved), the campaign the
release gate asks for.
## Reference notes ## Reference notes
### Head-IRQ source validation — the beam-emission hypothesis ### Head-IRQ source validation — the beam-emission hypothesis