]>
Commit | Line | Data |
---|---|---|
6aff3115 WD |
1 | |
2 | This is a demo implementation of a Linux command line tool to access | |
3 | the U-Boot's environment variables. | |
4 | ||
56c17698 | 5 | In order to cross-compile fw_printenv, run |
57332957 | 6 | make CROSS_COMPILE=<your cross-compiler prefix> envtools |
56c17698 | 7 | in the root directory of the U-Boot distribution. For example, |
57332957 | 8 | make CROSS_COMPILE=arm-linux- envtools |
56c17698 | 9 | |
84a42069 SG |
10 | You should then create a symlink from fw_setenv to fw_printenv. They use |
11 | the same program and its function depends on its basename. | |
12 | ||
55011539 | 13 | For the run-time utility configuration uncomment the line |
d0fb80c3 WD |
14 | #define CONFIG_FILE "/etc/fw_env.config" |
15 | in fw_env.h. | |
16 | ||
6de66b35 MK |
17 | For building against older versions of the MTD headers (meaning before |
18 | v2.6.8-rc1) it is required to pass the argument "MTD_VERSION=old" to | |
19 | make. | |
20 | ||
d0fb80c3 WD |
21 | See comments in the fw_env.config file for definitions for the |
22 | particular board. | |
23 | ||
24 | Configuration can also be done via #defines in the fw_env.h file. The | |
6aff3115 WD |
25 | following lines are relevant: |
26 | ||
27 | #define HAVE_REDUND /* For systems with 2 env sectors */ | |
28 | #define DEVICE1_NAME "/dev/mtd1" | |
29 | #define DEVICE2_NAME "/dev/mtd2" | |
d0fb80c3 WD |
30 | #define DEVICE1_OFFSET 0x0000 |
31 | #define ENV1_SIZE 0x4000 | |
32 | #define DEVICE1_ESIZE 0x4000 | |
56086921 | 33 | #define DEVICE1_ENVSECTORS 2 |
d0fb80c3 WD |
34 | #define DEVICE2_OFFSET 0x0000 |
35 | #define ENV2_SIZE 0x4000 | |
36 | #define DEVICE2_ESIZE 0x4000 | |
56086921 | 37 | #define DEVICE2_ENVSECTORS 2 |
6aff3115 | 38 | |
55011539 | 39 | Un-define HAVE_REDUND, if you want to use the utilities on a system |
d0fb80c3 WD |
40 | that does not have support for redundant environment enabled. |
41 | If HAVE_REDUND is undefined, DEVICE2_NAME is ignored, | |
42 | as is ENV2_SIZE and DEVICE2_ESIZE. | |
43 | ||
44 | The DEVICEx_NAME constants define which MTD character devices are to | |
45 | be used to access the environment. | |
46 | ||
47 | The DEVICEx_OFFSET constants define the environment offset within the | |
48 | MTD character device. | |
49 | ||
50 | ENVx_SIZE defines the size in bytes taken by the environment, which | |
51 | may be less then flash sector size, if the environment takes less | |
52 | then 1 sector. | |
53 | ||
6aff3115 | 54 | DEVICEx_ESIZE defines the size of the first sector in the flash |
d0fb80c3 | 55 | partition where the environment resides. |
56086921 GL |
56 | |
57 | DEVICEx_ENVSECTORS defines the number of sectors that may be used for | |
58 | this environment instance. On NAND this is used to limit the range | |
59 | within which bad blocks are skipped, on NOR it is not used. | |
1c4ea78a JH |
60 | |
61 | To prevent losing changes to the environment and to prevent confusing the MTD | |
62 | drivers, a lock file at /var/lock/fw_printenv.lock is used to serialize access | |
63 | to the environment. |