Skip to content
  • Caleb Connolly's avatar
    boot: add support for button commands · e761035b
    Caleb Connolly authored and Tom Rini's avatar Tom Rini committed
    
    
    With the relatively new button API in U-Boot, it's now much easier to
    model the common usecase of mapping arbitrary actions to different
    buttons during boot - for example entering fastboot mode, setting some
    additional kernel cmdline arguments, or booting with a custom recovery
    ramdisk, to name a few.
    
    Historically, this functionality has been implemented in board code,
    making it fixed for a given U-Boot binary and requiring the code be
    duplicated and modified for every board.
    
    Implement a generic abstraction to run an arbitrary command during boot
    when a specific button is pressed. The button -> command mapping is
    configured via environment variables with the following format:
    
      button_cmd_N_name=<button label>
      button_cmd_N=<command to run>
    
    Where N is the mapping number starting from 0. For example:
    
      button_cmd_0_name=vol_down
      button_cmd_0=fastboot usb 0
    
    This will cause the device to enter fastboot mode if volume down is held
    during boot.
    
    After we enter the cli loop the button commands are no longer valid,
    this allows the buttons to additionally be used for navigating a boot
    menu.
    
    Tested-by: Svyatoslav Ryhel <clamor95@gmail.com> # Tegra30
    Signed-off-by: default avatarCaleb Connolly <caleb.connolly@linaro.org>
    e761035b