summaryrefslogtreecommitdiff
path: root/README
blob: 520d39658a2cb000bbb88f23c9a68334eaf2a958 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
mkubootenv
==========

Create an U-Boot environmet image suitable for flashing. The input is a text
file containing environment variable definitions in the format “name=value”,
separeated by newlines.

The output) is stored as a list of "name=value" strings, where each of the the
strings is terminated by a NULL byte ('\0'). The end of the list is marked by a
double NULL byte.

The environment is preceeded by a 32 bit CRC over the list of strings.

Usage
-----

usage: mkubootenv [-s <size>] <source file> <target file>

Options:
  -s <size>  set size of the target image file to <size> bytes. If <size> is
             bigger than the source file, the target image gets padded with
	     null bytes. If <size> is smaller than the source file, an error is
	     emitted.
  -r         reverse operation: get plaintext env file (target) from binary
             image file (source)

File formats
------------

The U-Boot environment is stored in a simple file format, described in
include/environment.h of the U-Boot source tree as follows:

/**************************************************************************
 *
 * The "environment" is stored as a list of '\0' terminated
 * "name=value" strings. The end of the list is marked by a double
 * '\0'. New entries are always added at the end. Deleting an entry
 * shifts the remaining entries to the front. Replacing an entry is a
 * combination of deleting the old value and adding the new one.
 *
 * The environment is preceeded by a 32 bit CRC over the data part.
 *
 **************************************************************************
 */

The input file format for mkubootenv is a simple text file containing
'name=value' pairs, separated by newlines ('\n'). This means, there are _no
newlines allowed_ inside the variable names or values.

See the example/ directory for an example input file (uboot_env.env) and its
corresponding output file (uboot_env.bin).