blob: d5f228f27d8a3d6df9470c77f3b09a0d6091cd96 [file] [log] [blame]
wdenk34b613e2002-12-17 01:51:00 +00001
2This is a demo implementation of a Linux command line tool to access
3the U-Boot's environment variables.
4
Luca Ceresoliece4b572011-04-07 22:11:20 +00005In the current version, there is an issue in cross-compilation.
6In order to cross-compile fw_printenv, run
7 make HOSTCC=<your CC cross-compiler> env
8in the root directory of the U-Boot distribution. For example,
9 make HOSTCC=arm-linux-gcc env
10
wdenke7f34c62003-01-11 09:48:40 +000011For the run-time utiltity configuration uncomment the line
12#define CONFIG_FILE "/etc/fw_env.config"
13in fw_env.h.
14
Markus Klotzbücher94db5572007-11-27 10:23:20 +010015For building against older versions of the MTD headers (meaning before
16v2.6.8-rc1) it is required to pass the argument "MTD_VERSION=old" to
17make.
18
wdenke7f34c62003-01-11 09:48:40 +000019See comments in the fw_env.config file for definitions for the
20particular board.
21
22Configuration can also be done via #defines in the fw_env.h file. The
wdenk34b613e2002-12-17 01:51:00 +000023following lines are relevant:
24
25#define HAVE_REDUND /* For systems with 2 env sectors */
26#define DEVICE1_NAME "/dev/mtd1"
27#define DEVICE2_NAME "/dev/mtd2"
wdenke7f34c62003-01-11 09:48:40 +000028#define DEVICE1_OFFSET 0x0000
29#define ENV1_SIZE 0x4000
30#define DEVICE1_ESIZE 0x4000
Guennadi Liakhovetskiffb379a2008-09-04 13:01:49 +020031#define DEVICE1_ENVSECTORS 2
wdenke7f34c62003-01-11 09:48:40 +000032#define DEVICE2_OFFSET 0x0000
33#define ENV2_SIZE 0x4000
34#define DEVICE2_ESIZE 0x4000
Guennadi Liakhovetskiffb379a2008-09-04 13:01:49 +020035#define DEVICE2_ENVSECTORS 2
wdenk34b613e2002-12-17 01:51:00 +000036
37Current configuration matches the environment layout of the TRAB
38board.
39
40Un-define HAVE_REDUND, if you want to use the utlities on a system
wdenke7f34c62003-01-11 09:48:40 +000041that does not have support for redundant environment enabled.
42If HAVE_REDUND is undefined, DEVICE2_NAME is ignored,
43as is ENV2_SIZE and DEVICE2_ESIZE.
44
45The DEVICEx_NAME constants define which MTD character devices are to
46be used to access the environment.
47
48The DEVICEx_OFFSET constants define the environment offset within the
49MTD character device.
50
51ENVx_SIZE defines the size in bytes taken by the environment, which
52may be less then flash sector size, if the environment takes less
53then 1 sector.
54
wdenk34b613e2002-12-17 01:51:00 +000055DEVICEx_ESIZE defines the size of the first sector in the flash
wdenke7f34c62003-01-11 09:48:40 +000056partition where the environment resides.
Guennadi Liakhovetskiffb379a2008-09-04 13:01:49 +020057
58DEVICEx_ENVSECTORS defines the number of sectors that may be used for
59this environment instance. On NAND this is used to limit the range
60within which bad blocks are skipped, on NOR it is not used.