Skip to content

LAVA: route boot to fastboot_fastrpc to preserve firmware archive layout#306

Open
quic-mtharu wants to merge 1 commit intoqualcomm:developmentfrom
quic-mtharu:bug-fix
Open

LAVA: route boot to fastboot_fastrpc to preserve firmware archive layout#306
quic-mtharu wants to merge 1 commit intoqualcomm:developmentfrom
quic-mtharu:bug-fix

Conversation

@quic-mtharu
Copy link
Contributor

Summary

This PR updates the FastRPC LAVA job execution path to export:

export BOOT_METHOD=fastboot_fastrpc

instead of:

export BOOT_METHOD=fastboot

Background / Problem

We observed FastRPC LAVA failures during post‑processing and early boot when firmware is supplied as multiple archives and then combined using simple concatenation (cat) in the existing fastboot template flow.

Concatenation does not merge filesystem trees or correctly preserve cross-archive symlink/path semantics. In our case, /lib is defined as a symlink to /usr/lib in one archive, while firmware content is provided in another archive. When the archives are concatenated, /lib/firmware does not resolve correctly during early boot, causing firmware load failures and driver init issues.

Change

FastRPC jobs now use the fastboot_fastrpc boot method, which routes to a dedicated template (templates/boot/fastboot_fastrpc.jinja2) that merges firmware archives using extract → merge → repack. This preserves:

  • unified directory structure
  • symlinks (e.g., /lib -> /usr/lib)
  • correct firmware placement for /lib/firmware resolution

Scope / Impact

  • ✅ Scoped only to the FastRPC job flow
  • ✅ Does not modify existing fastboot boot method behavior
  • ✅ No impact to current users who continue using BOOT_METHOD=fastboot

Test Plan

  1. Reproduced failure with existing flow: Job LAVA | Scheduler | Jobs | 41792
  2. Verified fix by using fastboot_fastrpc flow: Job LAVA | Scheduler | Jobs | 41841
  3. Confirmed firmware loads successfully at boot and relevant drivers initialize without missing firmware errors.

Notes

This PR only switches the boot method selector. The functional change (archive merge logic) lives in the dedicated fastboot_fastrpc template.


Update LAVA job invocation to set BOOT_METHOD=fastboot_fastrpc instead of
BOOT_METHOD=fastboot.

The existing fastboot template path combines firmware archives using stream
concatenation (cat), which does not preserve a unified filesystem layout
and can break symlink/path resolution (e.g., /lib -> /usr/lib and firmware
files in a separate archive).

The fastboot_fastrpc boot method points jobs to a dedicated template that merges
firmware archives via extract+repack, preserving the directory hierarchy and
symlinks required for early boot firmware loads.

This change is scoped only to FastRPC job flow and does not impact the default
fastboot template behavior.

Signed-off-by: Tharun Kumar Merugu <[email protected]>
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