earlgrey: Support 88K ROM_EXT variant for transport firmware and expand test suites - #440
Conversation
Update the `opentitan_devbundle` dependency in `MODULE.bazel` to point to the official upstream release `devbundle-2026-08-21-1` from GitHub. Additionally, set `HOME=/tmp` in the `OtpImageAssemble` action in `target/earlgrey/env/environments.bzl`. In hermetic Bazel sandbox environments where `HOME` is unset, `opentitantool` falls back to glibc's `getpwuid_r()`, which dynamically `dlopen()`s host NSS libraries and crashes (SIGSEGV) due to a glibc ABI mismatch between the static binary and the host libc. Providing `HOME` prevents the NSS lookup. Signed-off-by: Anthony Chen <antchen@google.com>
Support an 88 KiB (0x16000) ROM_EXT / offset variant of the OpenTitan Earlgrey transport firmware, allowing the firmware image's manifest base address (`manifest_base_addr` in the manifest header) to evaluate to `0xA0016000`. 1. target.ld.jinja: Parameterize ROM_EXT and FLASH memory region sizes dynamically from `kernel.flash_start_address` using named Jinja constants (`FLASH_REMAP_BASE = 0xA0000000`, `FLASH_SLOT_SIZE = 0x80000`) instead of hardcoding 64 KiB. 2. tooling/system_config: Add `system_config_variant` Starlark rule and `system_config_override.py` tool to derive system configuration variants from `system.json5` on-the-fly, keeping `system.json5` as the single source of truth for application and process topology. 3. transport/BUILD.bazel: Add `:transport_firmware_88k` and `:no_panics_88k` targets alongside default 64 KiB targets. Signed-off-by: Anthony Chen <antchen@google.com>
…dfu tests Introduce `:transport_firmware_signed_88k` signed targets and expand the test matrices in `tests/updatemgr/BUILD.bazel` and `tests/dfu/BUILD.bazel` to test both 64 KiB and 88 KiB transport firmware variants. Signed-off-by: Anthony Chen <antchen@google.com>
|
Here is a summary of the end-to-end (E2E) test suites for the current Transport Firmware: 1. USB DFU Suite (
|
This PR adds support for building and testing an 88 KiB (
0x16000) base address variant of the OpenTitan Earlgrey transport firmware alongside the standard 64 KiB variant, and integrates the 88 KiB variant into the DFU and Update Manager test suites.Upstream OpenTitan ROM_EXT supports searching for owner software at multiple bank offsets (
88 * 1024and64 * 1024). Building the transport firmware with an 88 KiB offset produces a manifest withmanifest_base_addr = 0xA0016000, enabling ROM_EXT to locate and boot the image at the 88 KiB flash boundary.Note: this depends on #439 Only review the last 2 commits.