X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=env%2Ffat.c;h=1836556f361d012e0bcd5ba54323475fe181e8a3;hb=0c14bb5ad3311de2c26e66e88f8a6886773b8e0a;hp=ec49c39053691a5d6638fc64af2e9caf910ca5ea;hpb=1fdafb2e3dfecdc4129a8062ad25b1adb32b0efb;p=oweals%2Fu-boot.git diff --git a/env/fat.c b/env/fat.c index ec49c39053..1836556f36 100644 --- a/env/fat.c +++ b/env/fat.c @@ -1,16 +1,16 @@ +// SPDX-License-Identifier: GPL-2.0+ /* * (c) Copyright 2011 by Tigris Elektronik GmbH * * Author: * Maximilian Schwerin - * - * SPDX-License-Identifier: GPL-2.0+ */ #include #include -#include +#include +#include #include #include #include @@ -31,12 +31,10 @@ # endif #endif -DECLARE_GLOBAL_DATA_PTR; - #ifdef CMD_SAVEENV static int env_fat_save(void) { - env_t env_new; + env_t __aligned(ARCH_DMA_MINALIGN) env_new; struct blk_desc *dev_desc = NULL; disk_partition_t info; int dev, part; @@ -55,7 +53,11 @@ static int env_fat_save(void) dev = dev_desc->devnum; if (fat_set_blk_dev(dev_desc, &info) != 0) { - printf("\n** Unable to use %s %d:%d for saveenv **\n", + /* + * This printf is embedded in the messages from env_save that + * will calling it. The missing \n is intentional. + */ + printf("Unable to use %s %d:%d... ", CONFIG_ENV_FAT_INTERFACE, dev, part); return 1; } @@ -63,12 +65,15 @@ static int env_fat_save(void) err = file_fat_write(CONFIG_ENV_FAT_FILE, (void *)&env_new, 0, sizeof(env_t), &size); if (err == -1) { - printf("\n** Unable to write \"%s\" from %s%d:%d **\n", + /* + * This printf is embedded in the messages from env_save that + * will calling it. The missing \n is intentional. + */ + printf("Unable to write \"%s\" from %s%d:%d... ", CONFIG_ENV_FAT_FILE, CONFIG_ENV_FAT_INTERFACE, dev, part); return 1; } - puts("done\n"); return 0; } #endif /* CMD_SAVEENV */ @@ -82,6 +87,11 @@ static int env_fat_load(void) int dev, part; int err; +#ifdef CONFIG_MMC + if (!strcmp(CONFIG_ENV_FAT_INTERFACE, "mmc")) + mmc_initialize(NULL); +#endif + part = blk_get_device_part_str(CONFIG_ENV_FAT_INTERFACE, CONFIG_ENV_FAT_DEVICE_AND_PART, &dev_desc, &info, 1); @@ -90,23 +100,30 @@ static int env_fat_load(void) dev = dev_desc->devnum; if (fat_set_blk_dev(dev_desc, &info) != 0) { - printf("\n** Unable to use %s %d:%d for loading the env **\n", + /* + * This printf is embedded in the messages from env_save that + * will calling it. The missing \n is intentional. + */ + printf("Unable to use %s %d:%d... ", CONFIG_ENV_FAT_INTERFACE, dev, part); goto err_env_relocate; } err = file_fat_read(CONFIG_ENV_FAT_FILE, buf, CONFIG_ENV_SIZE); if (err == -1) { - printf("\n** Unable to read \"%s\" from %s%d:%d **\n", + /* + * This printf is embedded in the messages from env_save that + * will calling it. The missing \n is intentional. + */ + printf("Unable to read \"%s\" from %s%d:%d... ", CONFIG_ENV_FAT_FILE, CONFIG_ENV_FAT_INTERFACE, dev, part); goto err_env_relocate; } - env_import(buf, 1); - return 0; + return env_import(buf, 1); err_env_relocate: - set_default_env(NULL); + env_set_default(NULL, 0); return -EIO; }