[Concept,00/24] bootctl: Expand bootctl to include a new UI

Message ID 20251018084117.1798704-1-sjg@u-boot.org
Headers
Series bootctl: Expand bootctl to include a new UI |

Message

Simon Glass Oct. 18, 2025, 8:40 a.m. UTC
  From: Simon Glass <sjg@chromium.org>

The current bootctl UI is fairly basic, just supporting a keyboard menu
with text.

Now that expo supports a mouse, add a more interesting UI, with more
graphical elements. Provide a way to switch between this and the simple
UI.

This series also includes some small test improvements, along with a
patch to remove a blob from a bloblist.


Simon Glass (24):
  test/py: Make test_bind_unbind_with_uclass() independent
  test/py: Mark a few more tests as slow
  bloblist: Add a name for the EFI log
  bloblist: Provide a way to remove a blob
  tpm: Correct address handling in tcg2_platform_get_log()
  scripts: build-efi: Use a locally built OVMF image
  boot: test: Add another Ubuntu image on mmc11
  boot: Allow switching back to another layout
  test: Correct an incomplete sentence in prep_mmc_bootdev()
  sandbox: Enable Ubuntu fonts
  bootctl: Plumb in the feature
  bootctl: Create a common struct for the BOOTCTL_UI uclass
  bootctl: Avoid hanging on failure
  bootctl: Provide an option to slow the display refresh
  bootctl: Respect the autoboot option
  bootctl: Re-apply the theme when showing the UI
  bootctl: Bring in some additional images
  bootctl: Add an option to switch the layout
  bootctl: Provide a multi-themed UI
  bootctl: Disable autoboot
  bootctl: Add a test for the multi UI
  efi: x86: Provide settings for bootctl
  efi: x86: Enable required Kconfig options for bootctl
  efi: x86: Use only serial for input

 .gitignore                            |   2 +
 arch/sandbox/dts/test.dts             |   9 +
 arch/x86/dts/efi-x86_app.dts          |  14 +
 board/efi/efi-x86_app/efi-x86_app.env |   1 +
 boot/Kconfig                          |   4 +-
 boot/Makefile                         |   2 +
 boot/bootctl/Makefile                 |   1 +
 boot/bootctl/bootctl-uclass.c         |   2 +
 boot/bootctl/bootctl.c                |   3 +-
 boot/bootctl/logic.c                  |   3 +-
 boot/bootctl/multi_ui.c               | 588 ++++++++++++++++++++++++++
 boot/bootctl/simple_ui.c              | 111 ++---
 boot/bootctl/util.c                   |  15 +
 boot/bootflow_menu.c                  |   2 +
 cmd/Makefile                          |   1 +
 common/bloblist.c                     |  33 ++
 configs/efi-x86_app64_defconfig       |  11 +-
 configs/sandbox_defconfig             |   2 +
 drivers/video/images/Makefile         |   5 +
 drivers/video/images/canonical.bmp    | Bin 0 -> 14258 bytes
 drivers/video/images/help.bmp         | Bin 0 -> 1782 bytes
 drivers/video/images/multipass.bmp    | Bin 0 -> 4378 bytes
 drivers/video/images/settings.bmp     | Bin 0 -> 1782 bytes
 drivers/video/images/tick.bmp         | Bin 0 -> 822 bytes
 include/bloblist.h                    |  12 +
 include/bootctl.dtsi                  |  11 +-
 include/bootctl/logic.h               |   2 +
 include/bootctl/ui.h                  |  43 ++
 include/tpm_tcg2.h                    |   4 +-
 lib/tpm_tcg2.c                        |  21 +-
 scripts/build-efi                     |   2 +-
 test/boot/bootctl/bootctl.c           | 181 +++++++-
 test/boot/bootflow.c                  |   2 +-
 test/cmd/font.c                       |   5 +
 test/common/bloblist.c                |  64 +++
 test/dm/video.c                       |   7 +-
 test/py/tests/test_bind.py            |   5 +
 test/py/tests/test_fit_auto_signed.py |   1 +
 test/py/tests/test_make_dep.py        |   3 +
 test/py/tests/test_ut.py              |   3 +-
 40 files changed, 1084 insertions(+), 91 deletions(-)
 create mode 100644 boot/bootctl/multi_ui.c
 create mode 100644 drivers/video/images/canonical.bmp
 create mode 100644 drivers/video/images/help.bmp
 create mode 100644 drivers/video/images/multipass.bmp
 create mode 100644 drivers/video/images/settings.bmp
 create mode 100644 drivers/video/images/tick.bmp