Hi Petr, On Sat, 10 Oct 2026 at 23:32, Petr Hodina via B4 Relay <[email protected]> wrote: > > Add a boot menu for devices with a framebuffer where the only inputs are > the volume and power buttons. The menu is SoC independent and SoC specific > parts hook in through weak functions. Qualcomm implementation is provided > in the patch set. > > 1. Add helpers for several commands. dfu_pwr is needed because > the stock dfu loop only exits on Ctrl-C which a phone doesn't have. > > 2. The core for the menu which reuses bootmenu_loop() for navigation > so any board that maps its buttons to keys (BUTTON_REMAP_PHONE_KEYS) > works unchanged. > > 3. Phones often have no usable display during bring-up, or are driven > from a host so the same menu is also drawn with ANSI escapes. > > 4. Not specific to the menu: Qualcomm keeps A/B state in the GPT > attribute flags, not in "misc", so ab_select_slot() is wrong there. > > 5. Generic header info for the slot lookup which is a weak hook and > the block device comes from the "storage" env var. > > 6. The Snapdragon override of that hook kept out of the generic file. > > 7. Shows why the device booted (e.g. recovery, fastboot). Reads the BCB > from the "storage" device. > > 8. PMIC reister layout QPNP-PON specific for PM660 to decode the boot reason. > > 9. The USB ACM stdio device can be listed before it has been started > and puts() then dereferences NULL private data. > > 10. The weak default picks "mmc" from Kconfig, so on UFS boards > "fastboot reboot bootloader" could never write the BCB. > > 11. Usage documentation for the commands above. > > Here's the URL with image of the menu on blueline, sargo and enchilada: > https://download.ixit.cz/u-boot.png > > Signed-off-by: Petr Hodina <[email protected]> > --- > Petr Hodina (11): > cmd: phone_util: add poweroff, dfu_pwr and USB Ethernet commands > cmd: phonemenu: pixel drawn boot menu rendering and navigation > cmd: phonemenu: mirror the menu to byte-stream consoles > boot: android_ab: read the A/B slot from the GPT on Snapdragon > cmd: phonemenu: show active A/B slot in the header > cmd: phonemenu: read the A/B slot on Snapdragon without "misc" > cmd: phonemenu: show Android boot reason in the header > cmd: phonemenu: show PMIC PON status in the header > usb: gadget: f_acm: check the acm_stdio_puts() against an unstarted > device > cmd: phone_util: fix "Cannot set reboot flag" on fastboot reboot > doc: usage: add phonemenu command documentation > > MAINTAINERS | 5 + > boot/android_ab.c | 42 ++++ > cmd/Kconfig | 11 + > cmd/Makefile | 1 + > cmd/phone_util.c | 148 ++++++++++++ > cmd/phonemenu.c | 550 > ++++++++++++++++++++++++++++++++++++++++++++ > cmd/phonemenu_qcom.c | 112 +++++++++ > doc/usage/cmd/phonemenu.rst | 92 ++++++++ > drivers/usb/gadget/f_acm.c | 3 + > include/phonemenu.h | 17 ++ > 10 files changed, 981 insertions(+)
We have expo - rather than duplicating the video output, etc. could we use that? https://docs.u-boot-project.org/en/latest/develop/expo.html There is also a boot menu which uses it. > --- > base-commit: ece349ade2973e220f524ce59e59711cc919263f > change-id: 20261010-b4-phonemenu-series-15f574867344 > > Best regards, > -- > Petr Hodina <[email protected]> > > Regards, Simon
