bootstd: Add some default filesystems and commands
We need to support a basic set of filesystems for booting to work in most
cases. Add these in via a new option, letting the board disable them
individually (for space reasons) if desired.
This enables the filesystem commands as well as the actual functionality,
even though bootstd is quite happy to use ext4 without the ext4 command.
Further work would be needed to disintangle this and reduce code size.
Add several other options as well, providing sensible defaults.
We cannot enable this by default, since it expands the size of many
boards quite a lot.
Signed-off-by: Simon Glass <sjg@chromium.org>
diff --git a/boot/Kconfig b/boot/Kconfig
index 98e194f..5f49162 100644
--- a/boot/Kconfig
+++ b/boot/Kconfig
@@ -406,6 +406,33 @@
if BOOTSTD
+config BOOTSTD_DEFAULTS
+ bool "Select some common defaults for standard boot"
+ depends on BOOTSTD
+ imply USE_BOOTCOMMAND
+ # Bring in some defaults which are generally needed. Boards can drop
+ # these as needed to save code space. Bootstd does not generally require
+ # the commands themselves to be enabled, but this is how some of the
+ # functionality is controlled at present
+ imply CMD_EXT2
+ imply CMD_EXT4
+ imply CMD_FAT
+ imply CMD_FS_GENERIC
+ imply CMD_PART
+ imply CMD_DHCP if NET
+ imply CMD_MII if NET
+ imply CMD_PING if NET
+ imply CMD_PXE if NET
+ imply USB_STORAGE
+ imply SUPPORT_RAW_INITRD
+ imply ENV_VARS_UBOOT_CONFIG
+ imply EFI_PARTITION
+ imply ISO_PARTITION
+ help
+ These are not required but are commonly needed to support a good
+ selection of booting methods. Enable this to improve the capability
+ of U-Boot to boot various images.
+
config BOOTSTD_BOOTCOMMAND
bool "Use bootstd to boot"
default y if !DISTRO_DEFAULTS
diff --git a/configs/tools-only_defconfig b/configs/tools-only_defconfig
index 23e1f0e..88a94dd 100644
--- a/configs/tools-only_defconfig
+++ b/configs/tools-only_defconfig
@@ -12,6 +12,7 @@
# CONFIG_BOOTMETH_VBE is not set
CONFIG_USE_BOOTCOMMAND=y
CONFIG_BOOTCOMMAND="run distro_bootcmd"
+# CONFIG_AVB_VERIFY is not set
# CONFIG_CMD_BOOTD is not set
# CONFIG_CMD_BOOTM is not set
# CONFIG_CMD_ELF is not set
diff --git a/doc/develop/bootstd.rst b/doc/develop/bootstd.rst
index 281aabf..dabe987 100644
--- a/doc/develop/bootstd.rst
+++ b/doc/develop/bootstd.rst
@@ -396,6 +396,10 @@
includes the full set of commands, more error messages when things go wrong and
bootmeth ordering with the bootmeths environment variable.
+You should probably also enable `CONFIG_BOOTSTD_DEFAULTS`, which provides
+several filesystem and network features (if `CONFIG_NET` is enabled) so that
+a good selection of boot options is available.
+
Available bootmeth drivers
--------------------------