Skip to content

hw_ci: make BootZynqMPJTAG places daily-bootable (tron / ADRV9009-ZU11EG) - #118

Merged
tfcollins merged 2 commits into
mainfrom
feat/tron-daily-boot
Aug 8, 2026
Merged

hw_ci: make BootZynqMPJTAG places daily-bootable (tron / ADRV9009-ZU11EG)#118
tfcollins merged 2 commits into
mainfrom
feat/tron-daily-boot

Conversation

@tfcollins

Copy link
Copy Markdown
Owner

Makes JTAG-strapped ZynqMP boards (tron / ADRV9009-ZU11EG) first-class legs in the daily infra boot-smoke. See the commit message for details; validated end-to-end from the hw-nemo runner (request → JTAG production handoff → Kuiper shell → iiod verify → power-down → release).

Coordinator side (already applied): tron place tags now carry boot-strategy=BootZynqMPJTAG, power-driver, recovery-root, bitstream-path, serial overrides; boot payloads staged at canonical names under tron:~/zu11eg-recovery.

https://claude.ai/code/session_017CNLEavTbfgRt4XE9mrzUT

…1EG)

The daily infra boot-smoke previously gave tron only a reserve-only leg:
the place had no boot-strategy tag, BootZynqMPJTAG was not URI-bootable,
and the generic request flow could not have driven it anyway. Now a
JTAG-strapped ZynqMP board is a first-class boot leg:

- BootZynqMPJTAG accepts "shell" as an alias for kuiper_shell, so the
  hardware-request flow's strategy.transition("shell") boots it like
  any other place.
- BootZynqMPJTAG joins URI_BOOTABLE_STRATEGIES (validated on tron: the
  production handoff boots Kuiper and iiod serves).
- The BootZynqMPJTAG template is now a bootable production config:
  payloads at canonical names under the recovery-root tag, PL bitstream
  via bitstream-path, serial-host/protocol override tags for ser2net
  benches whose rfc2217 hangs pyserial's purge negotiation, jtag-url
  override, and the ADI Kuiper login. render_env supplies the new
  substitutions.
- RemoteExecMixin resolves exporter hosts with a .local fallback
  (mirroring host_reachable): the coordinator advertises bare names,
  and on mDNS-only networks only <name>.local resolves — live-found on
  the nemo runner, which cannot resolve bare "tron".

Validated end-to-end from the hw-nemo runner host with a fresh venv:
adi-lg request --part adrv9009zu11eg --mode uri boots tron through the
JTAG production handoff to a Kuiper shell (Ethernet, dual Talise, JESD
checks green), resolves ip:<dut>, verifies iiod, powers down, releases.

Signed-off-by: Travis F. Collins <travis.collins@analog.com>
The test workflow's nox lint installs latest ruff unpinned; a new ruff
release reformats three pre-existing files plus the new remote-exec
tests, so main's lint was already red for any fresh PR. Format-only.

Signed-off-by: Travis F. Collins <travis.collins@analog.com>
@tfcollins
tfcollins merged commit 920258d into main Aug 8, 2026
6 checks passed
@tfcollins
tfcollins deleted the feat/tron-daily-boot branch August 8, 2026 20:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant