diff --git a/cmd/Kconfig b/cmd/Kconfig index faa8bc62b5495b7e978ddf2fcf5cbcffd68aa916..35fe9d50016b0c54226fbf4acf9b21e41427a39a 100644 --- a/cmd/Kconfig +++ b/cmd/Kconfig @@ -1367,17 +1367,20 @@ config CMD_CRAMFS config CMD_EXT2 bool "ext2 command support" + select FS_EXT4 help Enables EXT2 FS command config CMD_EXT4 bool "ext4 command support" + select FS_EXT4 help Enables EXT4 FS command config CMD_EXT4_WRITE depends on CMD_EXT4 bool "ext4 write command support" + select EXT4_WRITE help Enables EXT4 FS write command diff --git a/configs/ds109_defconfig b/configs/ds109_defconfig index 6d513cf584ad282926bd8706a6d7a434dc8cbd46..428ac8ce6485658de7c3af8074ac9662a97bd51a 100644 --- a/configs/ds109_defconfig +++ b/configs/ds109_defconfig @@ -22,3 +22,4 @@ CONFIG_SPI_FLASH_STMICRO=y CONFIG_SYS_NS16550=y CONFIG_USB=y CONFIG_USB_EHCI_HCD=y +CONFIG_FS_EXT4=y diff --git a/configs/mx25pdk_defconfig b/configs/mx25pdk_defconfig index 2905614c286a929cacd34f784e4b4a390fd782eb..563c7acd60087a37df0d19a454cd1a534a324843 100644 --- a/configs/mx25pdk_defconfig +++ b/configs/mx25pdk_defconfig @@ -17,5 +17,6 @@ CONFIG_CMD_DATE=y CONFIG_CMD_FS_GENERIC=y CONFIG_DOS_PARTITION=y CONFIG_ENV_IS_IN_MMC=y +CONFIG_FS_EXT4=y CONFIG_FS_FAT=y CONFIG_OF_LIBFDT=y diff --git a/doc/README.ext4 b/doc/README.ext4 index 2b0eab5ddec3170800cf0e34f3b34f568a3d6df3..8ecd21eee3bc951508bfbec35807592dc9796fe8 100644 --- a/doc/README.ext4 +++ b/doc/README.ext4 @@ -2,10 +2,10 @@ U-Boot supports access of both ext2 and ext4 filesystems, either in read-only mode or in read-write mode. First, to enable support for both ext4 (and, automatically, ext2 as well), -but without selecting the corresponding commands, use one of: +but without selecting the corresponding commands, enable one of the following: - #define CONFIG_FS_EXT4 (for read-only) - #define CONFIG_EXT4_WRITE (for read-write) + CONFIG_FS_EXT4 (for read-only) + CONFIG_EXT4_WRITE (for read-write) Next, to select the ext2-related commands: @@ -20,22 +20,22 @@ or ext4-related commands: use one or both of: - #define CONFIG_CMD_EXT2 - #define CONFIG_CMD_EXT4 + CONFIG_CMD_EXT2 + CONFIG_CMD_EXT4 -Selecting either of the above automatically defines CONFIG_FS_EXT4 if it -wasn't defined already. +Selecting either of the above automatically selects CONFIG_FS_EXT4 if it +wasn't enabled already. -In addition, to get the write access command "ext4write", use: +In addition, to get the write access command "ext4write", enable: - #define CONFIG_CMD_EXT4_WRITE + CONFIG_CMD_EXT4_WRITE -which automatically defines CONFIG_EXT4_WRITE if it wasn't defined +which automatically selects CONFIG_EXT4_WRITE if it wasn't defined already. Also relevant are the generic filesystem commands, selected by: - #define CONFIG_CMD_FS_GENERIC + CONFIG_CMD_FS_GENERIC This does not automatically enable EXT4 support for you, you still need to do that yourself. diff --git a/fs/ext4/Kconfig b/fs/ext4/Kconfig index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..1a913d2b6d284c5e3bc048e2a235d0adb354850b 100644 --- a/fs/ext4/Kconfig +++ b/fs/ext4/Kconfig @@ -0,0 +1,13 @@ +config FS_EXT4 + bool "Enable ext4 filesystem support" + help + This provides support for reading images from the ext4 filesystem. + ext4 is a widely used general-purpose filesystem for Linux. + You can also enable CMD_EXT4 to get access to ext4 commands. + +config EXT4_WRITE + bool "Enable ext4 filesystem write support" + depends on FS_EXT4 + help + This provides support for creating and writing new files to an + existing ext4 filesystem partition. diff --git a/include/config_fallbacks.h b/include/config_fallbacks.h index 2c4d43d67269ff53f6ee0ce0a42672c2017129b5..527dfc71fa6d446196bba4a2fdd2f1b10c0dbf00 100644 --- a/include/config_fallbacks.h +++ b/include/config_fallbacks.h @@ -33,15 +33,6 @@ #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 - /* Rather than repeat this expression each time, add a define for it */ #if defined(CONFIG_IDE) || \ defined(CONFIG_SATA) || \ diff --git a/include/configs/am335x_shc.h b/include/configs/am335x_shc.h index 32439f5c4741c69f065d6e6a2bff1b3a6df14ce1..e2d329acabffed72e4580e8800c5da1060b2d51c 100644 --- a/include/configs/am335x_shc.h +++ b/include/configs/am335x_shc.h @@ -17,8 +17,6 @@ /* settings we don;t want on this board */ #undef CONFIG_SPL_AM33XX_ENABLE_RTC32K_OSC -#undef CONFIG_CMD_EXT4 -#undef CONFIG_CMD_EXT4_WRITE #undef CONFIG_CMD_SPI #define CONFIG_CMD_CACHE diff --git a/include/configs/brppt1.h b/include/configs/brppt1.h index 1f5733431035342ae7f7ecb6990af6be847dd981..a8022b87d53f14786e0e3d8fa2c0b53563ab742d 100644 --- a/include/configs/brppt1.h +++ b/include/configs/brppt1.h @@ -243,13 +243,5 @@ MMCARGS #else #error "no storage for Environment defined!" #endif -/* - * Common filesystems support. When we have removable storage we - * enabled a number of useful commands and support. - */ -#if defined(CONFIG_MMC) || defined(CONFIG_USB_STORAGE) -#define CONFIG_FS_EXT4 -#define CONFIG_EXT4_WRITE -#endif /* CONFIG_MMC, ... */ #endif /* ! __CONFIG_BRPPT1_H__ */ diff --git a/include/configs/dragonboard820c.h b/include/configs/dragonboard820c.h index 010bc44b33556271681c46035b92105855eb400d..e28a956e92001795e31f0b04cf8f37387f3c2286 100644 --- a/include/configs/dragonboard820c.h +++ b/include/configs/dragonboard820c.h @@ -60,7 +60,6 @@ "pxefile_addr_r=0x90100000\0"\ BOOTENV -#define CONFIG_EXT4_WRITE #define CONFIG_ENV_SIZE 0x4000 #define CONFIG_ENV_VARS_UBOOT_CONFIG diff --git a/include/configs/hikey.h b/include/configs/hikey.h index 7eaa6e4667e580b9c221d804dc7e7cf1e5073643..130c7694bf4abd7d7a4fb209b000a5513ec1f4b8 100644 --- a/include/configs/hikey.h +++ b/include/configs/hikey.h @@ -66,8 +66,6 @@ /* SD/MMC configuration */ #define CONFIG_BOUNCE_BUFFER -#define CONFIG_FS_EXT4 - /* Command line configuration */ #define CONFIG_MTD_PARTITIONS diff --git a/include/configs/mx25pdk.h b/include/configs/mx25pdk.h index 8e8946a6b42b91f2f2375786a6dd0999393df98f..f82c4ccbde6c0fbe7c2593e759db04f8e63dda65 100644 --- a/include/configs/mx25pdk.h +++ b/include/configs/mx25pdk.h @@ -65,11 +65,6 @@ #define CONFIG_CMDLINE_EDITING #define CONFIG_SYS_LONGHELP -/* U-Boot commands */ - -/* Filesystem support */ -#define CONFIG_FS_EXT4 - /* Ethernet */ #define CONFIG_FEC_MXC #define CONFIG_FEC_MXC_PHYADDR 0x1f diff --git a/include/configs/pic32mzdask.h b/include/configs/pic32mzdask.h index 0bb512648a5d6192da4e801328f3757788912bfc..1f93ae9d831cdbadad615ad1c17e7470b1f14e11 100644 --- a/include/configs/pic32mzdask.h +++ b/include/configs/pic32mzdask.h @@ -87,9 +87,6 @@ /* FAT FS */ #define CONFIG_SUPPORT_VFAT -/* EXT4 FS */ -#define CONFIG_FS_EXT4 - /* ------------------------------------------------- * Environment */ diff --git a/include/configs/rcar-gen2-common.h b/include/configs/rcar-gen2-common.h index 2c10e6152d3331842927b0477de2abcf5a194b9d..19c4c4c72b49141c72f0e87b638829b447eb33d8 100644 --- a/include/configs/rcar-gen2-common.h +++ b/include/configs/rcar-gen2-common.h @@ -13,8 +13,6 @@ /* Support File sytems */ #define CONFIG_SUPPORT_VFAT -#define CONFIG_FS_EXT4 -#define CONFIG_EXT4_WRITE #define CONFIG_CMDLINE_TAG #define CONFIG_SETUP_MEMORY_TAGS diff --git a/include/configs/rcar-gen3-common.h b/include/configs/rcar-gen3-common.h index 30a98b8ada3e5804abac2a29805cf63a76ad8f53..7e23b5e054a7cef8e606a387c232fe60e816d30c 100644 --- a/include/configs/rcar-gen3-common.h +++ b/include/configs/rcar-gen3-common.h @@ -19,8 +19,6 @@ /* Support File sytems */ #define CONFIG_SUPPORT_VFAT -#define CONFIG_FS_EXT4 -#define CONFIG_EXT4_WRITE #define CONFIG_CMDLINE_TAG #define CONFIG_SETUP_MEMORY_TAGS diff --git a/include/configs/rk3128_common.h b/include/configs/rk3128_common.h index e915a562b926c1812db56d055a25b03f7fb8a18f..b83528edd1246dab7134e858fa0f062aa91075c7 100644 --- a/include/configs/rk3128_common.h +++ b/include/configs/rk3128_common.h @@ -31,7 +31,6 @@ #define CONFIG_BOUNCE_BUFFER #define CONFIG_SUPPORT_VFAT -#define CONFIG_FS_EXT4 /* RAW SD card / eMMC locations. */ #define CONFIG_SYS_SPI_U_BOOT_OFFS (128 << 10) diff --git a/include/configs/rk3328_common.h b/include/configs/rk3328_common.h index af556323f89a4c1b4ef347ba5ba7edcc7dd1b6b8..8c1a0e9260a9588b4d7eeadbe4923d7a73e514d8 100644 --- a/include/configs/rk3328_common.h +++ b/include/configs/rk3328_common.h @@ -25,7 +25,6 @@ #define CONFIG_BOUNCE_BUFFER #define CONFIG_SUPPORT_VFAT -#define CONFIG_FS_EXT4 /* RAW SD card / eMMC locations. */ #define CONFIG_SYS_SPI_U_BOOT_OFFS (128 << 10) diff --git a/include/configs/rk3399_common.h b/include/configs/rk3399_common.h index 561bfa73b664c26d56ae5b3e8d3ea53f712e6514..21395bab8a840d4b600ef3cc358465afa3e8717c 100644 --- a/include/configs/rk3399_common.h +++ b/include/configs/rk3399_common.h @@ -39,7 +39,6 @@ #define CONFIG_ROCKCHIP_SDHCI_MAX_FREQ 200000000 #define CONFIG_SUPPORT_VFAT -#define CONFIG_FS_EXT4 /* RAW SD card / eMMC locations. */ #define CONFIG_SYS_SPI_U_BOOT_OFFS (128 << 10) diff --git a/include/configs/s5p_goni.h b/include/configs/s5p_goni.h index 1aa1671738ee5cc3acf707824593eabe2ee14777..c31896ddf87a9422daa88c319f1218e67899e982 100644 --- a/include/configs/s5p_goni.h +++ b/include/configs/s5p_goni.h @@ -187,11 +187,6 @@ #define CONFIG_SAMSUNG_ONENAND 1 #define CONFIG_SYS_ONENAND_BASE 0xB0000000 -/* write support for filesystems */ -#define CONFIG_EXT4_WRITE - -/* GPT */ - #define CONFIG_SYS_INIT_SP_ADDR (CONFIG_SYS_LOAD_ADDR - 0x1000000) #define CONFIG_USB_GADGET_DWC2_OTG_PHY diff --git a/include/configs/sandbox.h b/include/configs/sandbox.h index f0426567fdc330b83702ea1d3606a6b177e41dbb..cfb3e7affd845c3232164ce20c516cfc8a86009e 100644 --- a/include/configs/sandbox.h +++ b/include/configs/sandbox.h @@ -25,8 +25,6 @@ #define CONFIG_LMB -#define CONFIG_FS_EXT4 -#define CONFIG_EXT4_WRITE #define CONFIG_HOST_MAX_DEVICES 4 /* diff --git a/include/configs/tegra-common-post.h b/include/configs/tegra-common-post.h index 743be6bb5682f5c6a468c918ba6bb5f6961d4e94..aea8f1fb8e6d4ad7df4c5ecc63cd438d00b9d89a 100644 --- a/include/configs/tegra-common-post.h +++ b/include/configs/tegra-common-post.h @@ -113,11 +113,6 @@ #ifdef CONFIG_CMD_I2C #endif -/* remove partitions/filesystems */ -#ifdef CONFIG_FS_EXT4 -#undef CONFIG_FS_EXT4 -#endif - /* remove USB */ #ifdef CONFIG_USB_EHCI_TEGRA #undef CONFIG_USB_EHCI_TEGRA diff --git a/scripts/config_whitelist.txt b/scripts/config_whitelist.txt index 526383d5bf7067d846b649eb5b49f9925cf79054..6ef9606c5cffdd7f294fb24d92c56a012dde83b0 100644 --- a/scripts/config_whitelist.txt +++ b/scripts/config_whitelist.txt @@ -601,7 +601,6 @@ CONFIG_ETHER_ON_FCC3 CONFIG_ETHPRIME CONFIG_ETH_BUFSIZE CONFIG_ETH_RXSIZE -CONFIG_EXT4_WRITE CONFIG_EXTRA_BOOTARGS CONFIG_EXTRA_CLOCK CONFIG_EXTRA_ENV @@ -751,7 +750,6 @@ CONFIG_FSL_VIA CONFIG_FSMC_NAND_BASE CONFIG_FSMTDBLK CONFIG_FSNOTIFY -CONFIG_FS_EXT4 CONFIG_FS_POSIX_ACL CONFIG_FTAHBC020S CONFIG_FTAHBC020S_BASE