xref: /rk3399_rockchip-uboot/tools/env/README (revision 573329571435eae967182baf94b2146188fb1ee5)
16aff3115Swdenk
26aff3115SwdenkThis is a demo implementation of a Linux command line tool to access
36aff3115Swdenkthe U-Boot's environment variables.
46aff3115Swdenk
556c17698SLuca CeresoliIn order to cross-compile fw_printenv, run
6*57332957SSimon Glass    make CROSS_COMPILE=<your cross-compiler prefix> envtools
756c17698SLuca Ceresoliin the root directory of the U-Boot distribution. For example,
8*57332957SSimon Glass    make CROSS_COMPILE=arm-linux- envtools
956c17698SLuca Ceresoli
1055011539SRobert P. J. DayFor the run-time utility configuration uncomment the line
11d0fb80c3Swdenk#define CONFIG_FILE  "/etc/fw_env.config"
12d0fb80c3Swdenkin fw_env.h.
13d0fb80c3Swdenk
146de66b35SMarkus KlotzbücherFor building against older versions of the MTD headers (meaning before
156de66b35SMarkus Klotzbücherv2.6.8-rc1) it is required to pass the argument "MTD_VERSION=old" to
166de66b35SMarkus Klotzbüchermake.
176de66b35SMarkus Klotzbücher
18d0fb80c3SwdenkSee comments in the fw_env.config file for definitions for the
19d0fb80c3Swdenkparticular board.
20d0fb80c3Swdenk
21d0fb80c3SwdenkConfiguration can also be done via #defines in the fw_env.h file. The
226aff3115Swdenkfollowing lines are relevant:
236aff3115Swdenk
246aff3115Swdenk#define HAVE_REDUND	/* For systems with 2 env sectors */
256aff3115Swdenk#define DEVICE1_NAME	"/dev/mtd1"
266aff3115Swdenk#define DEVICE2_NAME	"/dev/mtd2"
27d0fb80c3Swdenk#define DEVICE1_OFFSET    0x0000
286aff3115Swdenk#define ENV1_SIZE         0x4000
296aff3115Swdenk#define DEVICE1_ESIZE     0x4000
3056086921SGuennadi Liakhovetski#define DEVICE1_ENVSECTORS     2
31d0fb80c3Swdenk#define DEVICE2_OFFSET    0x0000
326aff3115Swdenk#define ENV2_SIZE         0x4000
336aff3115Swdenk#define DEVICE2_ESIZE     0x4000
3456086921SGuennadi Liakhovetski#define DEVICE2_ENVSECTORS     2
356aff3115Swdenk
3655011539SRobert P. J. DayUn-define HAVE_REDUND, if you want to use the utilities on a system
37d0fb80c3Swdenkthat does not have support for redundant environment enabled.
38d0fb80c3SwdenkIf HAVE_REDUND is undefined, DEVICE2_NAME is ignored,
39d0fb80c3Swdenkas is ENV2_SIZE and DEVICE2_ESIZE.
40d0fb80c3Swdenk
41d0fb80c3SwdenkThe DEVICEx_NAME constants define which MTD character devices are to
42d0fb80c3Swdenkbe used to access the environment.
43d0fb80c3Swdenk
44d0fb80c3SwdenkThe DEVICEx_OFFSET constants define the environment offset within the
45d0fb80c3SwdenkMTD character device.
46d0fb80c3Swdenk
47d0fb80c3SwdenkENVx_SIZE defines the size in bytes taken by the environment, which
48d0fb80c3Swdenkmay be less then flash sector size, if the environment takes less
49d0fb80c3Swdenkthen 1 sector.
50d0fb80c3Swdenk
516aff3115SwdenkDEVICEx_ESIZE defines the size of the first sector in the flash
52d0fb80c3Swdenkpartition where the environment resides.
5356086921SGuennadi Liakhovetski
5456086921SGuennadi LiakhovetskiDEVICEx_ENVSECTORS defines the number of sectors that may be used for
5556086921SGuennadi Liakhovetskithis environment instance. On NAND this is used to limit the range
5656086921SGuennadi Liakhovetskiwithin which bad blocks are skipped, on NOR it is not used.
571c4ea78aSJoe Hershberger
581c4ea78aSJoe HershbergerTo prevent losing changes to the environment and to prevent confusing the MTD
591c4ea78aSJoe Hershbergerdrivers, a lock file at /var/lock/fw_printenv.lock is used to serialize access
601c4ea78aSJoe Hershbergerto the environment.
61