[U-Boot] [PATCH] arm: sunxi: do not force USB for arch-sunxi
Hans de Goede
hdegoede at redhat.com
Thu Nov 10 20:10:16 CET 2016
Hi,
On 10-11-16 19:00, Yann E. MORIN wrote:
> Ian, Hans, All,
>
> On 2016-10-31 22:33 +0100, Yann E. MORIN spake thusly:
>> Currently, USB is forced-enabled for the sunxi familly, and there is no
>> way to disable it.
>>
>> However, USB takes a long time to initiliase, delaying the boot by up to
>> 5 seconds (without any USB device attached!). This is a very long delay,
>> especially in cases where USB booting is not wanted at all, and where
>> the device is expected to boot relatively often (even in production).
>>
>> Change the way the dependencies are handled, by only forcibly selecting
>> USB when CONFIG_DISTRO_DEFAULTS ("defaults suitable for booting general
>> purpose Linux distributions") is set. This option defaults to y for the
>> sunxi familly, so the current default behaviour is kept unchanged. Users
>> interested in boot time and/or size will be able to disable this to
>> further disable USB.
>>
>> With USB disabled, the time spent in U-Boot before handing control to
>> the Linux kernel is about 1s now, down from ~5s (Nanopi Neo, sunxi H3).
>
> Just a gentle ping... ;-)
10 days is a bit short in between ping times for a volunteer maintained
subsys :) Anyways I've this on my todo and hopefully will get around
to it soonish.
Regards,
Hans
>
> Regards,
> Yann E. MORIN.
>
>> Signed-off-by: "Yann E. MORIN" <yann.morin.1998 at free.fr>
>> Cc: Ian Campbell <ijc at hellion.org.uk>
>> Cc: Hans De Goede <hdegoede at redhat.com>
>>
>> ---
>> This is a tentative patch, acting as an RFC (unless it is good to go as
>> is, of course!).
>>
>> This has been discussed on IRC with <ssvb> and <apritzel>, and this
>> solution is what emerged from the discussions as a first step.
>>
>> The second step would be to defer intialisation of drivers until they
>> are actually needed, i.e. if main boot is not from USB, then don't
>> initiliase USB; if main boot fails, then initialise addtional drivers,
>> like USB... Or something along those lines... That's a much tougher
>> work for me, though...
>>
>> There are other features that are currently forced like USB, but USB
>> is by far the worst "offender" and a low-hanging fruit. Those other
>> "offenders" can be handled in follow up changes.
>> ---
>> arch/arm/Kconfig | 10 +++++-----
>> 1 file changed, 5 insertions(+), 5 deletions(-)
>>
>> diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
>> index d7a9b11..c13f60f 100644
>> --- a/arch/arm/Kconfig
>> +++ b/arch/arm/Kconfig
>> @@ -561,22 +561,22 @@ config ARCH_SUNXI
>> bool "Support sunxi (Allwinner) SoCs"
>> select CMD_GPIO
>> select CMD_MMC if MMC
>> - select CMD_USB
>> + select CMD_USB if DISTRO_DEFAULTS
>> select DM
>> select DM_ETH
>> select DM_GPIO
>> select DM_KEYBOARD
>> select DM_SERIAL
>> - select DM_USB
>> + select DM_USB if DISTRO_DEFAULTS
>> select OF_BOARD_SETUP
>> select OF_CONTROL
>> select OF_SEPARATE
>> select SPL_STACK_R if SUPPORT_SPL
>> select SPL_SYS_MALLOC_SIMPLE if SUPPORT_SPL
>> select SYS_NS16550
>> - select USB
>> - select USB_STORAGE
>> - select USB_KEYBOARD
>> + select USB if DISTRO_DEFAULTS
>> + select USB_STORAGE if DISTRO_DEFAULTS
>> + select USB_KEYBOARD if DISTRO_DEFAULTS
>> select USE_TINY_PRINTF
>>
>> config TARGET_TS4800
>> --
>> 2.7.4
>>
>
More information about the U-Boot
mailing list