A new series just landed, focussed on making one part of U-Boot’s new graphical menus (Expo) considerably better with non-popup menus.
A long-standing and annoying limitation in expo is that couldn’t really type into text fields (like for passwords) if the menu wasn’t a pop-up (i.e. as used by the ‘cedit’ configuration editor). Now, with this work, you can actually use your keyboard!
The Highlights
1. The Series Enables Input! ⌨️
- When a text box is highlighted, key presses are correctly routed to the textline object. This is important for things like password or configuration fields embedded in a menu.
- No More Ghost Text: The series fixes a bug where the displayed text wouldn’t update visually because the text object was pointing at a static empty string instead of the textline’s live buffer. That’s squashed now—what gets typed is what shows up!
2. A Crazy Key Conflict is Resolved 🤯
- It turns out, pressing Up Arrow and hitting the Backspace/Delete Character shortcut (Ctrl-B) were sending the exact same signal to U-Boot. Messy!
- The Fix: This series moves the menu navigation keys to a different number range (
0x100). Now, the system knows the difference between “move up” and “delete a character,” so everything works as it should!
3. Debugging is Easier Now (For the Devs) 🔍
- No More Silent-Mode Hassle: The series adds a new test flag (
UTF_NO_SILENT) for tests that need the console to be active. This is vital for text-entry tests, as console rendering must be on for the textline state to update correctly. - Better Names: The series makes the names of all the menu objects clearer (e.g.,
item0.labelinstead of a genericlabel). This hierarchical naming significantly simplifies tracing objects during debugging, particularly when dumping the expo. - More Docs: New documentation covers how to write tests and debug the Expo system, including which command-line flags to use for watching the video frames in Sandbox.
- Hex Dumping: The series fixes a typo to enable the
cedit dumpcommand and switches its output to the standard U-Boot hexadecimal format.
Bottom line: The series makes Expo more flexible, ensures textlines work everywhere, and improves the code base for easier debugging and maintenance.


