diff --git a/cmd/Kconfig b/cmd/Kconfig
index 6f75b86e255626ebc7a86052f4e8fe3d76f4300d..270cff6297d96db67e98210ef6e88ae65a394d8c 100644
--- a/cmd/Kconfig
+++ b/cmd/Kconfig
@@ -1166,6 +1166,7 @@ config CMD_EXT4_WRITE
 
 config CMD_FAT
 	bool "FAT command support"
+	select FS_FAT
 	help
 	  Support for the FAT fs
 
diff --git a/common/spl/Kconfig b/common/spl/Kconfig
index eabb2d02ec44be51d19221ebd2ab50a73318ce21..48a0fadb5f9a961ca32095f7adf8604db24d0a4f 100644
--- a/common/spl/Kconfig
+++ b/common/spl/Kconfig
@@ -306,6 +306,7 @@ config SPL_EXT_SUPPORT
 config SPL_FAT_SUPPORT
 	bool "Support FAT filesystems"
 	depends on SPL
+	select FS_FAT
 	help
 	  Enable support for FAT and VFAT filesystems with SPL. This
 	  permits U-Boot (or Linux in Falcon mode) to be loaded from a FAT
diff --git a/fs/fat/Kconfig b/fs/fat/Kconfig
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..e7978aae67d27ac9aed8b66f3e5acee6db39e3db 100644
--- a/fs/fat/Kconfig
+++ b/fs/fat/Kconfig
@@ -0,0 +1,24 @@
+config FS_FAT
+	bool "Enable FAT filesystem support"
+	help
+	  This provides support for reading images from File Allocation Table
+	  (FAT) filesystem. FAT filesystem is a legacy, lightweight filesystem.
+	  It is useful mainly for its wide compatibility with various operating
+	  systems. You can also enable CMD_FAT to get access to fat commands.
+
+config FAT_WRITE
+	bool "Enable FAT filesystem write support"
+	depends on FS_FAT
+	help
+	  This provides support for creating and writing new files to an
+	  existing FAT filesystem partition.
+
+config FS_FAT_MAX_CLUSTSIZE
+	int "Set maximum possible clusersize"
+	default 65536
+	depends on FS_FAT
+	help
+	  Set the maximum possible clustersize for the FAT filesytem. This
+	  is the smallest amount of disk space that can be used to hold a
+	  file. Unless you have an extremely tight memory memory constraints,
+	  leave the default.