[PATCH 00/40] expo: Add an initial configuration editor
Simon Glass
sjg at chromium.org
Thu Jun 1 18:22:24 CEST 2023
This series provides a means to edit board configuration in U-Boot in a
graphical manner. It supports multiple menu items and allows moving
between them and selecting items. The configuration is defined in a
data format so that code is not needed in most cases. This allows the
board configuration to be provided in the devicetree.
This is still at an early stage, since it only supports menus. Numeric
values are not supported. Most importantly it does not yet support
loading or saving the configuration selected by the user.
To try it out you can use something like:
./tools/expo.py -e test/boot/files/expo_layout.dts \
-l test/boot/files/expo_layout.dts -o cedit.dtb
./u-boot -Tl -c "cedit load hostfs - cedit.dtb; cedit run"
Use the arrow keys to move between menus, enter to open a menu, escape
to exit.
Various minor fixes and improvements are provided in this series:
- Update STB TrueType library to latest
- Support clearing part of the video display
- Support multiple livetrees loaded at runtime
- Support loading and allocating a file
- Support proper measuring of text in expo
- Support simple themes for expo
This series is available at u-boot-dm/cedit-working
Simon Glass (40):
binman: Correct coverage gap in control
expo: Correct some header-file comments
expo: Convert to using a string ID for the scene title
sandbox: Fix quiting when the LCD window is closed
test: Restore test behaviour on failure
gpio: Avoid using an invalid ofnode
dm: core: Avoid registering an inaccessible tree
video: Drop #ifdefs from console_truetype
video: Provide a way to clear part of the console
expo: Store the console in the expo
expo: Avoid automatically arranging the scene
console: Correct truetype spacing error
expo: Rename exp_set_text_mode()
fs: Create functions to load and allocate a file
cat: Update command to use fs_load_alloc()
fdt: Align the start of the livetree
fdt: Clarify the fdt pre-relocation warning
fdt: Allow more general use of livetree
bootstd: Add a separate log category for expo
video: Correct docs for video_index_to_colour()
video: Allow temporary colour changes
console: Allow measuring the bounding box of text
expo: Allow setting the start of the dynamic-ID range
video: Use enum with video_index_to_colour()
expo: Add width and height to objects
expo: Use flags for objects
expo: Calculate text bounding-box correctly
expo: Set up the width and height of objects
expo: Support simple themes
expo: Move menu-item selection into a function
expo: Support drawing of popup menus
expo: Rename EXPOACT_POINT to EXPOACT_POINT_ITEM
expo: Draw popup menus in both opened and closed states
expo: Draw the current opened menu on top
expo: Implement the keypress logic for popup menus
expo: Add spacing around menus and items
expo: Support building an expo from a description file
expo: Add a configuration editor
expo: Add tests for the configuration editor
RFC: video: Update stb_truetype
arch/sandbox/cpu/sdl.c | 3 +-
arch/sandbox/dts/cedit.dtsi | 64 +
arch/sandbox/dts/sandbox.dtsi | 6 +
arch/sandbox/dts/test.dts | 13 +
boot/Kconfig | 14 +
boot/Makefile | 3 +-
boot/bootflow_menu.c | 6 +-
boot/bootmeth-uclass.c | 30 +-
boot/cedit.c | 163 +++
boot/expo.c | 102 +-
boot/expo_build.c | 401 +++++
boot/scene.c | 361 ++++-
boot/scene_internal.h | 84 +-
boot/scene_menu.c | 290 +++-
cmd/Kconfig | 9 +
cmd/Makefile | 1 +
cmd/cat.c | 47 +-
cmd/cedit.c | 93 ++
common/log.c | 1 +
configs/sandbox_defconfig | 1 +
doc/develop/expo.rst | 305 +++-
doc/usage/cmd/cedit.rst | 31 +
doc/usage/index.rst | 1 +
drivers/core/ofnode.c | 27 +-
drivers/gpio/gpio-uclass.c | 2 +-
drivers/video/console_truetype.c | 259 ++--
drivers/video/stb_truetype.h | 2257 ++++++++++++++++++++++++++---
drivers/video/vidconsole-uclass.c | 42 +
drivers/video/video-uclass.c | 54 +-
fs/fs.c | 58 +
include/dm/of.h | 2 +
include/dm/ofnode.h | 10 +
include/expo.h | 209 ++-
include/fs.h | 38 +
include/log.h | 2 +
include/of_live.h | 10 +
include/test/cedit-test.h | 29 +
include/test/ut.h | 36 +-
include/video.h | 22 +-
include/video_console.h | 78 +
lib/of_live.c | 11 +-
test/boot/expo.c | 241 ++-
test/boot/files/expo_layout.dts | 84 ++
test/dm/ofnode.c | 45 +
test/dm/video.c | 6 +-
test/py/tests/test_ut.py | 10 +
tools/binman/control.py | 2 +-
tools/expo.py | 130 ++
48 files changed, 5110 insertions(+), 583 deletions(-)
create mode 100644 arch/sandbox/dts/cedit.dtsi
create mode 100644 boot/cedit.c
create mode 100644 boot/expo_build.c
create mode 100644 cmd/cedit.c
create mode 100644 doc/usage/cmd/cedit.rst
create mode 100644 include/test/cedit-test.h
create mode 100644 test/boot/files/expo_layout.dts
create mode 100755 tools/expo.py
--
2.41.0.rc0.172.g3f132b7071-goog
More information about the U-Boot
mailing list