LAR Design

From coreboot
Revision as of 12:01, 22 June 2007 by Stepan (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

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