From: Stephen Warren <swarren@wwwdotorg.org>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH resend 1/2] config_distro_bootcmd.h: Allow user to indicate that usb is inited in preboot
Date: Fri, 12 Dec 2014 11:10:52 -0700 [thread overview]
Message-ID: <548B2FAC.1020909@wwwdotorg.org> (raw)
In-Reply-To: <1418406612-3243-2-git-send-email-hdegoede@redhat.com>
On 12/12/2014 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...
next prev parent reply other threads:[~2014-12-12 18:10 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 [this message]
2014-12-18 9:00 ` [U-Boot] [U-Boot, resend, " Hans de Goede
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=548B2FAC.1020909@wwwdotorg.org \
--to=swarren@wwwdotorg.org \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox