u-boot/tools/env
Jon Povey 735eb0f0e6 tools/env: fix redundant env flag comparison
This fixes two bugs with comparison of redundant environment flags on
read.

flag0 and flag1 in fw_env_open() were declared signed instead of
unsigned char breaking BOOLEAN mode "== 0xFF" tests and in INCREMENTAL
mode the wrong environment would be chosen where the flag values are
127 and 128 (either way round). With both flags over 128, both signs
flipped and the logic worked by happy accident.

Also there was a logic bug in the INCREMENTAL test (after signedness was
fixed) in the case flag0=0, flag1=255, env 1 would be incorrectly chosen.

Fix both of these.

Signed-off-by: Jon Povey <jon.povey@racelogic.co.uk>
2011-04-21 00:25:08 +02:00
..
fw_env.c tools/env: fix redundant env flag comparison 2011-04-21 00:25:08 +02:00
fw_env.config Add support for dataflash to U-boot environment settings tool. 2011-04-12 22:58:34 +02:00
fw_env.h Add support for dataflash to U-boot environment settings tool. 2011-04-12 22:58:34 +02:00
fw_env_main.c tools/env: fail on invalid options 2010-09-18 23:56:19 +02:00
Makefile Coding Style (white space) cleanup 2010-11-27 23:35:14 +01:00
README fw_env: add NAND support 2008-09-09 10:39:55 +02:00

This is a demo implementation of a Linux command line tool to access
the U-Boot's environment variables.

For the run-time utiltity configuration uncomment the line
#define CONFIG_FILE  "/etc/fw_env.config"
in fw_env.h.

For building against older versions of the MTD headers (meaning before
v2.6.8-rc1) it is required to pass the argument "MTD_VERSION=old" to
make.

See comments in the fw_env.config file for definitions for the
particular board.

Configuration can also be done via #defines in the fw_env.h file. The
following lines are relevant:

#define HAVE_REDUND	/* For systems with 2 env sectors */
#define DEVICE1_NAME	"/dev/mtd1"
#define DEVICE2_NAME	"/dev/mtd2"
#define DEVICE1_OFFSET    0x0000
#define ENV1_SIZE         0x4000
#define DEVICE1_ESIZE     0x4000
#define DEVICE1_ENVSECTORS     2
#define DEVICE2_OFFSET    0x0000
#define ENV2_SIZE         0x4000
#define DEVICE2_ESIZE     0x4000
#define DEVICE2_ENVSECTORS     2

Current configuration matches the environment layout of the TRAB
board.

Un-define HAVE_REDUND, if you want to use the utlities on a system
that does not have support for redundant environment enabled.
If HAVE_REDUND is undefined, DEVICE2_NAME is ignored,
as is ENV2_SIZE and DEVICE2_ESIZE.

The DEVICEx_NAME constants define which MTD character devices are to
be used to access the environment.

The DEVICEx_OFFSET constants define the environment offset within the
MTD character device.

ENVx_SIZE defines the size in bytes taken by the environment, which
may be less then flash sector size, if the environment takes less
then 1 sector.

DEVICEx_ESIZE defines the size of the first sector in the flash
partition where the environment resides.

DEVICEx_ENVSECTORS defines the number of sectors that may be used for
this environment instance. On NAND this is used to limit the range
within which bad blocks are skipped, on NOR it is not used.