diff options
Diffstat (limited to 'common/env_dataflash.c')
| -rw-r--r-- | common/env_dataflash.c | 32 | 
1 files changed, 12 insertions, 20 deletions
| diff --git a/common/env_dataflash.c b/common/env_dataflash.c index b1386d1df..3c5af37bf 100644 --- a/common/env_dataflash.c +++ b/common/env_dataflash.c @@ -27,23 +27,17 @@  DECLARE_GLOBAL_DATA_PTR; -env_t *env_ptr = NULL; +env_t *env_ptr; -char * env_name_spec = "dataflash"; - -extern int read_dataflash(unsigned long addr, unsigned long size, -	char *result); -extern int write_dataflash(unsigned long addr_dest, -	unsigned long addr_src, unsigned long size); -extern int AT91F_DataflashInit(void); +char *env_name_spec = "dataflash";  uchar env_get_char_spec(int index)  {  	uchar c; -	read_dataflash(CONFIG_ENV_ADDR + index + offsetof(env_t,data), +	read_dataflash(CONFIG_ENV_ADDR + index + offsetof(env_t, data),  			1, (char *)&c); -	return (c); +	return c;  }  void env_relocate_spec(void) @@ -71,7 +65,7 @@ int saveenv(void)  		error("Cannot export environment: errno = %d\n", errno);  		return 1;  	} -	env_new.crc   = crc32(0, env_new.data, ENV_SIZE); +	env_new.crc = crc32(0, env_new.data, ENV_SIZE);  	return write_dataflash(CONFIG_ENV_ADDR,  				(unsigned long)&env_new, @@ -86,7 +80,7 @@ int saveenv(void)   */  int env_init(void)  { -	ulong crc, len, new; +	ulong crc, len = ENV_SIZE, new = 0;  	unsigned off;  	uchar buf[64]; @@ -99,25 +93,23 @@ int env_init(void)  	read_dataflash(CONFIG_ENV_ADDR + offsetof(env_t, crc),  		sizeof(ulong), (char *)&crc); -	new = 0; -	len = ENV_SIZE; -	off = offsetof(env_t,data); +	off = offsetof(env_t, data);  	while (len > 0) {  		int n = (len > sizeof(buf)) ? sizeof(buf) : len;  		read_dataflash(CONFIG_ENV_ADDR + off, n, (char *)buf); -		new = crc32 (new, buf, n); +		new = crc32(new, buf, n);  		len -= n;  		off += n;  	}  	if (crc == new) { -		gd->env_addr  = offsetof(env_t,data); -		gd->env_valid = 1; +		gd->env_addr	= offsetof(env_t, data); +		gd->env_valid	= 1;  	} else { -		gd->env_addr  = (ulong)&default_environment[0]; -		gd->env_valid = 0; +		gd->env_addr	= (ulong)&default_environment[0]; +		gd->env_valid	= 0;  	}  	return 0; |