linuxboot / linuxboot/linuxboot

Leopard platform needs `extract-firmware --repack`

Open
#29 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug buildsystem
Dominant language
C
Stars
955
Forks
114
PR merge metrics
No merged PRs in 30d

Description

The Leopard AMI firmware has per-file compressed sections, which are not supported by the edk2 DxeCore. The symptom is that the linuxboot.rom file is created, but DxeCore doesn't load any DXE or SMM modules, complains about missing required architectural protocols, reports that the BDS has an address of 0x0 and then panics.

The extract-firmware tool has a --repack option that will decompress the LZMA sections and make a single-level FFS. Ideally this will be specified on a per-board basis. We can't make it the default since other platforms that do not use the edk2 DxeCore might not support LZMA compressed firmware volumes, so it is necessary to preserve the per-file compression to have sufficient space in the ROM.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the extract-firmware tool and its existing --repack option, then inspect how Leopard platform handling is selected. Check the edk2 DxeCore failure described in the issue and determine how per-board repacking should be specified while preserving per-file compression for other platforms. Done means Leopard produces a ROM whose DXE and SMM modules load without the reported architectural-protocol and BDS failures.

Written by the indexing model from the issue text.

Assessment

Domain
embedded-iot
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.