fs: separate CONFIG_FS_{FAT, EXT4} from CONFIG_CMD_{FAT, EXT*}
This makes the FAT and ext4 filesystem implementations build if CONFIG_FS_{FAT,EXT4} are defined, rather than basing the build on whether CONFIG_CMD_{FAT,EXT*} are defined. This will allow the filesystems to be built separately from the filesystem-specific commands that use them. This paves the way for the creation of filesystem-generic commands that used the filesystems, without requiring the filesystem- specific commands. Minor documentation changes are made for this change. The new config options are automatically selected by the old config options to retain backwards-compatibility. Signed-off-by: Stephen Warren <swarren@nvidia.com> Reviewed-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
This commit is contained in:
parent
672ee2110c
commit
03e2ecf6b8
4
README
4
README
@ -807,9 +807,11 @@ The following options need to be configured:
|
||||
CONFIG_CMD_EEPROM * EEPROM read/write support
|
||||
CONFIG_CMD_ELF * bootelf, bootvx
|
||||
CONFIG_CMD_EXPORTENV * export the environment
|
||||
CONFIG_CMD_EXT2 * ext2 command support
|
||||
CONFIG_CMD_EXT4 * ext4 command support
|
||||
CONFIG_CMD_SAVEENV saveenv
|
||||
CONFIG_CMD_FDC * Floppy Disk Support
|
||||
CONFIG_CMD_FAT * FAT partition support
|
||||
CONFIG_CMD_FAT * FAT command support
|
||||
CONFIG_CMD_FDOS * Dos diskette Support
|
||||
CONFIG_CMD_FLASH flinfo, erase, protect
|
||||
CONFIG_CMD_FPGA FPGA device initialization support
|
||||
|
@ -1,15 +1,28 @@
|
||||
This patch series adds support for ext4 ls,load and write features in uboot
|
||||
Journaling is supported for write feature.
|
||||
|
||||
To enable support for the ext4 (and ext2) filesystem implementation,
|
||||
#define CONFIG_FS_EXT4
|
||||
|
||||
If you want write support,
|
||||
#define CONFIG_EXT4_WRITE
|
||||
|
||||
To Enable ext2 ls and load commands, modify the board specific config file with
|
||||
#define CONFIG_CMD_EXT2
|
||||
This automatically defines CONFIG_FS_EXT4 for you.
|
||||
|
||||
To Enable ext4 ls and load commands, modify the board specific config file with
|
||||
#define CONFIG_CMD_EXT4
|
||||
This automatically defines CONFIG_FS_EXT4 for you.
|
||||
|
||||
To enable ext4 write command, modify the board specific config file with
|
||||
#define CONFIG_CMD_EXT4
|
||||
#define CONFIG_CMD_EXT4_WRITE
|
||||
These automatically define CONFIG_FS_EXT4 and CONFIG_EXT4_WRITE for you.
|
||||
|
||||
Also relevant are the generic filesystem commands,
|
||||
#define CONFIG_CMD_FS_GENERIC
|
||||
This does not automatically enable EXT4 support for you.
|
||||
|
||||
Steps to test:
|
||||
|
||||
|
@ -30,11 +30,8 @@ include $(TOPDIR)/config.mk
|
||||
LIB = $(obj)libext4fs.o
|
||||
|
||||
AOBJS =
|
||||
COBJS-$(CONFIG_CMD_EXT4) := ext4fs.o ext4_common.o dev.o
|
||||
ifndef CONFIG_CMD_EXT4
|
||||
COBJS-$(CONFIG_CMD_EXT2) := ext4fs.o ext4_common.o dev.o
|
||||
endif
|
||||
COBJS-$(CONFIG_CMD_EXT4_WRITE) += ext4_journal.o crc16.o
|
||||
COBJS-$(CONFIG_FS_EXT4) := ext4fs.o ext4_common.o dev.o
|
||||
COBJS-$(CONFIG_EXT4_WRITE) += ext4_journal.o crc16.o
|
||||
|
||||
SRCS := $(AOBJS:.o=.S) $(COBJS-y:.o=.c)
|
||||
OBJS := $(addprefix $(obj),$(AOBJS) $(COBJS-y))
|
||||
|
@ -56,7 +56,7 @@ int ext4fs_indir3_blkno = -1;
|
||||
struct ext2_inode *g_parent_inode;
|
||||
static int symlinknest;
|
||||
|
||||
#if defined(CONFIG_CMD_EXT4_WRITE)
|
||||
#if defined(CONFIG_EXT4_WRITE)
|
||||
uint32_t ext4fs_div_roundup(uint32_t size, uint32_t n)
|
||||
{
|
||||
uint32_t res = size / n;
|
||||
|
@ -37,7 +37,7 @@
|
||||
#include <ext4fs.h>
|
||||
#include <malloc.h>
|
||||
#include <asm/errno.h>
|
||||
#if defined(CONFIG_CMD_EXT4_WRITE)
|
||||
#if defined(CONFIG_EXT4_WRITE)
|
||||
#include "ext4_journal.h"
|
||||
#include "crc16.h"
|
||||
#endif
|
||||
@ -71,7 +71,7 @@ int ext4fs_find_file(const char *path, struct ext2fs_node *rootnode,
|
||||
int ext4fs_iterate_dir(struct ext2fs_node *dir, char *name,
|
||||
struct ext2fs_node **fnode, int *ftype);
|
||||
|
||||
#if defined(CONFIG_CMD_EXT4_WRITE)
|
||||
#if defined(CONFIG_EXT4_WRITE)
|
||||
uint32_t ext4fs_div_roundup(uint32_t size, uint32_t n);
|
||||
int ext4fs_checksum_update(unsigned int i);
|
||||
int ext4fs_get_parent_inode_num(const char *dirname, char *dname, int flags);
|
||||
|
@ -196,7 +196,7 @@ int ext4fs_read(char *buf, unsigned len)
|
||||
return ext4fs_read_file(ext4fs_file, 0, len, buf);
|
||||
}
|
||||
|
||||
#if defined(CONFIG_CMD_EXT4_WRITE)
|
||||
#if defined(CONFIG_EXT4_WRITE)
|
||||
static void ext4fs_update(void)
|
||||
{
|
||||
short i;
|
||||
|
@ -24,11 +24,11 @@ include $(TOPDIR)/config.mk
|
||||
LIB = $(obj)libfat.o
|
||||
|
||||
AOBJS =
|
||||
COBJS-$(CONFIG_CMD_FAT) := fat.o
|
||||
COBJS-$(CONFIG_FS_FAT) := fat.o
|
||||
COBJS-$(CONFIG_FAT_WRITE):= fat_write.o
|
||||
|
||||
ifndef CONFIG_SPL_BUILD
|
||||
COBJS-$(CONFIG_CMD_FAT) += file.o
|
||||
COBJS-$(CONFIG_FS_FAT) += file.o
|
||||
endif
|
||||
|
||||
SRCS := $(AOBJS:.o=.S) $(COBJS-y:.o=.c)
|
||||
|
@ -13,4 +13,17 @@
|
||||
#define CONFIG_SYS_BAUDRATE_TABLE { 9600, 19200, 38400, 57600, 115200 }
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_CMD_FAT) && !defined(CONFIG_FS_FAT)
|
||||
#define CONFIG_FS_FAT
|
||||
#endif
|
||||
|
||||
#if (defined(CONFIG_CMD_EXT4) || defined(CONFIG_CMD_EXT2)) && \
|
||||
!defined(CONFIG_FS_EXT4)
|
||||
#define CONFIG_FS_EXT4
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_CMD_EXT4_WRITE) && !defined(CONFIG_EXT4_WRITE)
|
||||
#define CONFIG_EXT4_WRITE
|
||||
#endif
|
||||
|
||||
#endif /* __CONFIG_FALLBACKS_H */
|
||||
|
@ -116,7 +116,7 @@ struct ext_filesystem {
|
||||
extern struct ext2_data *ext4fs_root;
|
||||
extern struct ext2fs_node *ext4fs_file;
|
||||
|
||||
#if defined(CONFIG_CMD_EXT4_WRITE)
|
||||
#if defined(CONFIG_EXT4_WRITE)
|
||||
extern struct ext2_inode *g_parent_inode;
|
||||
extern int gd_index;
|
||||
extern int gindex;
|
||||
|
Loading…
Reference in New Issue
Block a user