]> git.ipfire.org Git - people/ms/u-boot.git/blobdiff - common/env_fat.c
scsi: move the partition initialization out of the scsi detection
[people/ms/u-boot.git] / common / env_fat.c
index 328c09d45ff4c9b6b5120908bfb8ca9825ac67da..75616d4c5b5c8a00d8415c15a63776520435d8a5 100644 (file)
@@ -13,6 +13,7 @@
 #include <environment.h>
 #include <linux/stddef.h>
 #include <malloc.h>
+#include <memalign.h>
 #include <search.h>
 #include <errno.h>
 #include <fat.h>
@@ -37,29 +38,31 @@ int env_init(void)
 int saveenv(void)
 {
        env_t   env_new;
-       block_dev_desc_t *dev_desc = NULL;
+       struct blk_desc *dev_desc = NULL;
        disk_partition_t info;
        int dev, part;
        int err;
+       loff_t size;
 
        err = env_export(&env_new);
        if (err)
                return err;
 
-       part = get_device_and_partition(FAT_ENV_INTERFACE,
+       part = blk_get_device_part_str(FAT_ENV_INTERFACE,
                                        FAT_ENV_DEVICE_AND_PART,
                                        &dev_desc, &info, 1);
        if (part < 0)
                return 1;
 
-       dev = dev_desc->dev;
+       dev = dev_desc->devnum;
        if (fat_set_blk_dev(dev_desc, &info) != 0) {
                printf("\n** Unable to use %s %d:%d for saveenv **\n",
                       FAT_ENV_INTERFACE, dev, part);
                return 1;
        }
 
-       err = file_fat_write(FAT_ENV_FILE, (void *)&env_new, sizeof(env_t));
+       err = file_fat_write(FAT_ENV_FILE, (void *)&env_new, 0, sizeof(env_t),
+                            &size);
        if (err == -1) {
                printf("\n** Unable to write \"%s\" from %s%d:%d **\n",
                        FAT_ENV_FILE, FAT_ENV_INTERFACE, dev, part);
@@ -73,26 +76,26 @@ int saveenv(void)
 
 void env_relocate_spec(void)
 {
-       char buf[CONFIG_ENV_SIZE];
-       block_dev_desc_t *dev_desc = NULL;
+       ALLOC_CACHE_ALIGN_BUFFER(char, buf, CONFIG_ENV_SIZE);
+       struct blk_desc *dev_desc = NULL;
        disk_partition_t info;
        int dev, part;
        int err;
 
-       part = get_device_and_partition(FAT_ENV_INTERFACE,
+       part = blk_get_device_part_str(FAT_ENV_INTERFACE,
                                        FAT_ENV_DEVICE_AND_PART,
                                        &dev_desc, &info, 1);
        if (part < 0)
                goto err_env_relocate;
 
-       dev = dev_desc->dev;
+       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",
                       FAT_ENV_INTERFACE, dev, part);
                goto err_env_relocate;
        }
 
-       err = file_fat_read(FAT_ENV_FILE, (uchar *)&buf, CONFIG_ENV_SIZE);
+       err = file_fat_read(FAT_ENV_FILE, buf, CONFIG_ENV_SIZE);
        if (err == -1) {
                printf("\n** Unable to read \"%s\" from %s%d:%d **\n",
                        FAT_ENV_FILE, FAT_ENV_INTERFACE, dev, part);