[Concept,00/18] expo: Extend the boot menu

Message ID 20251010034255.1099728-1-sjg@u-boot.org
Headers
Series expo: Extend the boot menu |

Message

Simon Glass Oct. 10, 2025, 3:42 a.m. UTC
  From: Simon Glass <sjg@chromium.org>

The current boot menu works but it is still fairly basic. This series
makes various improvements:

- adds buttons for settings, help
- adds a way to show other items for each OS (e.g. distro version-name)
- adds a second logo
- allows a box to be drawn around each item

This series also provides a way to dump the expo as a text file, so that
it can be examined or compared with another one. This is useful for
debugging. A 'cedit dump' command allows dumping the information.

A few fixes are included as well:

- for mouse operation, avoid dropping click events
- for keyboard, fix support for escape sequences


Simon Glass (18):
  test: video: Fix 16bpp BMP pixel format conversion
  test: Add a way to printf() into a membuf
  input: Correct handling of mouse clicks
  expo: Correct key-polling timeout
  expo: Provide user-friendly output of scene enums
  expo: Provide a way to dump an expo
  expo: Provide a command to dump a cedit expo
  expo: Provide a version of scene_within() with takes an obj
  expo: Export scene_find_obj_within() and add a test
  expo: Allow searching click positions from top to bottom
  expo: Allow searching for any object type by position
  expo: Support clicking on any type of object
  expo: Add another logo in the bootmenu
  expo: Add a way to select settings
  expo: Add a help button
  expo: Add a way to display the distro version-name
  expo: Add a box around each item
  expo: Add an image that indicates verification

 MAINTAINERS                  |   3 +
 boot/Kconfig                 |   9 ++
 boot/Makefile                |   1 +
 boot/bootflow_internal.h     |  24 +++-
 boot/bootflow_menu.c         |   3 +
 boot/cedit.c                 |   4 +
 boot/expo.c                  |   8 +-
 boot/expo_dump.c             | 271 +++++++++++++++++++++++++++++++++++
 boot/scene.c                 | 131 +++++++++++++----
 boot/scene_internal.h        |  30 ++++
 boot/scene_menu.c            |   3 +
 cmd/Kconfig                  |   9 ++
 cmd/cedit.c                  |  38 +++++
 doc/usage/cmd/cedit.rst      | 141 ++++++++++++++++++
 drivers/input/mouse-uclass.c |   7 +-
 include/bootflow.h           |   3 +-
 include/expo.h               |  22 +++
 include/membuf.h             |  13 ++
 lib/membuf.c                 |  14 ++
 test/boot/expo.c             | 192 +++++++++++++++++++++++--
 test/dm/video.c              |  21 ++-
 test/lib/membuf.c            |  40 ++++++
 22 files changed, 932 insertions(+), 55 deletions(-)
 create mode 100644 boot/expo_dump.c