mmc.c (0649cd0d4908d9b983a0361b8665938ef25701be) mmc.c (203e94f6c9ca03e260175ce240f5856507395585)
1/*
2 * (C) Copyright 2008-2011 Freescale Semiconductor, Inc.
3 *
4 * SPDX-License-Identifier: GPL-2.0+
5 */
6
7/* #define DEBUG */
8

--- 72 unchanged lines hidden (view full) ---

81{
82 return CONFIG_SYS_MMC_ENV_DEV;
83}
84
85int env_init(void)
86{
87 /* use default */
88 gd->env_addr = (ulong)&default_environment[0];
1/*
2 * (C) Copyright 2008-2011 Freescale Semiconductor, Inc.
3 *
4 * SPDX-License-Identifier: GPL-2.0+
5 */
6
7/* #define DEBUG */
8

--- 72 unchanged lines hidden (view full) ---

81{
82 return CONFIG_SYS_MMC_ENV_DEV;
83}
84
85int env_init(void)
86{
87 /* use default */
88 gd->env_addr = (ulong)&default_environment[0];
89 gd->env_valid = 1;
89 gd->env_valid = ENV_VALID;
90
91 return 0;
92}
93
94#ifdef CONFIG_SYS_MMC_ENV_PART
95__weak uint mmc_get_env_part(struct mmc *mmc)
96{
97 return CONFIG_SYS_MMC_ENV_PART;

--- 77 unchanged lines hidden (view full) ---

175 return 1;
176 }
177
178 ret = env_export(env_new);
179 if (ret)
180 goto fini;
181
182#ifdef CONFIG_ENV_OFFSET_REDUND
90
91 return 0;
92}
93
94#ifdef CONFIG_SYS_MMC_ENV_PART
95__weak uint mmc_get_env_part(struct mmc *mmc)
96{
97 return CONFIG_SYS_MMC_ENV_PART;

--- 77 unchanged lines hidden (view full) ---

175 return 1;
176 }
177
178 ret = env_export(env_new);
179 if (ret)
180 goto fini;
181
182#ifdef CONFIG_ENV_OFFSET_REDUND
183 if (gd->env_valid == 1)
183 if (gd->env_valid == ENV_VALID)
184 copy = 1;
185#endif
186
187 if (mmc_get_env_addr(mmc, copy, &offset)) {
188 ret = 1;
189 goto fini;
190 }
191
192 printf("Writing to %sMMC(%d)... ", copy ? "redundant " : "", dev);
193 if (write_env(mmc, CONFIG_ENV_SIZE, offset, (u_char *)env_new)) {
194 puts("failed\n");
195 ret = 1;
196 goto fini;
197 }
198
199 puts("done\n");
200 ret = 0;
201
202#ifdef CONFIG_ENV_OFFSET_REDUND
184 copy = 1;
185#endif
186
187 if (mmc_get_env_addr(mmc, copy, &offset)) {
188 ret = 1;
189 goto fini;
190 }
191
192 printf("Writing to %sMMC(%d)... ", copy ? "redundant " : "", dev);
193 if (write_env(mmc, CONFIG_ENV_SIZE, offset, (u_char *)env_new)) {
194 puts("failed\n");
195 ret = 1;
196 goto fini;
197 }
198
199 puts("done\n");
200 ret = 0;
201
202#ifdef CONFIG_ENV_OFFSET_REDUND
203 gd->env_valid = gd->env_valid == 2 ? 1 : 2;
203 gd->env_valid = gd->env_valid == ENV_REDUND ? ENV_VALID : ENV_REDUND;
204#endif
205
206fini:
207 fini_mmc_for_env(mmc);
208 return ret;
209}
210#endif /* CONFIG_CMD_SAVEENV */
211

--- 48 unchanged lines hidden (view full) ---

260 puts("*** Warning - some problems detected "
261 "reading environment; recovered successfully\n");
262
263 if (read1_fail && read2_fail) {
264 errmsg = "!bad CRC";
265 ret = 1;
266 goto fini;
267 } else if (!read1_fail && read2_fail) {
204#endif
205
206fini:
207 fini_mmc_for_env(mmc);
208 return ret;
209}
210#endif /* CONFIG_CMD_SAVEENV */
211

--- 48 unchanged lines hidden (view full) ---

260 puts("*** Warning - some problems detected "
261 "reading environment; recovered successfully\n");
262
263 if (read1_fail && read2_fail) {
264 errmsg = "!bad CRC";
265 ret = 1;
266 goto fini;
267 } else if (!read1_fail && read2_fail) {
268 gd->env_valid = 1;
268 gd->env_valid = ENV_VALID;
269 env_import((char *)tmp_env1, 1);
270 } else if (read1_fail && !read2_fail) {
269 env_import((char *)tmp_env1, 1);
270 } else if (read1_fail && !read2_fail) {
271 gd->env_valid = 2;
271 gd->env_valid = ENV_REDUND;
272 env_import((char *)tmp_env2, 1);
273 } else {
274 env_import_redund((char *)tmp_env1, (char *)tmp_env2);
275 }
276
277 ret = 0;
278
279fini:

--- 47 unchanged lines hidden ---
272 env_import((char *)tmp_env2, 1);
273 } else {
274 env_import_redund((char *)tmp_env1, (char *)tmp_env2);
275 }
276
277 ret = 0;
278
279fini:

--- 47 unchanged lines hidden ---