All of lore.kernel.org
 help / color / mirror / Atom feed
From: Hans de Goede <hdegoede@redhat.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [U-Boot, resend, 1/2] config_distro_bootcmd.h: Allow user to indicate that usb is inited in preboot
Date: Thu, 18 Dec 2014 10:00:17 +0100	[thread overview]
Message-ID: <549297A1.1070202@redhat.com> (raw)
In-Reply-To: <1418406612-3243-2-git-send-email-hdegoede@redhat.com>

On 12/12/2014 Stephen Warren wrote:

 > On 12-12-14 10:50 AM, Hans de Goede wrote:
> > When using usb-keyboard support, typically usb will already get started from
> > preboot. In this case doing it again in the bootcmd is undesirable.
> >
> > Allow the user of config_distro_bootcmd to indicate that usb is inited in
> > preboot through the user setting BOOTENV_PREBOOT_INITS_USB.
>
>Sorry, I don't recall seeing this whenever it was posted before.
 >
 > Conceptually this seems fine. One issue it has is with the following
 > sequence:
 >
 > PREBOOT inits USB, no USB drive found (not plugged in)
 > User CTRL-Cs boot sequence
 > User plugs in USB drive
 > User runs "boot" or "run bootcmd"
 > -> USB not re-detected, so system doesn't boot from USB.
 >
 > Perhaps the best way to solve this is to have a flag controlling whether
 > BOOTENV_SET_USB_NEED_INIT sets $usb_need_init?
 >
 > preboot:
 > setenv usb_do_set_usb_need_init false
 >
 > BOOTENV_SET_USB_NEED_INIT:
 > # Normally unset -> true
 > # In your case, preboot sets this to false
 > if ${usb_do_set_usb_need_init}; then
 >      setenv usb_need_init
 > else
 >      # Next time $boot is run, this will be unset -> true
 >      # so we will re-init USB
 >      setenv usb_do_set_usb_need_init
 >      # This time through, we skip USB init
 >      setenv usb_need_init false
 > endif
 >
 > Of course, that doesn't solve the problem of the user aborting auto-boot
 > before it's ever run once. Perhaps better would be a flag that
 > BOOTENV_SET_USB_NEED_INIT can use to distinguish auto-boot and manual
 > invocation, i.e.:
 >
 > preboot:
 > setenv usb_do_set_usb_need_init false
 >
 > BOOTENV_SET_USB_NEED_INIT:
 > # U-Boot C code sets this appropriatelyL
 > if ${auto_boot}; then
 >      # Auto case: Init USB unless preboot set a flag
 >      if ${usb_do_set_usb_need_init}; then
 >          setenv usb_need_init
 >      else
 >          # Next time $boot is run, this will be unset -> true
 >          # so we will re-init USB
 >          setenv usb_do_set_usb_need_init
 >          # This time through, we skip USB init
 >          setenv usb_need_init false
 >      endif
 > else
 >      # Manual case: Always init USB
 >      setenv usb_need_init
 > endif
 >
 > Or do we just assume that if the user plugs in a new USB device after
 > boot, they must manually run USB initialization? If so, we cam simplify
 > the existing $usb_need_init a bit...

Looking at all the extra code (and possible bugs / problems that code may
introduce), I think that it makes sense to just expect the user to run
"usb reset" after plugging in a new device.

Regards,

Hans

  parent reply	other threads:[~2014-12-18  9:00 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-12-12 17:50 [U-Boot] [PATCH resend 0/2] config_distro_bootcmd: Avoid usb getting scanned tw Hans de Goede
2014-12-12 17:50 ` [U-Boot] [PATCH resend 1/2] config_distro_bootcmd.h: Allow user to indicate that usb is inited in preboot Hans de Goede
2014-12-12 18:10   ` Stephen Warren
2014-12-18  9:00   ` Hans de Goede [this message]
2014-12-12 17:50 ` [U-Boot] [PATCH resend 2/2] sunxi: Avoid usb getting scanned twice when using usb kbd + usb boot Hans de Goede
2014-12-13 16:52   ` Ian Campbell

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=549297A1.1070202@redhat.com \
    --to=hdegoede@redhat.com \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.