LAR Design
From coreboot
Contents |
Introduction
LAR is the LinuxBIOS Archiver. It is a small utility that we use to create and change LinuxBIOS images and their modules.
It is a simple archiver, similar to cpio, ar or tar.
Design goals were
- minimum overhead - maximum fault tolerance - simplicity
For a usage example see example.c.
For questions contact Stefan Reinauer <stepan@coresystems.de>.
Usage
Create archive archive.lar containing files file1 ... fileN:
$ lar c archive.lar file1 ... fileN
Extract files from archive.lar:
$ lar x archive.lar [file1 ... fileN]
List files in archive:
$ lar l archive.lar
Archive format
The rough format is:
|--------------| | header | |--------------| | data | |--------------| | header | |--------------| | data | |--------------| ...
Headers have to be 16 byte aligned.
Headers have to be 16 byte aligned.
|----------------------------| | magic (8 bytes) | |----------------------------| | length (4 bytes) | |----------------------------| | checksum (4 bytes) | |----------------------------| | offset to blob (4 bytes) | |----------------------------| | "path name" | <-- null terminated, aligned to 16 bytes |----------------------------| | blob (aligned to 16 bytes) | |----------------------------|
TODO
- Reading flash layouts
- This does not enforce any alignment yet
- Alignment enforcing will be optional