rockbox/utils/sbtools
Amaury Pouly fed77808c5 elftosb: support 'strings' in section id, support load binary at address, support call/jump at address
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30110 a1c6a512-1295-4272-9138-f99709370657
2011-07-02 02:12:01 +00:00
..
aes128.c sbtools: fix a few memcpy with overlapping src/dst, fix a parsing bug (would access one byte paste the end of the buffer) 2011-05-13 12:20:49 +00:00
crc.c sbtoelf: fix to handle unencrypted files (minor tweak) 2011-04-17 22:30:09 +00:00
crypto.h sbtoelf: fix to handle unencrypted files (minor tweak) 2011-04-17 22:30:09 +00:00
elf.c sbtools: be more verbose on debug and fix a bug (uninitialized structure) 2011-05-13 12:13:02 +00:00
elf.h sbtools: move internal elf definition to elf.c, implement elf reading 2011-04-17 15:49:58 +00:00
elftosb.c elftosb: support 'strings' in section id, support load binary at address, support call/jump at address 2011-07-02 02:12:01 +00:00
fuze+_key_file.txt
Makefile
README sbtools: document a bit the command file format 2011-04-17 23:40:14 +00:00
sb.h sbtools: add support for the mode command (rarely used) and explicit env variable to skip version check 2011-06-13 21:46:29 +00:00
sbtoelf.c elftosb: add support for jumps/calls with one argument 2011-06-30 21:30:06 +00:00
sha1.c sbtools: fix a few memcpy with overlapping src/dst, fix a parsing bug (would access one byte paste the end of the buffer) 2011-05-13 12:20:49 +00:00

This file document the format of the command file used by the elftosb tool.
By no way our tools tries to be compatible with Freescale's elftosb2.
However, our format is more subset of the general one.

The parse supports a limited form of comments: comments starting with // and ending at the end of the line.

A file first contains the list of sources:

sources
{
    hw_init = "sdram_init.elf";
    rockbox = "rockbox.elf";
}

It can then contain an arbitrary number of section. A section is identified by a number.
Within a section, three commands are supported: "load", "jump" and "call":

section(0x626f6f74) // hex for 'boot'
{
    load hw_init;
    call hw_init;
    load rockbox;
    jump rockbox;
}

Finally, both elftosb and sbtoelf tools use key files. A key file is a list of keys.
Each key consist is 128-bit long and is written in hexadecimal:

00000000000000000000000000000000

The parser does not handle blank line and only allows a final newline at the end of the file.
A file is allowed to contain zero (0) keys.