From: Simon Glass <s...@chromium.org>

The command should not be used to enable library functionality. Add a
new BOOTEFI_BOOTMGR Kconfig for that. Adjust the conditions so that the
same code is built.

Signed-off-by: Simon Glass <s...@chromium.org>
Suggested-by: AKASHI Takahiro <takahiro.aka...@linaro.org>
---
Cc: Heinrich Schuchardt <heinrich.schucha...@canonical.com>
Cc: Ilias Apalodimas <ilias.apalodi...@linaro.org>
Cc: AKASHI Takahiro <takahiro.aka...@linaro.org>

Changes in v5:
None, because AKASHI Takahiro has taken up the work of a further
refactor. In response to v4 Heinrich wanted to just use BOOTEFI_BOOTMGR
and drop the CMD portion entirely. While I understand conceptually the
request, it would then make this code very different from all other
subcommands, even when they depend on CONFIG symbols for additional
functionality. If there's a strong objection to taking this patch, and
then further reworking things with AKASHI Takahiro's series being on top
of this series, an alternative would be moving the final portion where
CMDLINE=n is allowed and tested out of this series and in to a further
series that depends on both. They would all be applied in short order.

Changes in v4:
- Integrate AKASHI Takahiro's feedback from v3
- Reword the help text on CMD_BOOTEFI_BOOTMGR slightly
---
 cmd/Kconfig             | 11 ++++++++++-
 lib/efi_loader/Kconfig  |  6 +++---
 lib/efi_loader/Makefile |  2 +-
 3 files changed, 14 insertions(+), 5 deletions(-)

diff --git a/cmd/Kconfig b/cmd/Kconfig
index f8b34ca504b2..bfe363710c79 100644
--- a/cmd/Kconfig
+++ b/cmd/Kconfig
@@ -379,6 +379,15 @@ config CMD_BOOTEFI
        help
          Boot an EFI image from memory.
 
+config CMD_BOOTEFI_BOOTMGR
+       bool "UEFI Boot Manager command"
+       depends on BOOTEFI_BOOTMGR && CMD_BOOTEFI
+       default y
+       help
+         Select this option to enable the 'bootmgr' subcommand of 'bootefi'.
+         This subcommand will allow you to select the UEFI binary to be booted
+         via UEFI variables Boot####, BootOrder, and BootNext.
+
 config CMD_BOOTEFI_HELLO_COMPILE
        bool "Compile a standard EFI hello world binary for testing"
        depends on CMD_BOOTEFI && !CPU_V7M
@@ -2118,7 +2127,7 @@ config CMD_EFIDEBUG
 config CMD_EFICONFIG
        bool "eficonfig - provide menu-driven uefi variables maintenance 
interface"
        default y if !HAS_BOARD_SIZE_LIMIT
-       depends on CMD_BOOTEFI_BOOTMGR
+       depends on BOOTEFI_BOOTMGR
        select MENU
        help
          Enable the 'eficonfig' command which provides the menu-driven UEFI
diff --git a/lib/efi_loader/Kconfig b/lib/efi_loader/Kconfig
index d20aaab6dba4..13cad6342c36 100644
--- a/lib/efi_loader/Kconfig
+++ b/lib/efi_loader/Kconfig
@@ -32,14 +32,14 @@ config EFI_LOADER
 
 if EFI_LOADER
 
-config CMD_BOOTEFI_BOOTMGR
+config BOOTEFI_BOOTMGR
        bool "UEFI Boot Manager"
        default y
        select BOOTMETH_GLOBAL if BOOTSTD
        help
          Select this option if you want to select the UEFI binary to be booted
-         via UEFI variables Boot####, BootOrder, and BootNext. This enables the
-         'bootefi bootmgr' command.
+         via UEFI variables Boot####, BootOrder, and BootNext. You should also
+         normally enable CMD_BOOTEFI_BOOTMGR so that the command is available.
 
 choice
        prompt "Store for non-volatile UEFI variables"
diff --git a/lib/efi_loader/Makefile b/lib/efi_loader/Makefile
index 8d31fc61c601..0a2cb6e3c476 100644
--- a/lib/efi_loader/Makefile
+++ b/lib/efi_loader/Makefile
@@ -42,7 +42,7 @@ targets += initrddump.o
 endif
 
 obj-$(CONFIG_CMD_BOOTEFI_HELLO) += helloworld_efi.o
-obj-$(CONFIG_CMD_BOOTEFI_BOOTMGR) += efi_bootmgr.o
+obj-$(CONFIG_BOOTEFI_BOOTMGR) += efi_bootmgr.o
 obj-y += efi_boottime.o
 obj-y += efi_helper.o
 obj-$(CONFIG_EFI_HAVE_CAPSULE_SUPPORT) += efi_capsule.o
-- 
2.34.1

Reply via email to