Message ID | 1547709016-11642-1-git-send-email-tien.fong.chee@intel.com |
---|---|
State | Changes Requested |
Delegated to: | Tom Rini |
Headers | show |
Series | [U-Boot] spl: fat/fs: Add option to include/exclude FAT write build in SPL | expand |
On Thu, Jan 17, 2019 at 8:10 AM <tien.fong.chee@intel.com> wrote: > > From: Tien Fong Chee <tien.fong.chee@intel.com> > > Most of the time SPL only needs very simple FAT reading, so having > CONFIG_SPL_FAT_WRITE to exclude or undefined would help to save 64KiB > default max clustersize from memory. > > Signed-off-by: Tien Fong Chee <tien.fong.chee@intel.com> > --- > common/spl/Kconfig | 7 +++++++ > fs/fat/Makefile | 7 ++++++- > fs/fat/fat.c | 4 +++- > fs/fs.c | 3 ++- > 4 files changed, 18 insertions(+), 3 deletions(-) > > diff --git a/common/spl/Kconfig b/common/spl/Kconfig > index 0ddbffc..dad4c11 100644 > --- a/common/spl/Kconfig > +++ b/common/spl/Kconfig > @@ -403,6 +403,13 @@ config SPL_FAT_SUPPORT > filesystem from within SPL. Support for the underlying block > device (e.g. MMC or USB) must be enabled separately. > > +config SPL_FAT_WRITE > + bool "Support write for FAT filesystems" > + help > + Enable write support for FAT and VFAT filesystems with SPL. > + Support for the underlying block device (e.g. MMC or USB) must be > + enabled separately. > + > config SPL_FPGA_SUPPORT > bool "Support FPGAs" > help > diff --git a/fs/fat/Makefile b/fs/fat/Makefile > index e64b61a..654b8c3 100644 > --- a/fs/fat/Makefile > +++ b/fs/fat/Makefile > @@ -1,5 +1,10 @@ > # SPDX-License-Identifier: GPL-2.0+ > # > > +ifdef CONFIG_SPL_BUILD > obj-$(CONFIG_FS_FAT) := fat.o > -obj-$(CONFIG_FAT_WRITE):= fat_write.o > +obj-$(CONFIG_SPL_FAT_WRITE) = fat_write.o > +else > +obj-$(CONFIG_FS_FAT) := fat.o > +obj-$(CONFIG_FAT_WRITE) = fat_write.o > +endif > diff --git a/fs/fat/fat.c b/fs/fat/fat.c > index ac8913e..8803fb4 100644 > --- a/fs/fat/fat.c > +++ b/fs/fat/fat.c > @@ -145,7 +145,9 @@ static void get_name(dir_entry *dirent, char *s_name) > } > > static int flush_dirty_fat_buffer(fsdata *mydata); > -#if !defined(CONFIG_FAT_WRITE) > + > +#if (!defined(CONFIG_SPL_BUILD) && !defined(CONFIG_FAT_WRITE)) || \ > + (defined(CONFIG_SPL_BUILD) && !defined(CONFIG_SPL_FAT_WRITE)) What about 'CONFIG_IS_ENABLED(FAT_WRITE)' ? Regards, Simon > /* Stub for read only operation */ > int flush_dirty_fat_buffer(fsdata *mydata) > { > diff --git a/fs/fs.c b/fs/fs.c > index cb26517..0b8088b 100644 > --- a/fs/fs.c > +++ b/fs/fs.c > @@ -168,7 +168,8 @@ static struct fstype_info fstypes[] = { > .exists = fat_exists, > .size = fat_size, > .read = fat_read_file, > -#ifdef CONFIG_FAT_WRITE > +#if (!defined(CONFIG_SPL_BUILD) && defined(CONFIG_FAT_WRITE)) || \ > + (defined(CONFIG_SPL_BUILD) && defined(CONFIG_SPL_FAT_WRITE)) > .write = file_fat_write, > .unlink = fat_unlink, > .mkdir = fat_mkdir, > -- > 1.7.7.4 > > _______________________________________________ > U-Boot mailing list > U-Boot@lists.denx.de > https://lists.denx.de/listinfo/u-boot
On Thu, Jan 17, 2019 at 08:54:48AM +0100, Simon Goldschmidt wrote: > On Thu, Jan 17, 2019 at 8:10 AM <tien.fong.chee@intel.com> wrote: > > > > From: Tien Fong Chee <tien.fong.chee@intel.com> > > > > Most of the time SPL only needs very simple FAT reading, so having > > CONFIG_SPL_FAT_WRITE to exclude or undefined would help to save 64KiB > > default max clustersize from memory. > > > > Signed-off-by: Tien Fong Chee <tien.fong.chee@intel.com> > > --- > > common/spl/Kconfig | 7 +++++++ > > fs/fat/Makefile | 7 ++++++- > > fs/fat/fat.c | 4 +++- > > fs/fs.c | 3 ++- > > 4 files changed, 18 insertions(+), 3 deletions(-) > > > > diff --git a/common/spl/Kconfig b/common/spl/Kconfig > > index 0ddbffc..dad4c11 100644 > > --- a/common/spl/Kconfig > > +++ b/common/spl/Kconfig > > @@ -403,6 +403,13 @@ config SPL_FAT_SUPPORT > > filesystem from within SPL. Support for the underlying block > > device (e.g. MMC or USB) must be enabled separately. > > > > +config SPL_FAT_WRITE > > + bool "Support write for FAT filesystems" > > + help > > + Enable write support for FAT and VFAT filesystems with SPL. > > + Support for the underlying block device (e.g. MMC or USB) must be > > + enabled separately. > > + > > config SPL_FPGA_SUPPORT > > bool "Support FPGAs" > > help > > diff --git a/fs/fat/Makefile b/fs/fat/Makefile > > index e64b61a..654b8c3 100644 > > --- a/fs/fat/Makefile > > +++ b/fs/fat/Makefile > > @@ -1,5 +1,10 @@ > > # SPDX-License-Identifier: GPL-2.0+ > > # > > > > +ifdef CONFIG_SPL_BUILD > > obj-$(CONFIG_FS_FAT) := fat.o > > -obj-$(CONFIG_FAT_WRITE):= fat_write.o > > +obj-$(CONFIG_SPL_FAT_WRITE) = fat_write.o > > +else > > +obj-$(CONFIG_FS_FAT) := fat.o > > +obj-$(CONFIG_FAT_WRITE) = fat_write.o Like the ext4 one, we need a patch to rename SPL_FAT_SUPPORT to SPL_FS_FAT and then: obj-$(CONFIG_$(SPL_)FS_FAT) += fat.o obj-$(CONFIG_$(SPL_)FAT_WRITE) += fat_write.o > > +endif > > diff --git a/fs/fat/fat.c b/fs/fat/fat.c > > index ac8913e..8803fb4 100644 > > --- a/fs/fat/fat.c > > +++ b/fs/fat/fat.c > > @@ -145,7 +145,9 @@ static void get_name(dir_entry *dirent, char *s_name) > > } > > > > static int flush_dirty_fat_buffer(fsdata *mydata); > > -#if !defined(CONFIG_FAT_WRITE) > > + > > +#if (!defined(CONFIG_SPL_BUILD) && !defined(CONFIG_FAT_WRITE)) || \ > > + (defined(CONFIG_SPL_BUILD) && !defined(CONFIG_SPL_FAT_WRITE)) > > What about 'CONFIG_IS_ENABLED(FAT_WRITE)' ? Yes, CONFIG_IS_ENABLED(FAT_WRITE) please.
On Thu, 2019-01-17 at 07:25 -0500, Tom Rini wrote: > On Thu, Jan 17, 2019 at 08:54:48AM +0100, Simon Goldschmidt wrote: > > > > On Thu, Jan 17, 2019 at 8:10 AM <tien.fong.chee@intel.com> wrote: > > > > > > > > > From: Tien Fong Chee <tien.fong.chee@intel.com> > > > > > > Most of the time SPL only needs very simple FAT reading, so > > > having > > > CONFIG_SPL_FAT_WRITE to exclude or undefined would help to save > > > 64KiB > > > default max clustersize from memory. > > > > > > Signed-off-by: Tien Fong Chee <tien.fong.chee@intel.com> > > > --- > > > common/spl/Kconfig | 7 +++++++ > > > fs/fat/Makefile | 7 ++++++- > > > fs/fat/fat.c | 4 +++- > > > fs/fs.c | 3 ++- > > > 4 files changed, 18 insertions(+), 3 deletions(-) > > > > > > diff --git a/common/spl/Kconfig b/common/spl/Kconfig > > > index 0ddbffc..dad4c11 100644 > > > --- a/common/spl/Kconfig > > > +++ b/common/spl/Kconfig > > > @@ -403,6 +403,13 @@ config SPL_FAT_SUPPORT > > > filesystem from within SPL. Support for the underlying > > > block > > > device (e.g. MMC or USB) must be enabled separately. > > > > > > +config SPL_FAT_WRITE > > > + bool "Support write for FAT filesystems" > > > + help > > > + Enable write support for FAT and VFAT filesystems with > > > SPL. > > > + Support for the underlying block device (e.g. MMC or > > > USB) must be > > > + enabled separately. > > > + > > > config SPL_FPGA_SUPPORT > > > bool "Support FPGAs" > > > help > > > diff --git a/fs/fat/Makefile b/fs/fat/Makefile > > > index e64b61a..654b8c3 100644 > > > --- a/fs/fat/Makefile > > > +++ b/fs/fat/Makefile > > > @@ -1,5 +1,10 @@ > > > # SPDX-License-Identifier: GPL-2.0+ > > > # > > > > > > +ifdef CONFIG_SPL_BUILD > > > obj-$(CONFIG_FS_FAT) := fat.o > > > -obj-$(CONFIG_FAT_WRITE):= fat_write.o > > > +obj-$(CONFIG_SPL_FAT_WRITE) = fat_write.o > > > +else > > > +obj-$(CONFIG_FS_FAT) := fat.o > > > +obj-$(CONFIG_FAT_WRITE) = fat_write.o > Like the ext4 one, we need a patch to rename SPL_FAT_SUPPORT to > SPL_FS_FAT and then: > > obj-$(CONFIG_$(SPL_)FS_FAT) += fat.o > obj-$(CONFIG_$(SPL_)FAT_WRITE) += fat_write.o Okay. > > > > > > > > > +endif > > > diff --git a/fs/fat/fat.c b/fs/fat/fat.c > > > index ac8913e..8803fb4 100644 > > > --- a/fs/fat/fat.c > > > +++ b/fs/fat/fat.c > > > @@ -145,7 +145,9 @@ static void get_name(dir_entry *dirent, char > > > *s_name) > > > } > > > > > > static int flush_dirty_fat_buffer(fsdata *mydata); > > > -#if !defined(CONFIG_FAT_WRITE) > > > + > > > +#if (!defined(CONFIG_SPL_BUILD) && !defined(CONFIG_FAT_WRITE)) > > > || \ > > > + (defined(CONFIG_SPL_BUILD) && > > > !defined(CONFIG_SPL_FAT_WRITE)) > > What about 'CONFIG_IS_ENABLED(FAT_WRITE)' ? > Yes, CONFIG_IS_ENABLED(FAT_WRITE) please. Okay. >
diff --git a/common/spl/Kconfig b/common/spl/Kconfig index 0ddbffc..dad4c11 100644 --- a/common/spl/Kconfig +++ b/common/spl/Kconfig @@ -403,6 +403,13 @@ config SPL_FAT_SUPPORT filesystem from within SPL. Support for the underlying block device (e.g. MMC or USB) must be enabled separately. +config SPL_FAT_WRITE + bool "Support write for FAT filesystems" + help + Enable write support for FAT and VFAT filesystems with SPL. + Support for the underlying block device (e.g. MMC or USB) must be + enabled separately. + config SPL_FPGA_SUPPORT bool "Support FPGAs" help diff --git a/fs/fat/Makefile b/fs/fat/Makefile index e64b61a..654b8c3 100644 --- a/fs/fat/Makefile +++ b/fs/fat/Makefile @@ -1,5 +1,10 @@ # SPDX-License-Identifier: GPL-2.0+ # +ifdef CONFIG_SPL_BUILD obj-$(CONFIG_FS_FAT) := fat.o -obj-$(CONFIG_FAT_WRITE):= fat_write.o +obj-$(CONFIG_SPL_FAT_WRITE) = fat_write.o +else +obj-$(CONFIG_FS_FAT) := fat.o +obj-$(CONFIG_FAT_WRITE) = fat_write.o +endif diff --git a/fs/fat/fat.c b/fs/fat/fat.c index ac8913e..8803fb4 100644 --- a/fs/fat/fat.c +++ b/fs/fat/fat.c @@ -145,7 +145,9 @@ static void get_name(dir_entry *dirent, char *s_name) } static int flush_dirty_fat_buffer(fsdata *mydata); -#if !defined(CONFIG_FAT_WRITE) + +#if (!defined(CONFIG_SPL_BUILD) && !defined(CONFIG_FAT_WRITE)) || \ + (defined(CONFIG_SPL_BUILD) && !defined(CONFIG_SPL_FAT_WRITE)) /* Stub for read only operation */ int flush_dirty_fat_buffer(fsdata *mydata) { diff --git a/fs/fs.c b/fs/fs.c index cb26517..0b8088b 100644 --- a/fs/fs.c +++ b/fs/fs.c @@ -168,7 +168,8 @@ static struct fstype_info fstypes[] = { .exists = fat_exists, .size = fat_size, .read = fat_read_file, -#ifdef CONFIG_FAT_WRITE +#if (!defined(CONFIG_SPL_BUILD) && defined(CONFIG_FAT_WRITE)) || \ + (defined(CONFIG_SPL_BUILD) && defined(CONFIG_SPL_FAT_WRITE)) .write = file_fat_write, .unlink = fat_unlink, .mkdir = fat_mkdir,