Skip to content
Snippets Groups Projects
Commit e79f4839 authored by Lei Wen's avatar Lei Wen Committed by Wolfgang Denk
Browse files

env_mmc: fix cannot save env issue


The env change its implementation after this log, while env mmc
didn't change it immediately, which cause issue. Follow to the
new style to fix it.

commit ea882baf
Author: Wolfgang Denk <wd@denx.de>
Date:   Sun Jun 20 23:33:59 2010 +0200

    New implementation for internal handling of environment variables.

Signed-off-by: default avatarLei Wen <leiwen@marvell.com>
parent 1a2d9b30
No related branches found
No related tags found
No related merge requests found
......@@ -29,6 +29,7 @@
#include <linux/stddef.h>
#include <malloc.h>
#include <mmc.h>
#include <errno.h>
/* references to names in env_common.c */
extern uchar default_environment[];
......@@ -96,13 +97,23 @@ inline int write_env(struct mmc *mmc, unsigned long size,
int saveenv(void)
{
env_t env_new;
ssize_t len;
char *res;
struct mmc *mmc = find_mmc_device(CONFIG_SYS_MMC_ENV_DEV);
if (init_mmc_for_env(mmc))
return 1;
res = (char *)&env_new.data;
len = hexport('\0', &res, ENV_SIZE);
if (len < 0) {
error("Cannot export environment: errno = %d\n", errno);
return 1;
}
env_new.crc = crc32(0, env_new.data, ENV_SIZE);
printf("Writing to MMC(%d)... ", CONFIG_SYS_MMC_ENV_DEV);
if (write_env(mmc, CONFIG_ENV_SIZE, CONFIG_ENV_OFFSET, env_ptr)) {
if (write_env(mmc, CONFIG_ENV_SIZE, CONFIG_ENV_OFFSET, (u_char *)&env_new)) {
puts("failed\n");
return 1;
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment