]> git.ipfire.org Git - people/ms/u-boot.git/blobdiff - common/spl/spl_ext.c
dm: part: Rename some partition functions
[people/ms/u-boot.git] / common / spl / spl_ext.c
index d9eba5aef3a7bfae56ceda43df0a1726639d8804..b77dbf4d0ca11b8235629e8d6d4b85dfaaaf1a1a 100644 (file)
@@ -6,23 +6,23 @@
 #include <spl.h>
 #include <asm/u-boot.h>
 #include <ext4fs.h>
+#include <errno.h>
 #include <image.h>
 
 #ifdef CONFIG_SPL_EXT_SUPPORT
-int spl_load_image_ext(block_dev_desc_t *block_dev,
+int spl_load_image_ext(struct blk_desc *block_dev,
                                                int partition,
                                                const char *filename)
 {
        s32 err;
        struct image_header *header;
-       int filelen;
+       loff_t filelen, actlen;
        disk_partition_t part_info = {};
 
        header = (struct image_header *)(CONFIG_SYS_TEXT_BASE -
                                                sizeof(struct image_header));
 
-       if (get_partition_info(block_dev,
-                              partition, &part_info)) {
+       if (part_get_info(block_dev, partition, &part_info)) {
                printf("spl: no partition table found\n");
                return -1;
        }
@@ -37,41 +37,40 @@ int spl_load_image_ext(block_dev_desc_t *block_dev,
                goto end;
        }
 
-       filelen = err = ext4fs_open(filename);
+       err = ext4fs_open(filename, &filelen);
        if (err < 0) {
                puts("spl: ext4fs_open failed\n");
                goto end;
        }
-       err = ext4fs_read((char *)header, sizeof(struct image_header));
-       if (err <= 0) {
+       err = ext4fs_read((char *)header, sizeof(struct image_header), &actlen);
+       if (err < 0) {
                puts("spl: ext4fs_read failed\n");
                goto end;
        }
 
        spl_parse_image_header(header);
 
-       err = ext4fs_read((char *)spl_image.load_addr, filelen);
+       err = ext4fs_read((char *)spl_image.load_addr, filelen, &actlen);
 
 end:
 #ifdef CONFIG_SPL_LIBCOMMON_SUPPORT
-       if (err <= 0)
+       if (err < 0)
                printf("%s: error reading image %s, err - %d\n",
                       __func__, filename, err);
 #endif
 
-       return err <= 0;
+       return err < 0;
 }
 
 #ifdef CONFIG_SPL_OS_BOOT
-int spl_load_image_ext_os(block_dev_desc_t *block_dev, int partition)
+int spl_load_image_ext_os(struct blk_desc *block_dev, int partition)
 {
        int err;
-       int filelen;
+       __maybe_unused loff_t filelen, actlen;
        disk_partition_t part_info = {};
        __maybe_unused char *file;
 
-       if (get_partition_info(block_dev,
-                              partition, &part_info)) {
+       if (part_get_info(block_dev, partition, &part_info)) {
                printf("spl: no partition table found\n");
                return -1;
        }
@@ -89,13 +88,13 @@ int spl_load_image_ext_os(block_dev_desc_t *block_dev, int partition)
 #if defined(CONFIG_SPL_ENV_SUPPORT) && defined(CONFIG_SPL_OS_BOOT)
        file = getenv("falcon_args_file");
        if (file) {
-               filelen = err = ext4fs_open(file);
+               err = ext4fs_open(file, &filelen);
                if (err < 0) {
                        puts("spl: ext4fs_open failed\n");
                        goto defaults;
                }
-               err = ext4fs_read((void *)CONFIG_SYS_SPL_ARGS_ADDR, filelen);
-               if (err <= 0) {
+               err = ext4fs_read((void *)CONFIG_SYS_SPL_ARGS_ADDR, filelen, &actlen);
+               if (err < 0) {
                        printf("spl: error reading image %s, err - %d, falling back to default\n",
                               file, err);
                        goto defaults;
@@ -119,12 +118,12 @@ int spl_load_image_ext_os(block_dev_desc_t *block_dev, int partition)
 defaults:
 #endif
 
-       filelen = err = ext4fs_open(CONFIG_SPL_FS_LOAD_ARGS_NAME);
+       err = ext4fs_open(CONFIG_SPL_FS_LOAD_ARGS_NAME, &filelen);
        if (err < 0)
                puts("spl: ext4fs_open failed\n");
 
-       err = ext4fs_read((void *)CONFIG_SYS_SPL_ARGS_ADDR, filelen);
-       if (err <= 0) {
+       err = ext4fs_read((void *)CONFIG_SYS_SPL_ARGS_ADDR, filelen, &actlen);
+       if (err < 0) {
 #ifdef CONFIG_SPL_LIBCOMMON_SUPPORT
                printf("%s: error reading image %s, err - %d\n",
                       __func__, CONFIG_SPL_FS_LOAD_ARGS_NAME, err);
@@ -135,5 +134,10 @@ defaults:
        return spl_load_image_ext(block_dev, partition,
                        CONFIG_SPL_FS_LOAD_KERNEL_NAME);
 }
+#else
+int spl_load_image_ext_os(struct blk_desc *block_dev, int partition)
+{
+       return -ENOSYS;
+}
 #endif
 #endif