#include <fat.h>
#include <fs.h>
#include <sandboxfs.h>
+#include <semihostingfs.h>
#include <ubifs_uboot.h>
#include <btrfs.h>
#include <asm/global_data.h>
#include <linux/math64.h>
#include <efi_loader.h>
#include <squashfs.h>
+#include <erofs.h>
DECLARE_GLOBAL_DATA_PTR;
static inline int fs_probe_unsupported(struct blk_desc *fs_dev_desc,
struct disk_partition *fs_partition)
{
- log_err("** Unrecognized filesystem type **\n");
+ log_debug("Unrecognized filesystem type\n");
return -1;
}
};
static struct fstype_info fstypes[] = {
-#ifdef CONFIG_FS_FAT
+#if CONFIG_IS_ENABLED(FS_FAT)
{
.fstype = FS_TYPE_FAT,
.name = "fat",
.ln = fs_ln_unsupported,
},
#endif
+#ifdef CONFIG_SEMIHOSTING
+ {
+ .fstype = FS_TYPE_SEMIHOSTING,
+ .name = "semihosting",
+ .null_dev_desc_ok = true,
+ .probe = smh_fs_set_blk_dev,
+ .close = fs_close_unsupported,
+ .ls = fs_ls_unsupported,
+ .exists = fs_exists_unsupported,
+ .size = smh_fs_size,
+ .read = smh_fs_read,
+ .write = smh_fs_write,
+ .uuid = fs_uuid_unsupported,
+ .opendir = fs_opendir_unsupported,
+ .unlink = fs_unlink_unsupported,
+ .mkdir = fs_mkdir_unsupported,
+ .ln = fs_ln_unsupported,
+ },
+#endif
+#ifndef CONFIG_SPL_BUILD
#ifdef CONFIG_CMD_UBIFS
{
.fstype = FS_TYPE_UBIFS,
.ln = fs_ln_unsupported,
},
#endif
+#endif
#ifdef CONFIG_FS_BTRFS
{
.fstype = FS_TYPE_BTRFS,
.unlink = fs_unlink_unsupported,
.mkdir = fs_mkdir_unsupported,
},
+#endif
+#if IS_ENABLED(CONFIG_FS_EROFS)
+ {
+ .fstype = FS_TYPE_EROFS,
+ .name = "erofs",
+ .null_dev_desc_ok = false,
+ .probe = erofs_probe,
+ .opendir = erofs_opendir,
+ .readdir = erofs_readdir,
+ .ls = fs_ls_generic,
+ .read = erofs_read,
+ .size = erofs_size,
+ .close = erofs_close,
+ .closedir = erofs_closedir,
+ .exists = erofs_exists,
+ .uuid = fs_uuid_unsupported,
+ .write = fs_write_unsupported,
+ .ln = fs_ln_unsupported,
+ .unlink = fs_unlink_unsupported,
+ .mkdir = fs_mkdir_unsupported,
+ },
#endif
{
.fstype = FS_TYPE_ANY,
}
if (argc >= 4) {
- addr = simple_strtoul(argv[3], &ep, 16);
+ addr = hextoul(argv[3], &ep);
if (ep == argv[3] || *ep != '\0')
return CMD_RET_USAGE;
} else {
addr_str = env_get("loadaddr");
if (addr_str != NULL)
- addr = simple_strtoul(addr_str, NULL, 16);
+ addr = hextoul(addr_str, NULL);
else
addr = CONFIG_SYS_LOAD_ADDR;
}
}
}
if (argc >= 6)
- bytes = simple_strtoul(argv[5], NULL, 16);
+ bytes = hextoul(argv[5], NULL);
else
bytes = 0;
if (argc >= 7)
- pos = simple_strtoul(argv[6], NULL, 16);
+ pos = hextoul(argv[6], NULL);
else
pos = 0;
if (fs_set_blk_dev(argv[1], argv[2], fstype))
return 1;
- addr = simple_strtoul(argv[3], NULL, 16);
+ addr = hextoul(argv[3], NULL);
filename = argv[4];
- bytes = simple_strtoul(argv[5], NULL, 16);
+ bytes = hextoul(argv[5], NULL);
if (argc >= 7)
- pos = simple_strtoul(argv[6], NULL, 16);
+ pos = hextoul(argv[6], NULL);
else
pos = 0;