mirror of
https://github.com/Fishwaldo/u-boot.git
synced 2025-06-07 23:31:36 +00:00
ubifs: Add generic fs support
Add generic fs support, so that commands like ls, load and test -e can be used on ubifs. Signed-off-by: Hans de Goede <hdegoede@redhat.com> Reviewed-by: Heiko Schocher <hs@denx.de>
This commit is contained in:
parent
29cc5bcadf
commit
251cee0db2
3 changed files with 44 additions and 0 deletions
27
disk/part.c
27
disk/part.c
|
@ -10,6 +10,7 @@
|
||||||
#include <ide.h>
|
#include <ide.h>
|
||||||
#include <malloc.h>
|
#include <malloc.h>
|
||||||
#include <part.h>
|
#include <part.h>
|
||||||
|
#include <ubifs_uboot.h>
|
||||||
|
|
||||||
#undef PART_DEBUG
|
#undef PART_DEBUG
|
||||||
|
|
||||||
|
@ -511,6 +512,10 @@ int get_device_and_partition(const char *ifname, const char *dev_part_str,
|
||||||
int part;
|
int part;
|
||||||
disk_partition_t tmpinfo;
|
disk_partition_t tmpinfo;
|
||||||
|
|
||||||
|
#if defined CONFIG_SANDBOX && defined CONFIG_CMD_UBIFS
|
||||||
|
#error Only one of CONFIG_SANDBOX and CONFIG_CMD_UBIFS may be selected
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef CONFIG_SANDBOX
|
#ifdef CONFIG_SANDBOX
|
||||||
/*
|
/*
|
||||||
* Special-case a pseudo block device "hostfs", to allow access to the
|
* Special-case a pseudo block device "hostfs", to allow access to the
|
||||||
|
@ -532,6 +537,28 @@ int get_device_and_partition(const char *ifname, const char *dev_part_str,
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef CONFIG_CMD_UBIFS
|
||||||
|
/*
|
||||||
|
* Special-case ubi, ubi goes through a mtd, rathen then through
|
||||||
|
* a regular block device.
|
||||||
|
*/
|
||||||
|
if (0 == strcmp(ifname, "ubi")) {
|
||||||
|
if (!ubifs_is_mounted()) {
|
||||||
|
printf("UBIFS not mounted, use ubifsmount to mount volume first!\n");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
*dev_desc = NULL;
|
||||||
|
memset(info, 0, sizeof(*info));
|
||||||
|
strcpy((char *)info->type, BOOT_PART_TYPE);
|
||||||
|
strcpy((char *)info->name, "UBI");
|
||||||
|
#ifdef CONFIG_PARTITION_UUIDS
|
||||||
|
info->uuid[0] = 0;
|
||||||
|
#endif
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
/* If no dev_part_str, use bootdevice environment variable */
|
/* If no dev_part_str, use bootdevice environment variable */
|
||||||
if (!dev_part_str || !strlen(dev_part_str) ||
|
if (!dev_part_str || !strlen(dev_part_str) ||
|
||||||
!strcmp(dev_part_str, "-"))
|
!strcmp(dev_part_str, "-"))
|
||||||
|
|
16
fs/fs.c
16
fs/fs.c
|
@ -23,6 +23,7 @@
|
||||||
#include <fat.h>
|
#include <fat.h>
|
||||||
#include <fs.h>
|
#include <fs.h>
|
||||||
#include <sandboxfs.h>
|
#include <sandboxfs.h>
|
||||||
|
#include <ubifs_uboot.h>
|
||||||
#include <asm/io.h>
|
#include <asm/io.h>
|
||||||
#include <div64.h>
|
#include <div64.h>
|
||||||
#include <linux/math64.h>
|
#include <linux/math64.h>
|
||||||
|
@ -156,6 +157,21 @@ static struct fstype_info fstypes[] = {
|
||||||
.write = fs_write_sandbox,
|
.write = fs_write_sandbox,
|
||||||
.uuid = fs_uuid_unsupported,
|
.uuid = fs_uuid_unsupported,
|
||||||
},
|
},
|
||||||
|
#endif
|
||||||
|
#ifdef CONFIG_CMD_UBIFS
|
||||||
|
{
|
||||||
|
.fstype = FS_TYPE_UBIFS,
|
||||||
|
.name = "ubifs",
|
||||||
|
.null_dev_desc_ok = true,
|
||||||
|
.probe = ubifs_set_blk_dev,
|
||||||
|
.close = ubifs_close,
|
||||||
|
.ls = ubifs_ls,
|
||||||
|
.exists = ubifs_exists,
|
||||||
|
.size = ubifs_size,
|
||||||
|
.read = ubifs_read,
|
||||||
|
.write = fs_write_unsupported,
|
||||||
|
.uuid = fs_uuid_unsupported,
|
||||||
|
},
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
.fstype = FS_TYPE_ANY,
|
.fstype = FS_TYPE_ANY,
|
||||||
|
|
|
@ -22,6 +22,7 @@
|
||||||
#define FS_TYPE_FAT 1
|
#define FS_TYPE_FAT 1
|
||||||
#define FS_TYPE_EXT 2
|
#define FS_TYPE_EXT 2
|
||||||
#define FS_TYPE_SANDBOX 3
|
#define FS_TYPE_SANDBOX 3
|
||||||
|
#define FS_TYPE_UBIFS 4
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Tell the fs layer which block device an partition to use for future
|
* Tell the fs layer which block device an partition to use for future
|
||||||
|
|
Loading…
Add table
Reference in a new issue