wdenk | 6aff311 | 2002-12-17 01:51:00 +0000 | [diff] [blame] | 1 | |
| 2 | This is a demo implementation of a Linux command line tool to access |
| 3 | the U-Boot's environment variables. |
| 4 | |
Luca Ceresoli | 56c1769 | 2011-04-07 22:11:20 +0000 | [diff] [blame] | 5 | In order to cross-compile fw_printenv, run |
Masahiro Yamada | 79fc0c5 | 2014-02-04 17:24:45 +0900 | [diff] [blame] | 6 | make CROSS_COMPILE=<your cross-compiler prefix> env |
Luca Ceresoli | 56c1769 | 2011-04-07 22:11:20 +0000 | [diff] [blame] | 7 | in the root directory of the U-Boot distribution. For example, |
Masahiro Yamada | 79fc0c5 | 2014-02-04 17:24:45 +0900 | [diff] [blame] | 8 | make CROSS_COMPILE=arm-linux- env |
Luca Ceresoli | 56c1769 | 2011-04-07 22:11:20 +0000 | [diff] [blame] | 9 | |
Robert P. J. Day | 5501153 | 2013-02-27 11:28:45 +0000 | [diff] [blame] | 10 | For the run-time utility configuration uncomment the line |
wdenk | d0fb80c | 2003-01-11 09:48:40 +0000 | [diff] [blame] | 11 | #define CONFIG_FILE "/etc/fw_env.config" |
| 12 | in fw_env.h. |
| 13 | |
Markus Klotzbücher | 6de66b3 | 2007-11-27 10:23:20 +0100 | [diff] [blame] | 14 | For building against older versions of the MTD headers (meaning before |
| 15 | v2.6.8-rc1) it is required to pass the argument "MTD_VERSION=old" to |
| 16 | make. |
| 17 | |
wdenk | d0fb80c | 2003-01-11 09:48:40 +0000 | [diff] [blame] | 18 | See comments in the fw_env.config file for definitions for the |
| 19 | particular board. |
| 20 | |
| 21 | Configuration can also be done via #defines in the fw_env.h file. The |
wdenk | 6aff311 | 2002-12-17 01:51:00 +0000 | [diff] [blame] | 22 | following lines are relevant: |
| 23 | |
| 24 | #define HAVE_REDUND /* For systems with 2 env sectors */ |
| 25 | #define DEVICE1_NAME "/dev/mtd1" |
| 26 | #define DEVICE2_NAME "/dev/mtd2" |
wdenk | d0fb80c | 2003-01-11 09:48:40 +0000 | [diff] [blame] | 27 | #define DEVICE1_OFFSET 0x0000 |
| 28 | #define ENV1_SIZE 0x4000 |
| 29 | #define DEVICE1_ESIZE 0x4000 |
Guennadi Liakhovetski | 5608692 | 2008-09-04 13:01:49 +0200 | [diff] [blame] | 30 | #define DEVICE1_ENVSECTORS 2 |
wdenk | d0fb80c | 2003-01-11 09:48:40 +0000 | [diff] [blame] | 31 | #define DEVICE2_OFFSET 0x0000 |
| 32 | #define ENV2_SIZE 0x4000 |
| 33 | #define DEVICE2_ESIZE 0x4000 |
Guennadi Liakhovetski | 5608692 | 2008-09-04 13:01:49 +0200 | [diff] [blame] | 34 | #define DEVICE2_ENVSECTORS 2 |
wdenk | 6aff311 | 2002-12-17 01:51:00 +0000 | [diff] [blame] | 35 | |
Robert P. J. Day | 5501153 | 2013-02-27 11:28:45 +0000 | [diff] [blame] | 36 | Un-define HAVE_REDUND, if you want to use the utilities on a system |
wdenk | d0fb80c | 2003-01-11 09:48:40 +0000 | [diff] [blame] | 37 | that does not have support for redundant environment enabled. |
| 38 | If HAVE_REDUND is undefined, DEVICE2_NAME is ignored, |
| 39 | as is ENV2_SIZE and DEVICE2_ESIZE. |
| 40 | |
| 41 | The DEVICEx_NAME constants define which MTD character devices are to |
| 42 | be used to access the environment. |
| 43 | |
| 44 | The DEVICEx_OFFSET constants define the environment offset within the |
| 45 | MTD character device. |
| 46 | |
| 47 | ENVx_SIZE defines the size in bytes taken by the environment, which |
| 48 | may be less then flash sector size, if the environment takes less |
| 49 | then 1 sector. |
| 50 | |
wdenk | 6aff311 | 2002-12-17 01:51:00 +0000 | [diff] [blame] | 51 | DEVICEx_ESIZE defines the size of the first sector in the flash |
wdenk | d0fb80c | 2003-01-11 09:48:40 +0000 | [diff] [blame] | 52 | partition where the environment resides. |
Guennadi Liakhovetski | 5608692 | 2008-09-04 13:01:49 +0200 | [diff] [blame] | 53 | |
| 54 | DEVICEx_ENVSECTORS defines the number of sectors that may be used for |
| 55 | this environment instance. On NAND this is used to limit the range |
| 56 | within which bad blocks are skipped, on NOR it is not used. |
Joe Hershberger | 1c4ea78 | 2012-10-04 08:31:00 +0000 | [diff] [blame] | 57 | |
| 58 | To prevent losing changes to the environment and to prevent confusing the MTD |
| 59 | drivers, a lock file at /var/lock/fw_printenv.lock is used to serialize access |
| 60 | to the environment. |