Firmware CI with Hardware in the Loop

Building firmware and BSPs with cross toolchains, flashing and booting real boards in CI through a scheduled board farm, telling a bad board from a bad test, and signing and versioning images for secure boot and OTA.

Overview

Why this topic

Firmware is the one kind of software whose test environment is a physical object. A unit test can run in a container, but the question that matters (does this image boot on the board, bring up DDR, talk to the sensor and survive an update) can only be answered by a real board on a bench.

Hardware-in-the-loop (HIL) CI puts those boards behind the pipeline: a merge request builds the image, a scheduler picks a free board of the right type, a controller flashes it, power-cycles it, reads its serial console and runs tests against it. The infrastructure engineer owns everything between the commit and the verdict: toolchains, build caches, the board farm, power and console wiring, the scheduler, the signing service and the release versioning.

Interview questions

  • Design a CI pipeline for an embedded Linux product with five board types. What runs per merge, what runs nightly, and how do you keep it fast?
  • A test fails in the board farm. How do you decide whether the board, the farm or the code is to blame, automatically?
  • How do you control power and console for 200 boards reliably, and what goes wrong at that scale?
  • How do you handle signing keys and secure boot in CI without putting the release key at risk?
  • How do you version firmware and make OTA updates safe to roll out to a fleet?
  • Your on-target pass rate drops from 98 percent to 85 percent overnight across one board type. Walk through the investigation.

Sign up free to read the full topic

More AI Infrastructure topics

Start free on Cariara · Coding problems · System design studio