From mboxrd@z Thu Jan 1 00:00:00 1970 From: Marek Vasut Date: Mon, 2 Jan 2012 16:11:49 +0100 Subject: [U-Boot] [PATCH] fw_env: use vars from the board config In-Reply-To: <1325512756-15706-1-git-send-email-fransmeulenbroeks@gmail.com> References: <1325512756-15706-1-git-send-email-fransmeulenbroeks@gmail.com> Message-ID: <201201021611.49276.marek.vasut@gmail.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de > it is quite odd that fw_printenv/fw_setenv does not > use the settings from include/configs but instead > redefines things. > > This patch uses the variables from the config file > The edit in fw_env.c is only needed to resolve a name clash > > Signed-off-by: Frans Meulenbroeks > > --- > > Note: this is more intended to get some feedback. > (also to see if I am on the right track) > I did test the changes locally. > > (and yes, I know there are some more things that could be cleaned up). > --- > tools/env/fw_env.c | 20 ++++++++++---------- > tools/env/fw_env.h | 36 ++++++++++++++++-------------------- > 2 files changed, 26 insertions(+), 30 deletions(-) > > diff --git a/tools/env/fw_env.c b/tools/env/fw_env.c > index 996682e..6597fbf 100644 > --- a/tools/env/fw_env.c > +++ b/tools/env/fw_env.c > @@ -79,7 +79,7 @@ static int dev_current; > #define ENVSECTORS(i) envdevices[(i)].env_sectors > #define DEVTYPE(i) envdevices[(i)].mtd_type > > -#define CONFIG_ENV_SIZE ENVSIZE(dev_current) > +#define CFG_ENV_SIZE ENVSIZE(dev_current) NAK, don't change it to CFG_... for no reason! Why did you change it ? Just use ENVSIZE(dev_current) instead. M > > #define ENV_SIZE getenvsize() > > @@ -216,7 +216,7 @@ static int get_config (char *); > #endif > static inline ulong getenvsize (void) > { > - ulong rc = CONFIG_ENV_SIZE - sizeof (long); > + ulong rc = CFG_ENV_SIZE - sizeof (long); > > if (HaveRedundEnv) > rc -= sizeof (char); > @@ -425,7 +425,7 @@ int fw_env_write(char *name, char *value) > ++env; > /* > * Overflow when: > - * "name" + "=" + "val" +"\0\0" > CONFIG_ENV_SIZE - (env-environment) > + * "name" + "=" + "val" +"\0\0" > CFG_ENV_SIZE - (env-environment) > */ > len = strlen (name) + 2; > /* add '=' for first arg, ' ' for all others */ > @@ -941,7 +941,7 @@ static int flash_write (int fd_current, int fd_target, > int dev_target) DEVOFFSET (dev_target), DEVNAME (dev_target)); > #endif > rc = flash_write_buf (dev_target, fd_target, environment.image, > - CONFIG_ENV_SIZE, DEVOFFSET (dev_target), > + CFG_ENV_SIZE, DEVOFFSET (dev_target), > DEVTYPE(dev_target)); > if (rc < 0) > return rc; > @@ -980,10 +980,10 @@ static int flash_read (int fd) > > DEVTYPE(dev_current) = mtdinfo.type; > > - rc = flash_read_buf (dev_current, fd, environment.image, CONFIG_ENV_SIZE, > + rc = flash_read_buf (dev_current, fd, environment.image, CFG_ENV_SIZE, > DEVOFFSET (dev_current), mtdinfo.type); > > - return (rc != CONFIG_ENV_SIZE) ? -1 : 0; > + return (rc != CFG_ENV_SIZE) ? -1 : 0; > } > > static int flash_io (int mode) > @@ -1080,11 +1080,11 @@ int fw_env_open(void) > if (parse_config ()) /* should fill envdevices */ > return -1; > > - addr0 = calloc (1, CONFIG_ENV_SIZE); > + addr0 = calloc (1, CFG_ENV_SIZE); > if (addr0 == NULL) { > fprintf (stderr, > "Not enough memory for environment (%ld bytes)\n", > - CONFIG_ENV_SIZE); > + CFG_ENV_SIZE); > return -1; > } > > @@ -1119,11 +1119,11 @@ int fw_env_open(void) > flag0 = *environment.flags; > > dev_current = 1; > - addr1 = calloc (1, CONFIG_ENV_SIZE); > + addr1 = calloc (1, CFG_ENV_SIZE); > if (addr1 == NULL) { > fprintf (stderr, > "Not enough memory for environment (%ld bytes)\n", > - CONFIG_ENV_SIZE); > + CFG_ENV_SIZE); > return -1; > } > redundant = addr1; > diff --git a/tools/env/fw_env.h b/tools/env/fw_env.h > index 2dcb373..8fcc5bd 100644 > --- a/tools/env/fw_env.h > +++ b/tools/env/fw_env.h > @@ -24,30 +24,26 @@ > /* > * To build the utility with the run-time configuration > * uncomment the next line. > - * See included "fw_env.config" sample file > + * See included "fw_env.config" sample file (TRAB board) > * for notes on configuration. > */ > -#define CONFIG_FILE "/etc/fw_env.config" > +//#define CONFIG_FILE "/etc/fw_env.config" > > -#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 > +#include "config.h" > > -#define CONFIG_BAUDRATE 115200 > -#define CONFIG_BOOTDELAY 5 /* autoboot after 5 seconds */ > -#define CONFIG_BOOTCOMMAND \ > - "bootp; " \ > - "setenv bootargs root=/dev/nfs nfsroot=${serverip}:${rootpath} " \ > - "ip=${ipaddr}:${serverip}:${gatewayip}:${netmask}:${hostname}::off; " \ > - "bootm" > +#define DEVICE1_NAME "/dev/mtd0" > +#define DEVICE2_NAME "/dev/mtd0" > +#define DEVICE1_OFFSET CONFIG_ENV_ADDR_REDUND > +#define ENV1_SIZE CONFIG_ENV_SIZE > +#define DEVICE1_ESIZE CONFIG_ENV_SECT_SIZE > +#define DEVICE1_ENVSECTORS 1 > +#ifdef CONFIG_ENV_ADDR_REDUND > +#define HAVE_REDUND /* For systems with 2 env sectors */ > +#define DEVICE2_OFFSET CONFIG_ENV_ADDR_REDUND > +#define ENV2_SIZE CONFIG_ENV_SIZE_REDUND > +#define DEVICE2_ESIZE CONFIG_ENV_SECT_SIZE > +#define DEVICE2_ENVSECTORS 1 > +#endif > > extern int fw_printenv(int argc, char *argv[]); > extern char *fw_getenv (char *name);