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

Reply via email to