Skip to content

ci: build and smoke-test the XM530/XM550 SPI NAND images - #17

Merged
widgetii merged 1 commit into
openipcfrom
ci/build-xm-nand
Oct 17, 2026
Merged

widgetii merged 1 commit into
openipcfrom
ci/build-xm-nand

Conversation

@widgetii

Copy link
Copy Markdown
Member

openipc-xm now builds SPI NAND images for xm530/xm550 (#16). This PR:

  • builds them with kinds: "nor nand", checking each NAND image against the 768 KiB boot partition;
  • adds a NAND qemu_smoke leg for each. The leg lays the image into a raw 128 MiB SPI NAND (2048+64-byte pages) and boots it twice through qemu-hisilicon's NAND model (binman: Fix replacing FIT subentries u-boot/u-boot#152). It passes on the autoboot prompt and fails if the second boot can't load the env the first boot saved in NAND;
  • marks the NAND images unverified on silicon in the README. They follow a guess at how the XM530 boots from SPI NAND, and the qemu model implements the same guess.

Checked locally: all five smoke legs (3 NOR, 2 NAND) pass as written against qemu-hisilicon master. This PR's own run builds the current openipc-xm.

xm530 and xm550 now build "nor nand", with the NAND image held to the
768 KiB boot partition, and qemu_smoke gets a NAND leg for each: the
image laid into a raw 128 MiB SPI NAND (2048+64-byte pages) and booted
twice through qemu-hisilicon's NAND model, passing on the autoboot
prompt and failing if the second boot cannot load the environment the
first saved in NAND.

The NAND images follow a guess at how the XM530 boots from SPI NAND --
nothing documents it -- and the qemu model implements the same guess, so
the README marks them unverified on silicon. Checked locally: all five
smoke legs pass as written, against qemu-hisilicon with the NAND model.
@qodo-free-for-open-source-projects

Copy link
Copy Markdown

PR Summary by Qodo

Build and smoke-test XM530/XM550 SPI NAND images

⚙️ Configuration changes 🧪 Tests 📝 Documentation 🕐 10-20 Minutes

Grey Divider

AI Description

• Build XM530/XM550 NAND images and enforce the existing 768 KiB boot-partition limit.
• Add two NAND smoke legs that check boot and saved-environment persistence across restarts.
• Mark NAND images unverified on silicon because QEMU shares their undocumented boot assumption.
Diagram

graph TD
  Source["XM source"] --> Build["Build matrix"] --> Size["Partition check"] --> Artifacts[("Image artifacts")] --> NOR["NOR flash"] --> Smoke["QEMU smoke"] --> Publish["Release or publish"]
  Artifacts --> NAND["NAND flash"] --> Smoke
Loading
High-Level Assessment

Extend the existing build matrix and shared two-boot smoke test rather than create a separate NAND workflow. This preserves the current artifact and release gates while isolating the flash-specific setup; the documentation appropriately limits QEMU results to the model's unverified hardware assumption.

Files changed (3) +51 / -10

Documentation (2) +18 / -0
CLAUDE.mdDocument NAND CI legs and model dependency +6/-0

Document NAND CI legs and model dependency

• Records the NAND build and smoke-test setup, including raw flash geometry, the QEMU NAND property, and the unverified boot-path assumption.

CLAUDE.md

README.mdDocument NAND images and silicon-verification limits +12/-0

Document NAND images and silicon-verification limits

• Lists XM530/XM550 NAND outputs and their two-boot QEMU coverage. Explicitly warns that the boot assumption has not been verified on silicon and notes the missing XM530 kernel SPI NAND driver.

README.md

Other (1) +33 / -10
build-xm.ymlBuild XM530/XM550 NAND images and add NAND smoke legs +33/-10

Build XM530/XM550 NAND images and add NAND smoke legs

• Enables NAND alongside NOR for XM530/XM550, activating the existing 768 KiB NAND partition check. Adds a smoke leg per NAND image that prepares raw page-and-spare NAND media, boots QEMU twice, and uses the existing prompt and environment checks.

.github/workflows/build-xm.yml

@qodo-free-for-open-source-projects

Copy link
Copy Markdown

Code Review by Qodo

🐞 Bugs (0) 📘 Rule violations (0) 📎 Requirement gaps (0)

Grey Divider

Great, no issues found!

Qodo reviewed your code and found no material issues that require review

Grey Divider

Tip of the day
💡 Did you know, you can see how risky a PR is at a glance with blast radius labels

More tips ↗ | Customize Qodo ↗ | Qodo docs ↗

Grey Divider

Qodo Logo

@widgetii
widgetii merged commit 1d2257f into openipc Oct 17, 2026
84 checks passed
@widgetii
widgetii deleted the ci/build-xm-nand branch October 17, 2026 09:38
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