G'day Caleb, On Mon Mar 31, 2025 at 2:23 PM CEST, Caleb Connolly wrote: > Phones don't have keyboards! Introduce a phone-specific config fragment > and associated environment file to make U-Boot more useful on these > devices. This allows for navigating via the buttons and enabling > various USB gadget modes or displaying info about U-Boot. > > Reviewed-by: Simon Glass <s...@chromium.org> > Tested-by: Danila Tikhonov <dan...@jiaxyga.com> # google-sunfish > Tested-by: Jens Reidel <adr...@mainlining.org> # xiaomi-davinci > Signed-off-by: Caleb Connolly <caleb.conno...@linaro.org> > --- > board/qualcomm/qcom-phone.config | 29 +++++++++++++++++++++++++ > board/qualcomm/qcom-phone.env | 47 > ++++++++++++++++++++++++++++++++++++++++ > 2 files changed, 76 insertions(+) > > diff --git a/board/qualcomm/qcom-phone.config > b/board/qualcomm/qcom-phone.config > new file mode 100644 > index > 0000000000000000000000000000000000000000..913c91757c1d77b79b5997597917f9ac002049fb > --- /dev/null > +++ b/board/qualcomm/qcom-phone.config > @@ -0,0 +1,29 @@ > +# Settings for phones > +CONFIG_DEFAULT_ENV_FILE="board/qualcomm/qcom-phone.env" > +# Hang on panic so the error message can be read > +CONFIG_PANIC_HANG=y > +# We use pause in various places to allow text to be read > +# before it scrolls off the screen > +CONFIG_CMD_PAUSE=y > +CONFIG_BOOT_RETRY=y > +CONFIG_BOOT_RETRY_TIME=1 > +CONFIG_BUTTON_REMAP_PHONE_KEYS=y > +CONFIG_RETRY_BOOTCMD=y > +CONFIG_FASTBOOT_BUF_ADDR=0x1A000000 > +CONFIG_USB_FUNCTION_FASTBOOT=y > +CONFIG_USB_FUNCTION_ACM=y > +CONFIG_CMD_UMS_ABORT_KEYED=y > + > +# Record all console output and let it be dumped via fastboot > +CONFIG_CONSOLE_RECORD=y > +CONFIG_CONSOLE_RECORD_INIT_F=y > +CONFIG_CONSOLE_RECORD_OUT_SIZE=0x6000 > +CONFIG_FASTBOOT_CMD_OEM_CONSOLE=y > + > +# Only MMC is supported by fastboot currently, but this is still useful. > +CONFIG_FASTBOOT_FLASH=y > +CONFIG_FASTBOOT_FLASH_MMC_DEV=0 > +CONFIG_FASTBOOT_OEM_RUN=y > + > +# Many phones don't actually define a serial port in their DTS > +# CONFIG_REQUIRE_SERIAL_CONSOLE is not set > diff --git a/board/qualcomm/qcom-phone.env b/board/qualcomm/qcom-phone.env > new file mode 100644 > index > 0000000000000000000000000000000000000000..6750b6daaed8695faa2fbe1546c1582713f7d56f > --- /dev/null > +++ b/board/qualcomm/qcom-phone.env > @@ -0,0 +1,47 @@ > +bootdelay=0 > +bootretry=1 > +stdin=serial,button-kbd > +stdout=serial,vidconsole > +stderr=serial,vidconsole > + > +# Fastboot is keen to use the address from kconfig, but we > +# allocate its buffer at runtime. > +fastboot=fastboot -l $fastboot_addr_r usb 0 > + > +# Always probe for UFS storage, though it should be done by board code. > +preboot=scsi scan > + > +# Shortcut to enable USB serial gadget and disable bootretry > +serial_gadget=setenv stdin serial,button-kbd,usbacm; \ > + setenv stdout serial,vidconsole,usbacm; \ > + setenv stderr serial,vidconsole,usbacm; \ > + setenv bootretry -1; \ > + echo Enabled U-Boot console serial gadget > + > +# bootretry will run this command over and over, if we fail once > +# then bail out to the boot menu instead (with a pause to read > +# the error message) > +bootcmd=bootefi bootmgr; pause; run menucmd > + > +# When entering the menu (either from button press or failed boot) > +# remap bootcmd so it will re-open the menu and we won't get stuck > +# at the console with no way to type > +menucmd=setenv bootcmd run menucmd; bootmenu -1 > + > +# Pause is used so the output can be read on the display > +bootmenu_0=Boot=bootefi bootmgr; pause > +bootmenu_1=Enable serial console gadget=run serial_gadget > +bootmenu_2=Enable USB mass storage=echo "Press any key to exit UMS mode"; > ums 0 scsi 0 > +bootmenu_3=Enable fastboot mode=run fastboot > +# Disabling bootretry means we'll just drop the shell > +bootmenu_4=Drop to shell=setenv bootretry -1 > +bootmenu_5=Reset device=reset > +bootmenu_6=Dump clocks=clk dump; pause > +bootmenu_7=Dump environment=printenv; pause > +bootmenu_8=Board info=bdinfo; pause > +bootmenu_9=Dump bootargs=fdt print /chosen bootargs; pause > + > +# Allow holding the power button while U-Boot loads to enter
Comment should mention vol-down rather than pwrkey. I also noticed that the cover letter still mentions the vol-down serial gadget path which is dropped now. Cheers, -Sam > +# the boot menu > +button_cmd_0_name=Volume Down > +button_cmd_0=run menucmd