Skip to content

ci: boot IRIX 6.5.30 on an O2 in the nightly boot test - #643

Open
jamesbraid wants to merge 2 commits into
mainfrom
ci/irix6530-o2-boot
Open

jamesbraid wants to merge 2 commits into
mainfrom
ci/irix6530-o2-boot

Conversation

@jamesbraid

Copy link
Copy Markdown
Collaborator

The nightly boot test boots IRIX 5.3 and 6.5.22, both on an Indy, so nothing
checks that iris still brings up 6.5.30. No 6.5.30 Indy disk is published, but a
stock 6.5.30 O2 install is, so boot-test now learns a second machine.

  • ip32: save the PROM's flash on iris-ci rtc-save: rtc-save failed on an
    O2, which stopped boot-test's seeding pass. It now writes the flash to the
    nvram file.
  • ci: boot IRIX 6.5.30 on an O2 ...: --machine and --prom for
    iris-ci boot-test, a per-machine Command Monitor prompt (> on the O2,
    >> on the Indy), a serial-only steps file, and a third image in the
    irix list that pins the disk and the PROM by URL and sha256. It boots on every
    host, like the other images; the Indy images leave machine and PROM empty.

Scrutinise: the O2 image points at prom/ip32prom-4.18.image on the dist
host, which is not uploaded. The O2 has no PROM built in, and the file is the
rev 4.18 ip32prom.image from the IRIX installer (sha256 11230c35...fb23c). It
has to be uploaded before the nightly can pass, or the O2 jobs fail. It publishes when
origami PR #4000 merges.

Verified locally with iris and iris-ci built from this tree, no hostgl: the
disk's sha256 matches the pinned one, and all five boot-test checks passed,
reaching login: 170 s after start (181 s for the whole test) on a loaded
host. cargo check --tests -p iris, default and --features jitv2, the
iris-ci tests and cargo test -p iris --lib ip32 pass; actionlint is clean on
build.yml. Not run: the job on a GitHub runner, and the Indy entries with the
changed prompt plumbing (the Indy keeps >> , covered by a unit test only).

@jamesbraid
jamesbraid added this pull request to stack #629 November 12, 2026 06:35
@jamesbraid
jamesbraid force-pushed the ci/irix6530-o2-boot branch 2 times, most recently from 19b70ca to 725990d Compare November 12, 2026 09:09
Base automatically changed from ci/tsan-isp to main November 12, 2026 14:47
`iris-ci rtc-save` answered "not supported here" on an O2, so a scripted
run that seeds the PROM's environment with setenv could not ask for the
flash to be written, as it does on the Indy and the Octane. The O2 keeps
that environment in flash, and saves it only when the guest writes it
and when the machine stops.

Implement the call on the O2: it writes the flash to the file `nvram`
names, and the RTC's RAM beside it. A path argument is refused, since
the flash has one home. The test builds an O2, saves, and checks the
file is the size of the part.

Found while teaching `iris-ci boot-test` the O2: its seeding pass sent
rtc-save after the setenv lines and stopped on the error.
The nightly boot test covered IRIX 5.3 and 6.5.22, both on an Indy, and
nothing booted 6.5.30. No 6.5.30 Indy disk is published, but
the dist host has a stock 6.5.30 O2 install, so teach boot-test to boot
another machine.

`iris-ci boot-test` takes `--machine`, a profile name, and `--prom`. The
Indy stays the default. The O2 has no PROM built in, so it needs one,
and the config the test writes now names the machine and the PROM. The
O2's Command Monitor prompts with `> ` where the Indy's prints `>> `, so
the prompt is chosen by machine; waiting for `> ` everywhere would stop
early on any `> ` inside a listing. The disk, NVRAM variables and
`console d` are the same as the Indy's, so tests/irix/boot-irix6530-o2.toml
repeats boot-irix65.toml, serial only for want of a golden screenshot.

The `irix` list gets a third image, the O2's, with its machine, disk
and PROM, each pinned by URL and sha256. Like the other images it boots
on every host platform. The Indy images leave the machine and PROM
fields empty. The job downloads the PROM and
checks its hash when the image names one. The PROM is rev 4.18, the
IRIX installer's ip32prom.image (sha256 11230c35...). The O2 has no
PROM on the dist host yet: the entry points at
prom/ip32prom-4.18.image there, which has to be uploaded before the
nightly can pass.

Run locally with iris and iris-ci built from this tree on the pinned
disk (sha256 checked after download) and that PROM: all five checks
passed and `login:` arrived 170 s after start, 181 s for the whole test,
on a loaded 16-thread host. The runner-side steps did not run here:
actionlint is clean, but the job itself needs GitHub.
@jamesbraid
jamesbraid marked this pull request as ready for review November 12, 2026 14:54
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