u-boot.git
4 years agoWIP: sniper: Mainline kernel boot first sniper-next
Paul Kocialkowski [Fri, 5 Feb 2016 19:43:20 +0000 (20:43 +0100)]
WIP: sniper: Mainline kernel boot first

4 years agoWIP: sniper: MUIC USB routing to UART on G key press
Paul Kocialkowski [Wed, 23 Dec 2015 10:02:21 +0000 (11:02 +0100)]
WIP: sniper: MUIC USB routing to UART on G key press

4 years agoWIP: sniper: MMC1 (external) support
Paul Kocialkowski [Tue, 22 Dec 2015 16:07:11 +0000 (17:07 +0100)]
WIP: sniper: MMC1 (external) support

4 years agoWIP: sniper: AAT2870, BD2812, MUIC support
Paul Kocialkowski [Sat, 18 Jul 2015 12:23:25 +0000 (14:23 +0200)]
WIP: sniper: AAT2870, BD2812, MUIC support

4 years agosniper: Change vendor name from lge to lg, matching devicetree vendor prefix
Paul Kocialkowski [Mon, 28 Mar 2016 11:36:50 +0000 (13:36 +0200)]
sniper: Change vendor name from lge to lg, matching devicetree vendor prefix

This moves the sniper board from the lge to lg, in order to match the devicetree
vendor prefix already defined in the kernel.

Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
4 years agokc1: Proper reboot mode and boot reason validation
Paul Kocialkowski [Mon, 28 Mar 2016 11:32:26 +0000 (13:32 +0200)]
kc1: Proper reboot mode and boot reason validation

With the previous implementation, rebooting without registering a recognized
reboot mode would end up with U-Boot checking for a valid power-on reason, which
might result in the device turning off (e.g. with no USB cable attached and no
buttons pressed).

Since this approach is not viable (breaks reboot in most cases), the validity of
the reboot reason is checked (in turn, by checking that a warm reset happened,
as there is no magic) to detect a reboot and the 'o' char is recognized to
indicate that power-off is required. Still, that might be overridden by the
detection of usual power-on reasons, on purpose.

Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
4 years agosniper: Proper reboot mode and boot reason validation
Paul Kocialkowski [Mon, 28 Mar 2016 11:28:35 +0000 (13:28 +0200)]
sniper: Proper reboot mode and boot reason validation

With the previous implementation, rebooting without registering a recognized
reboot mode (despite registering the magic) would end up with U-Boot checking
for a valid power-on reason, which might result in the device turning off (e.g.
with no USB cable attached and no buttons pressed).

This was designed to catch reboots that are actually intended to be power-off,
something that old Android kernels do, instead of properly turning the device
off using the TWL4030.

However, since this approach is not viable (breaks reboot in most cases), the
validity of the reboot mode magic is checked to detect a reboot and the 'o' char
is recognized to indicate that power-off is required. Still, that might be
overridden by the detection of usual power-on reasons, on purpose.

Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
4 years agokc1: Add some sysboot and devicetree-related environment variables
Paul Kocialkowski [Sat, 26 Mar 2016 11:11:29 +0000 (12:11 +0100)]
kc1: Add some sysboot and devicetree-related environment variables

This adds some environment variables for sysboot and devicetree.

Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
4 years agokc1: Select libfdt to allow running devicetree-based kernels
Paul Kocialkowski [Thu, 24 Mar 2016 21:43:54 +0000 (22:43 +0100)]
kc1: Select libfdt to allow running devicetree-based kernels

Selecting CONFIG_OF_LIBFDT allows running recent mainline kernels.

Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
4 years agokc1: Include explicit serial baudrate on bootargs
Paul Kocialkowski [Thu, 24 Mar 2016 21:42:57 +0000 (22:42 +0100)]
kc1: Include explicit serial baudrate on bootargs

This makes the baudrate for the kernel command line explicit.

Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
4 years agosniper: Include explicit serial baudrate on bootargs
Paul Kocialkowski [Thu, 24 Mar 2016 21:42:48 +0000 (22:42 +0100)]
sniper: Include explicit serial baudrate on bootargs

This makes the baudrate for the kernel command line explicit.

Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
4 years agoARM: uniphier: switch to raw U-Boot image
Masahiro Yamada [Tue, 22 Mar 2016 16:40:05 +0000 (01:40 +0900)]
ARM: uniphier: switch to raw U-Boot image

Now everything is done to load a raw U-Boot proper image instead of
an mkimage-processed one (as far as I tested on NAND, eMMC, NOR).

The SPL already knows the load address of the U-Boot proper without
parsing its uImage header because the load address is defined by
CONFIG_SYS_TEXT_BASE, assuming that the two images are generated from
the same build.

My main motivation of this switch is to use u-boot-with-spl.bin, a
concatenation of u-boot-spl.bin and u-boot.bin.  (I wish there were
a concatenation of u-boot-spl.bin and u-boot.img...)  Anyway, this
commit would be useful for one-shot image burn.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
4 years agoARM: uniphier: add NOR boot support
Masahiro Yamada [Tue, 22 Mar 2016 16:40:04 +0000 (01:40 +0900)]
ARM: uniphier: add NOR boot support

This allows to boot from NOR flash (or SRAM) with help of an external
loader (NOR-loader).

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
4 years agoARM: uniphier: fix README instruction for updating U-Boot via TFTP
Masahiro Yamada [Tue, 22 Mar 2016 16:40:03 +0000 (01:40 +0900)]
ARM: uniphier: fix README instruction for updating U-Boot via TFTP

Commit 3cb9abc9c512 ("ARM: uniphier: update U-Boot file names in
workflow") missed to update these two sentences.  Fix them now.

Replace u-boot-spl-dtb.bin and u-boot-dtb.img with u-boot-spl.bin
and u-boot.img, respectively.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
4 years agoARM: uniphier: support Debug UART
Masahiro Yamada [Fri, 18 Mar 2016 07:41:52 +0000 (16:41 +0900)]
ARM: uniphier: support Debug UART

For ARM32 architecture, CONFIG_DEBUG_LL is available for early
low-level debugging (and actually UniPhier 32bit SoCs use it), but
ARM64 architecture does not support it.  Instead, CONFIG_DEBUG_UART
is available as an architecture-independent debug facility.

This commit supports it on all the UniPhier SoCs (including the new
ARMv8 SoCs), which is very useful for new SoC bringups.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
4 years agoARM: uniphier: add System Control register macros for ARMv8 SoCs
Masahiro Yamada [Fri, 18 Mar 2016 07:41:51 +0000 (16:41 +0900)]
ARM: uniphier: add System Control register macros for ARMv8 SoCs

The System Control block moved to a completely different register
map for ARMv8 SoCs, so it cannot be shared with the ARM 32-bit ones.
Define register macros in a new header file.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
4 years agoARM: uniphier: add sg_set_iectrl() function
Masahiro Yamada [Fri, 18 Mar 2016 07:41:50 +0000 (16:41 +0900)]
ARM: uniphier: add sg_set_iectrl() function

This helper function would be useful for new SoCs with per-pin
input enable controlling, such as PH1-LD20, PH1-LD11, etc.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
4 years agoARM: dts: uniphier: add PH1-LD11 SoC/board device tree sources
Masahiro Yamada [Fri, 18 Mar 2016 07:41:49 +0000 (16:41 +0900)]
ARM: dts: uniphier: add PH1-LD11 SoC/board device tree sources

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
4 years agoARM: dts: uniphier: add PH1-LD20 SoC/board device tree sources
Masahiro Yamada [Fri, 18 Mar 2016 07:41:48 +0000 (16:41 +0900)]
ARM: dts: uniphier: add PH1-LD20 SoC/board device tree sources

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
4 years agoARM: uniphier: enable DDR PHY parameter dump commands by default
Masahiro Yamada [Fri, 18 Mar 2016 07:41:47 +0000 (16:41 +0900)]
ARM: uniphier: enable DDR PHY parameter dump commands by default

These commands are not necessarily needed for usual operations
(they are useful in case of DDR memory trouble), but enabling them
by default would be nice in terms of the compilation test coverage.
They are small enough, so limited impact on the memory footprint.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
4 years agoARM: uniphier: add work-around to support Micro Support Card v3.6.10
Masahiro Yamada [Fri, 18 Mar 2016 07:41:46 +0000 (16:41 +0900)]
ARM: uniphier: add work-around to support Micro Support Card v3.6.10

Due to some hardware guy's awful work, this version is not compatible
with v3.6: the logic of BIT(0) of the reset logic is inverted! (and
v3.6.10 is horribly wrong in multiple ways), but this is what we have
to solve now.

The v3.6 expects 0x0000 set to the register for reset de-assertion,
while v3.6 does 0x0001.

This commit (ab)uses another bug of v3.6.10 to work around the issue.
The UniPhier System Bus is a 16-bit bus, which this support card is
connected to.  A 32-bit write to the bus (writel() function call) is
divided into two 16-bit write transactions, with LSB the first.  What
is amazing for v3.6.10 is that access to address 4N + 2 goes to 4N
(Jesus Christ!).

For clarification, things are like this:

    writel(0x00010000, MICRO_SUPPORT_CARD_RESET);

is done with two bus transactions as follows

    [1] write 0x0000 to address MICRO_SUPPORT_CARD
    [2] write 0x0001 to address MICRO_SUPPORT_CARD + 2

For v3.6, [1] is written to the register and [2] is correctly ignored
because there is nothing at the address MICRO_SUPPORT_CARD + 2.  This
is what we expect.

For v3.6.10, [1] is written to the reset register and then [2] is
over-written to the same register due to the bus access bug.

For the latter, it produces a glitch signal to the BIT[0], so the
device state is lost due to the reset pulse.  This solution only
works for the start-up code.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
4 years agoARM: uniphier: drop ifdef in ddrphy-regs.h
Masahiro Yamada [Fri, 18 Mar 2016 07:41:45 +0000 (16:41 +0900)]
ARM: uniphier: drop ifdef in ddrphy-regs.h

The ifdef conditionals in header files prevent us from multi-SoC
support in a single U-Boot image.  Detect SoC specific parameters
run-time rather than define them statically with an ifdef in
ddrphy-regs.h.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
4 years agoARM: uniphier: refactor SBC init code
Masahiro Yamada [Fri, 18 Mar 2016 07:41:44 +0000 (16:41 +0900)]
ARM: uniphier: refactor SBC init code

There is a bunch of duplication in the System Bus Controller init
code.  Roughly, there are two types in the SBC mode:  Adress/Data
Multiplex Mode and Save Pins Mode.  Consolidate per-SoC functions
into the two, plus per-SoC optional init code.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
4 years agoARM: uniphier: drop PH1- prefix from CONFIG options and file names
Masahiro Yamada [Fri, 18 Mar 2016 07:41:43 +0000 (16:41 +0900)]
ARM: uniphier: drop PH1- prefix from CONFIG options and file names

The current CONFIG names like "CONFIG_ARCH_UNIPHIER_PH1_PRO4" is too
long.  It would not hurt to drop "PH1_" because "UNIPHIER_" already
well specifies the SoC family.  Also, rename files for consistency.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
4 years agoARM: uniphier: fix bogus comment
Masahiro Yamada [Fri, 18 Mar 2016 07:41:42 +0000 (16:41 +0900)]
ARM: uniphier: fix bogus comment

This comment line is telling the opposite of the logic.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
4 years agoARM: uniphier: remove commented out define
Masahiro Yamada [Fri, 18 Mar 2016 07:41:41 +0000 (16:41 +0900)]
ARM: uniphier: remove commented out define

This TODO is no longer useful.  CONFIG_SYS_NS16550_SERIAL is just
ignored on DM serial.

If one wants to use the 16550A UART device on the UniPhier Micro
Support Card, it can be enabled by CONFIG_SYS_NS16550 via Kconfig.
Please notice CONFIG_SPL_OF_TRANSLATE must be enabled as well and
the device tree must be treaked in order to use the NS16550 serial
on SPL.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
4 years agoARM: dts: uniphier: add device tree for Micro Support Card
Masahiro Yamada [Fri, 18 Mar 2016 07:41:40 +0000 (16:41 +0900)]
ARM: dts: uniphier: add device tree for Micro Support Card

Import uniphier-support-card.dtsi from Linux Kernel and make it
available on the UniPhier reference boards.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
4 years agospl_mmc: allow to load raw image
Masahiro Yamada [Wed, 16 Mar 2016 03:10:00 +0000 (12:10 +0900)]
spl_mmc: allow to load raw image

The function spl_parse_image_header() falls back to a raw image
if the U-Boot header is missing and CONFIG_SPL_PANIC_ON_RAW_IMAGE
is undefined.  While, mmc_load_image_raw_sector() only accepts a
U-Boot legacy image or an FIT image, preventing us from loading a
raw image.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
4 years agomtd: denali: fix warning when compiled for 64bit system
Masahiro Yamada [Mon, 29 Feb 2016 11:57:29 +0000 (20:57 +0900)]
mtd: denali: fix warning when compiled for 64bit system

The 64-bit compiler (ex. aarch64) emits "warning: cast from pointer
to integer of different size".

Make it work with 64bit DMA address while I am here.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
4 years agonet: Move CONFIG_RTL8169 to Kconfig
Bin Meng [Mon, 21 Mar 2016 13:47:42 +0000 (06:47 -0700)]
net: Move CONFIG_RTL8169 to Kconfig

Introduce CONFIG_RTL8169 in Kconfig and move over boards' defconfig
to use that.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Acked-by: Stephen Warren <swaren@nvidia.com>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
4 years agonet: Move CONFIG_RTL8139 to Kconfig
Bin Meng [Mon, 21 Mar 2016 13:47:41 +0000 (06:47 -0700)]
net: Move CONFIG_RTL8139 to Kconfig

Introduce CONFIG_RTL8139 in Kconfig and move over boards' defconfig
to use that.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
[trini: Fixup MPC8641HPCN* and r2dplus configs]
Signed-off-by: Tom Rini <trini@konsulko.com>
4 years agodefconfig: Reorder boards' defconfig files
Bin Meng [Mon, 21 Mar 2016 13:47:40 +0000 (06:47 -0700)]
defconfig: Reorder boards' defconfig files

Some boards' defconfig files are out of order. Clean this up.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
4 years agousb: Correct return value in usb_stor_info()
Simon Glass [Wed, 16 Mar 2016 13:45:44 +0000 (07:45 -0600)]
usb: Correct return value in usb_stor_info()

This should return 0 on success, not 1. Fix it.

Signed-off-by: Simon Glass <sjg@chromium.org>
Acked-by: Marek Vasut <marex@denx.de>
Reviewed-by: Tom Rini <trini@konsulko.com>
4 years agomkimage: Don't close the file if it wasn't opened
Simon Glass [Wed, 16 Mar 2016 13:45:43 +0000 (07:45 -0600)]
mkimage: Don't close the file if it wasn't opened

The error path for fit_import_data() is incorrect if the second open() call
fails.

Reported-by: Coverity (CID: 138489)
Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
4 years agomkimage: Ensure file is closed in fdt_property_file()
Simon Glass [Wed, 16 Mar 2016 13:45:42 +0000 (07:45 -0600)]
mkimage: Ensure file is closed in fdt_property_file()

The file that is opened is not closed in all cases. Fix it.

Reported-by: Coverity (CID: 138490)
Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
4 years agomkimage: Fix missing free() and close() in fit_build()
Simon Glass [Wed, 16 Mar 2016 13:45:41 +0000 (07:45 -0600)]
mkimage: Fix missing free() and close() in fit_build()

Make sure that both the error path and normal return free the buffer and
close the file.

Reported-by: Coverity (CID: 138491)
Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
4 years agomkimage: Fix missing free() in fit_extract_data()
Simon Glass [Wed, 16 Mar 2016 13:45:40 +0000 (07:45 -0600)]
mkimage: Fix missing free() in fit_extract_data()

The 'buf' variable is not freed. Fix it.

Reported-by: Coverity (CID: 138492)
Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
4 years agomkimage: Fix error path in fit_extract_data()
Simon Glass [Wed, 16 Mar 2016 13:45:39 +0000 (07:45 -0600)]
mkimage: Fix error path in fit_extract_data()

The 'fdt' variable is not unmapped in all error cases. Fix this.

Reported-by: Coverity (CID: 138493)
Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
4 years agomkimage: Add a missing free() to fit_import_data()
Simon Glass [Wed, 16 Mar 2016 13:45:38 +0000 (07:45 -0600)]
mkimage: Add a missing free() to fit_import_data()

The space allocated to fdt is not freed on error. Fix it.

Reported-by: Coverity (CID: 138494)
Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
4 years agomkimage: Close the file when unable to get its size
Simon Glass [Wed, 16 Mar 2016 13:45:37 +0000 (07:45 -0600)]
mkimage: Close the file when unable to get its size

There is a missing close() on the error path. Add it.

Reported-by: Coverity (CID: 138496)
Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
4 years agopart_efi: Drop NULL check in part_get_info_efi()
Simon Glass [Wed, 16 Mar 2016 13:45:36 +0000 (07:45 -0600)]
part_efi: Drop NULL check in part_get_info_efi()

This cannot be NULL since part_get_info() calls this function and requires
it to be non-NULL.

Reported-by: Coverity (CID: 138497)
Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
4 years agopart_efi: Drop the NULL check on dev_desc in part_print_efi()
Simon Glass [Wed, 16 Mar 2016 13:45:35 +0000 (07:45 -0600)]
part_efi: Drop the NULL check on dev_desc in part_print_efi()

This cannot be NULL since part_print() calls this function and requires it
to be non-NULL.

Reported-by: Coverity (CID: 138498)
Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
4 years agopart_iso: Drop the customer unaligned access functions
Simon Glass [Wed, 16 Mar 2016 13:45:34 +0000 (07:45 -0600)]
part_iso: Drop the customer unaligned access functions

One of these is causing a coverity warning. Drop these functions and use the
standard U-Boot ones instead.

Reported-by: Coverity (CID: 138499)
Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
4 years agomkimage: Correct file being closed twice in fit_extract_data()
Simon Glass [Wed, 16 Mar 2016 13:45:33 +0000 (07:45 -0600)]
mkimage: Correct file being closed twice in fit_extract_data()

The code flows through to the end of the function, so we don't need another
close() before this. Remove it.

Reported-by: Coverity (CID: 138503)
Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
4 years agomkimage: Correct file being closed twice in fit_import_data()
Simon Glass [Wed, 16 Mar 2016 13:45:32 +0000 (07:45 -0600)]
mkimage: Correct file being closed twice in fit_import_data()

The code flows through to the end of the function, so we don't need another
close() before this. Remove it.

Reported-by: Coverity (CID: 138504)
Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
4 years agomkimage: Fix munmap() call when importing data
Simon Glass [Wed, 16 Mar 2016 13:45:31 +0000 (07:45 -0600)]
mkimage: Fix munmap() call when importing data

The munmap() call unmaps the wrong memory buffer. Fix it.

Reported-by: Coverity (CID: 138505)
Reported-by: Coverity (CID: 138495)
Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
4 years agoFix spelling of "transferred".
Vagrant Cascadian [Tue, 15 Mar 2016 19:16:39 +0000 (12:16 -0700)]
Fix spelling of "transferred".

Signed-off-by: Vagrant Cascadian <vagrant@debian.org>
Acked-by: Marek Vasut <marex@denx.de>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
4 years agoFix spelling of "supported/unsupported".
Vagrant Cascadian [Tue, 15 Mar 2016 19:11:13 +0000 (12:11 -0700)]
Fix spelling of "supported/unsupported".

Signed-off-by: Vagrant Cascadian <vagrant@debian.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Peter Griffin <peter.griffin@linaro.org>
4 years agoFix spelling of "comment".
Vagrant Cascadian [Tue, 15 Mar 2016 19:11:12 +0000 (12:11 -0700)]
Fix spelling of "comment".

Signed-off-by: Vagrant Cascadian <vagrant@debian.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
4 years agocmd: Fix license command
Tom Rini [Tue, 15 Mar 2016 16:49:12 +0000 (12:49 -0400)]
cmd: Fix license command

The license command isn't usually built and has a few problems:
- The rules to generate license.h haven't worked in a long time,
  re-write these based on the bmp_logo.h rules.
- 'tok' is unused and the license text size has increased
- bin2header.c wasn't grabbing unistd.h to know the prototype for
  read().

Cc: Masahiro Yamada <yamada.masahiro@socionext.com>
Signed-off-by: Tom Rini <trini@konsulko.com>
4 years agoserial: pl01x: Add support for devices with the rate pre-configured.
Eric Anholt [Mon, 14 Mar 2016 01:16:54 +0000 (18:16 -0700)]
serial: pl01x: Add support for devices with the rate pre-configured.

For Raspberry Pi, we had the input clock rate to the pl011 fixed in
the rpi.c file, but it may be changed by firmware due to user changes
to config.txt.  Since the firmware always sets up the uart (default
115200 output unless the user changes it), we can just skip our own
uart init to simplify the boot process and more reliably get serial
output.

Signed-off-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Tom Rini <trini@konsulko.com>
Tested-by: Stephen Warren <swarren@wwwdotorg.org>
4 years agoDrop various features when the command line is not available
Simon Glass [Mon, 14 Mar 2016 01:07:35 +0000 (19:07 -0600)]
Drop various features when the command line is not available

Some features are only useful or meaningful when the command line is
present. Ensure that these features are not compiled in when CONFIG_CMDLINE
is not enabled.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
4 years agoAllow command-line files to be dropped
Simon Glass [Mon, 14 Mar 2016 01:07:34 +0000 (19:07 -0600)]
Allow command-line files to be dropped

These files do not need to be compiled when CONFIG_CMDLINE is disabled.
Update the Makefile to reflect this.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
4 years agoAllow command code to compile to nothing
Simon Glass [Mon, 14 Mar 2016 01:07:33 +0000 (19:07 -0600)]
Allow command code to compile to nothing

When CONFIG_CMDLINE is disabled we need to remove all the command-line
code. Most can be removed by dropping the appropriate linker lists from the
images, but sub-commands must be dealt with specially.

A simple mechanism is used to avoid 'unused static function' errors.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
4 years agoPanic when no command line processing can be performed
Simon Glass [Mon, 14 Mar 2016 01:07:32 +0000 (19:07 -0600)]
Panic when no command line processing can be performed

Normally board_run_command() will handle command processed. But if for some
reason it returns then we should panic to avoid further processing.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
4 years agosandbox: Avoid calling commands when not available
Simon Glass [Mon, 14 Mar 2016 01:07:30 +0000 (19:07 -0600)]
sandbox: Avoid calling commands when not available

Don't try to run commands when not supported.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
4 years agoarm: x86: Drop command-line code when CONFIG_CMDLINE is disabled
Simon Glass [Mon, 14 Mar 2016 01:07:29 +0000 (19:07 -0600)]
arm: x86: Drop command-line code when CONFIG_CMDLINE is disabled

Update the link script to drop this code when not needed. This is only done
for two architectures at present.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
4 years agoAdd an option to enable the command line
Simon Glass [Mon, 14 Mar 2016 01:07:28 +0000 (19:07 -0600)]
Add an option to enable the command line

Add a new Kconfig option for the command line. This is enabled by default,
but when disabled it will remove the command line.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
4 years agocbfs: Update a function to be static
Simon Glass [Mon, 14 Mar 2016 01:07:27 +0000 (19:07 -0600)]
cbfs: Update a function to be static

All command functions should be static. Update the CBFS functions to follow
this rule.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
4 years agoti: k2g: increase phy autoneg timeout
Vitaly Andrianov [Fri, 11 Mar 2016 13:23:04 +0000 (08:23 -0500)]
ti: k2g: increase phy autoneg timeout

After power cycle of a K2G EVM dhcp fails due to a auto-negotiation
timeout. This commit increases the timeout to fix the issue.

Signed-off-by: Vitaly Andrianov <vitalya@ti.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
4 years agoMerge branch 'master' of git://git.denx.de/u-boot-fsl-qoriq
Tom Rini [Tue, 22 Mar 2016 16:14:27 +0000 (12:14 -0400)]
Merge branch 'master' of git://git.denx.de/u-boot-fsl-qoriq

4 years agodriver: net: fsl-mc: Return from DPAA_exit if boot_status !=0
Prabhakar Kushwaha [Mon, 21 Mar 2016 08:49:39 +0000 (14:19 +0530)]
driver: net: fsl-mc: Return from DPAA_exit if boot_status !=0

Return value of get_mc_boot_status() in case of failure is not necessary
to be -1.

So update the error condition check.

Signed-off-by: Prabhakar Kushwaha <prabhakar.kushwaha@nxp.com>
Reported-by: Yao Yuan <yao.yuan@nxp.com>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
Reviewed-by: York Sun <york.sun@nxp.com>
4 years agoarmv8/ls1043aqds: Enable ID_EEPROM support for ls1043aqds
Wenbin Song [Wed, 9 Mar 2016 05:38:25 +0000 (13:38 +0800)]
armv8/ls1043aqds: Enable ID_EEPROM support for ls1043aqds

Signed-off-by: Wenbin Song <wenbin.song@nxp.com>
Reviewed-by: York Sun <york.sun@nxp.com>
4 years agoarmv8/ls1043aqds: Return i2c mux to default chennel
Wenbin Song [Wed, 9 Mar 2016 05:38:24 +0000 (13:38 +0800)]
armv8/ls1043aqds: Return i2c mux to default chennel

Return i2c mux to the default channel after accessing retimer.

Signed-off-by: Wenbin Song <wenbin.song@nxp.com>
Reviewed-by: York Sun <york.sun@nxp.com>
4 years agofreescale: vid: Return i2c mux to default channel
Wenbin Song [Wed, 9 Mar 2016 05:38:23 +0000 (13:38 +0800)]
freescale: vid: Return i2c mux to default channel

IR chip is on one of the channels on multiplexed I2C-bus.
Reset to default channel after accessing.

Signed-off-by: Wenbin Song <wenbin.song@nxp.com>
Reviewed-by: York Sun <york.sun@nxp.com>
4 years agoarm: ls102xa: Enable CONFIG_SYS_CONSOLE_IS_IN_ENV support
Alison Wang [Tue, 8 Mar 2016 03:59:59 +0000 (11:59 +0800)]
arm: ls102xa: Enable CONFIG_SYS_CONSOLE_IS_IN_ENV support

CONFIG_SYS_CONSOLE_IS_IN_ENV needs to be enabled, so we could set stdout
environment variable to specify the vga for the console output when
LCD/HDMI is connected to the boards.

Signed-off-by: Alison Wang <alison.wang@nxp.com>
Reviewed-by: York Sun <york.sun@nxp.com>
4 years agoarmv8/fsl-lsch2: fix sdhc clock frequency value
Yangbo Lu [Tue, 16 Feb 2016 02:54:41 +0000 (10:54 +0800)]
armv8/fsl-lsch2: fix sdhc clock frequency value

The eSDHC could select to use platform clock or peripheral clock to
generate SD clock. The default selection is platform clock. So, fix
the clock frequency value that's calculated for eSDHC.

Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
Reviewed-by: York Sun <york.sun@nxp.com>
4 years agoarmv8: ls2085a: Remove phy configuration from QDS and RDB
Prabhakar Kushwaha [Wed, 24 Feb 2016 11:32:32 +0000 (17:02 +0530)]
armv8: ls2085a: Remove phy configuration from QDS and RDB

As phy_connect and phy_config are being called from DPAA2 driver.
Remove calling of mentioned function from board file.

Signed-off-by: Pratiyush Mohan Srivastava <pratiyush.srivastava@nxp.com>
Signed-off-by: Prabhakar Kushwaha <prabhakar.kushwaha@nxp.com>
Reviewed-by: York Sun <york.sun@nxp.com>
4 years agodriver: net: ldpaa_eth: Add support of PHY framework
Prabhakar Kushwaha [Wed, 24 Feb 2016 11:32:11 +0000 (17:02 +0530)]
driver: net: ldpaa_eth: Add support of PHY framework

This patch integrate DPAA2 ethernet driver existing PHY framework.

Call phy_connect and phy_config as per available DPMAC id defined
in SerDes Protcol.

Signed-off-by: Pratiyush Mohan Srivastava <pratiyush.srivastava@nxp.com>
Signed-off-by: Prabhakar Kushwaha <prabhakar.kushwaha@nxp.com>
Reviewed-by: York Sun <york.sun@nxp.com>
4 years agoarmv8: fsl-layerscape: Updating entries in Serdes Table
Pratiyush Srivastava [Fri, 18 Mar 2016 11:44:19 +0000 (17:14 +0530)]
armv8: fsl-layerscape: Updating entries in Serdes Table

The serdes protocol entries in  Serdes table 1 for protocol
0x03, 0x33, 0x35 and in Serdes table 2 for protocols 0x45
and 0x47 are updated to reflect the entries in
current Reference Manual.

Signed-off-by: Pratiyush Mohan Srivastava <pratiyush.srivastava@nxp.com>
Reported-by: Jose Rivera <german.rivera@nxp.com>
Reviewed-by: York Sun <york.sun@nxp.com>
4 years agodriver/ddr/fsl: Add workaround for erratum A-009803
Shengzhou Liu [Thu, 10 Mar 2016 09:36:57 +0000 (17:36 +0800)]
driver/ddr/fsl: Add workaround for erratum A-009803

During initial DDR training, false parity errors may be detected.
This patch adds workaround to fix the erratum.
Tested on LS2085QDS and LS2080RDB.

Signed-off-by: Shengzhou Liu <Shengzhou.Liu@nxp.com>
Reviewed-by: York Sun <york.sun@nxp.com>
4 years agodriver/ddr/fsl: Add address parity support for DDR4 UDIMM/discrete
Shengzhou Liu [Thu, 10 Mar 2016 09:36:56 +0000 (17:36 +0800)]
driver/ddr/fsl: Add address parity support for DDR4 UDIMM/discrete

Add support of address parity for DDR4 UDIMM or discrete memory.
It requires to configurate corresponding MR5[2:0] and
TIMING_CFG_7[PAR_LAT]. Parity can be turned on by hwconfig,
e.g. hwconfig=fsl_ddr:parity=on.

Signed-off-by: Shengzhou Liu <Shengzhou.Liu@nxp.com>
Reviewed-by: York Sun <york.sun@nxp.com>
4 years agopci/layerscape: set LUT and msi-map for discovered PCI devices
Stuart Yoder [Thu, 10 Mar 2016 16:52:30 +0000 (10:52 -0600)]
pci/layerscape: set LUT and msi-map for discovered PCI devices

msi-map properties are used to tell an OS how PCI requester IDs are
mapped to ARM SMMU stream IDs.

for all PCI devices discovered in a system:
  -allocate a LUT (look-up-table) entry in that PCI controller
  -allocate a stream ID for the device
  -program and enable a LUT entry (maps PCI requester id to stream ID)
  -set the msi-map property on the controller reflecting the
   LUT mapping

basic bus scanning loop/logic was taken from drivers/pci/pci.c
pci_hose_scan_bus().

Signed-off-by: Stuart Yoder <stuart.yoder@nxp.com>
Reviewed-by: York Sun <york.sun@nxp.com>
4 years agopci/layerscape: add defines for LUT
Stuart Yoder [Thu, 10 Mar 2016 16:52:24 +0000 (10:52 -0600)]
pci/layerscape: add defines for LUT

The per-PCI controller LUT (Look-Up-Table) is a 32-entry table
that maps PCI requester IDs (bus/dev/fun) to a stream ID.

Add defines for the register offsets.

Signed-off-by: Stuart Yoder <stuart.yoder@nxp.com>
Reviewed-by: York Sun <york.sun@nxp.com>
4 years agopci: make pci_get_hose_head() available to external users
Stuart Yoder [Thu, 10 Mar 2016 16:52:18 +0000 (10:52 -0600)]
pci: make pci_get_hose_head() available to external users

Put pci_get_hose_head() prototype in header so it is available to
external users, allowing them to find and iterate over all pci
controllers.

Signed-off-by: Stuart Yoder <stuart.yoder@nxp.com>
Reviewed-by: York Sun <york.sun@nxp.com>
4 years agoarmv8: ls2080a: update stream ID partitioning info
Stuart Yoder [Thu, 10 Mar 2016 16:52:07 +0000 (10:52 -0600)]
armv8: ls2080a: update stream ID partitioning info

Update comments around how stream IDs are partitioned.
Stream IDs allocated to PCI are no longer divided up by
controller, but are instead a contiguous range

Signed-off-by: Stuart Yoder <stuart.yoder@nxp.com>
Reviewed-by: York Sun <york.sun@nxp.com>
4 years agoarmv8: ls2080a: remove obsolete stream ID partitioning support
Stuart Yoder [Thu, 10 Mar 2016 16:52:01 +0000 (10:52 -0600)]
armv8: ls2080a: remove obsolete stream ID partitioning support

Remove stream ID partitioning support that has been made
obsolete by upstream device tree bindings that specify how
representing how PCI requester IDs are mapped to MSI specifiers
and SMMU stream IDs.

Signed-off-by: Stuart Yoder <stuart.yoder@nxp.com>
Reviewed-by: York Sun <york.sun@nxp.com>
4 years agoboards: ls2080: Fix default bootargs
York Sun [Mon, 29 Feb 2016 23:58:20 +0000 (15:58 -0800)]
boards: ls2080: Fix default bootargs

A white space is missing in multiple-line string for bootargs.

Signed-off-by: York Sun <york.sun@nxp.com>
4 years agoarm: ls102xa: fdt: Update FSL_QSPI_COMPAT and FSL_DSPI_COMPAT
Alison Wang [Mon, 29 Feb 2016 06:50:20 +0000 (14:50 +0800)]
arm: ls102xa: fdt: Update FSL_QSPI_COMPAT and FSL_DSPI_COMPAT

As the compatible property values for QSPI and DSPI dts nodes
are changed in kernel, FSL_QSPI_COMPAT and FSL_DSPI_COMPAT
need to be updated too.

Signed-off-by: Alison Wang <alison.wang@nxp.com>
Reviewed-by: York Sun <york.sun@nxp.com>
4 years agodrivers/crypto/fsl: define structures for PDB
Aneesh Bansal [Mon, 15 Feb 2016 09:42:57 +0000 (15:12 +0530)]
drivers/crypto/fsl: define structures for PDB

Structures are defined for PDB (Protocol Data Blcks) for various
operations. These structure will be used to add PDB data while
creating the PDB descriptors.

Signed-off-by: Ruchika Gupta <ruchika.gupta@nxp.com>
Signed-off-by: Aneesh Bansal <aneesh.bansal@nxp.com>
CC: Ulises Cardenas <raul.casas@nxp.com>
Reviewed-by: York Sun <york.sun@nxp.com>
4 years agodrivers/crypto/fsl: add constructs for protocol descriptors
Aneesh Bansal [Mon, 15 Feb 2016 09:42:56 +0000 (15:12 +0530)]
drivers/crypto/fsl: add constructs for protocol descriptors

Construct APIs are added to create Protocol Descriptors for
CAAM block.

Signed-off-by: Ruchika Gupta <ruchika.gupta@nxp.com>
Signed-off-by: Aneesh Bansal <aneesh.bansal@nxp.com>
CC: Ulises Cardenas <raul.casas@nxp.com>
Reviewed-by: York Sun <york.sun@nxp.com>
4 years agodrivers/crypto/fsl: correct error checking in run_descriptor
Aneesh Bansal [Thu, 11 Feb 2016 09:06:51 +0000 (14:36 +0530)]
drivers/crypto/fsl: correct error checking in run_descriptor

When CAAM runs a descriptor and an error occurs, a non-zero
value is set in Output Status Register. The if condition should
check the status for a non-zero value.

Signed-off-by: Aneesh Bansal <aneesh.bansal@nxp.com>
Reviewed-by: York Sun <york.sun@nxp.com>
4 years agoarmv8: ls2080ardb: invert irq pins polarity for AQR405 PHY
Shaohui Xie [Thu, 28 Jan 2016 07:38:15 +0000 (15:38 +0800)]
armv8: ls2080ardb: invert irq pins polarity for AQR405 PHY

To use AQR405 PHY's interrupt, we need to invert the relative IRQ pins
polarity by setting IRQCR register, because AQR405 interrupt is low
active but GIC accepts high active.

Signed-off-by: Shaohui Xie <Shaohui.Xie@nxp.com>
Reviewed-by: York Sun <york.sun@nxp.com>
4 years agoarmv8: lsch3: Enable WUO config for RNI-20 node
Prabhakar Kushwaha [Mon, 25 Jan 2016 06:38:45 +0000 (12:08 +0530)]
armv8: lsch3: Enable WUO config for RNI-20 node

Enable wuo config to accelerate coherent ordered writes for LS2080A
and LS2085A.

WRIOP IP is connected to RNI-20 Node.

Signed-off-by: Prabhakar Kushwaha <prabhakar.kushwaha@nxp.com>
Reviewed-by: York Sun <york.sun@nxp.com>
4 years agoarm64: Fix layerscape mmu setup
Alexander Graf [Mon, 21 Mar 2016 19:26:12 +0000 (20:26 +0100)]
arm64: Fix layerscape mmu setup

With commit 7985cdf we converted all systems except for the Layerscape
SoCs to the generic descriptor table based page table setup.

On the Layerscape SoCs however, we just provide an empty table stub
and do the setup ourselves. To reserve enough memory for the tables,
we need to override the default counting mechanism which would end up
with an empty table because we have no maps.

Fixes: 7985cdf
Reported-by: York Sun <york.sun@nxp.com>
CC: Alison Wang <alison.wang@nxp.com>
CC: Prabhakar Kushwaha <prabhakar.kushwaha@nxp.com>
Signed-off-by: Alexander Graf <agraf@suse.de>
Tested-by: York Sun <york.sun@nxp.com>
Reviewed-by: York Sun <york.sun@nxp.com>
4 years agostrider: use optimised bus timing for FPGA access
Reinhard Pfau [Wed, 16 Mar 2016 08:20:13 +0000 (09:20 +0100)]
strider: use optimised bus timing for FPGA access

Use optimised bus timing for FPGA access.

Signed-off-by: Reinhard Pfau <reinhard.pfau@gdsys.cc>
Signed-off-by: Dirk Eibach <dirk.eibach@gdsys.cc>
4 years agostrider: Define pca593x widths
Dirk Eibach [Wed, 16 Mar 2016 08:20:12 +0000 (09:20 +0100)]
strider: Define pca593x widths

Signed-off-by: Dirk Eibach <dirk.eibach@gdsys.cc>
4 years agostrider: Add DP501 support for cpu model
Dirk Eibach [Wed, 16 Mar 2016 08:20:11 +0000 (09:20 +0100)]
strider: Add DP501 support for cpu model

Signed-off-by: Dirk Eibach <dirk.eibach@gdsys.cc>
Signed-off-by: Stefan Roese <sr@denx.de>
4 years agoMerge branch 'master' of git://git.denx.de/u-boot-socfpga
Tom Rini [Sun, 20 Mar 2016 22:09:34 +0000 (18:09 -0400)]
Merge branch 'master' of git://git.denx.de/u-boot-socfpga

4 years agoarm: socfpga: sr1500: Misc updates (SPI speed, env location)
Stefan Roese [Thu, 3 Mar 2016 15:57:39 +0000 (16:57 +0100)]
arm: socfpga: sr1500: Misc updates (SPI speed, env location)

This patch makes the following changes to the SR1500 board port:

- Update defconfig to support SPI NOR (use make savedefconfig).
- Increase SPI speed to a maximum of 100MHz for faster system
  bootup.
- Change environment location, so that its not between SPL and
  main U-Boot. This way the combined SPL / U-Boot image can
  be used for updates.

Signed-off-by: Stefan Roese <sr@denx.de>
Cc: Marek Vasut <marex@denx.de>
4 years agoarm: socfpga: Allow boards to define a custom environment size
Stefan Roese [Thu, 3 Mar 2016 15:57:38 +0000 (16:57 +0100)]
arm: socfpga: Allow boards to define a custom environment size

This patch makes it possible that boards can define a board-specific env
size. This is used by the SR1500 SoCFPGA board port.

Signed-off-by: Stefan Roese <sr@denx.de>
Cc: Chin Liang See <clsee@altera.com>
Cc: Dinh Nguyen <dinguyen@opensource.altera.com>
Cc: Marek Vasut <marex@denx.de>
4 years agoarm: socfpga: Fix SR1500 env position
Marek Vasut [Fri, 26 Feb 2016 18:11:30 +0000 (19:11 +0100)]
arm: socfpga: Fix SR1500 env position

Move the inclusion of the common socfpga configuration file further
down in the sr1500 configuration, so that the socfpga_common.h can
check if environment is in SPI NOR and it's location is defined and
if it is not, define default location.

This fixes "arm: socfpga: Enabling U-Boot environment support in QSPI"
which introduced a minor warning.

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Chin Liang See <clsee@altera.com>
Cc: Dinh Nguyen <dinguyen@opensource.altera.com>
Cc: Dinh Nguyen <dinh.linux@gmail.com>
Cc: Pavel Machek <pavel@denx.de>
Cc: Marek Vasut <marex@denx.de>
Cc: Stefan Roese <sr@denx.de>
4 years agoarm: socfpga: Enabling U-Boot environment support in QSPI
Chin Liang See [Wed, 24 Feb 2016 08:50:22 +0000 (16:50 +0800)]
arm: socfpga: Enabling U-Boot environment support in QSPI

Enabling the support of storing U-Boot environment
within serial NOR flash. By default, its still
store into SDMMC

Signed-off-by: Chin Liang See <clsee@altera.com>
Cc: Dinh Nguyen <dinguyen@opensource.altera.com>
Cc: Dinh Nguyen <dinh.linux@gmail.com>
Cc: Pavel Machek <pavel@denx.de>
Cc: Marek Vasut <marex@denx.de>
Cc: Stefan Roese <sr@denx.de>
4 years agousb: xhci: Fix vendor command error if the request type is USB_REQ_SET_ADDRESS or...
Ted Chen [Fri, 18 Mar 2016 07:26:52 +0000 (17:56 +1030)]
usb: xhci: Fix vendor command error if the request type is USB_REQ_SET_ADDRESS or USB_REQ_SET_CONFIGURATION.

Add test into xhci_submit_control_message for usb requesttype in USB
vendor request being of standardized type. This fixes detection of
certain USB fixes, for example Ethernet, USB 3.0 port. Non standardized
requesttype in USB vendor request will be ignored.

Signed-off-by: Ted Chen <tedchen@realtek.com>
Tested-by: Anand Moon <linux.amoon@gmail.com>
4 years agousb: Change power-on / scanning timeout handling
Stefan Roese [Tue, 15 Mar 2016 12:59:15 +0000 (13:59 +0100)]
usb: Change power-on / scanning timeout handling

This patch changes the USB port scanning procedure and timeout
handling in the following ways:

a)
The power-on delay in usb_hub_power_on() is now reduced to a value of
max(100ms, "hub->desc.bPwrOn2PwrGood * 2"). The code does not wait
using mdelay, instead usb_hub_power_on() will wait before querying
the device in the scanning loop later. The total timeout for this
hub, which is 1 second + "hub->desc.bPwrOn2PwrGood * 2" is calculated
and will be used in the following per-port scanning loop as the timeout
to detect active USB devices on this hub.

b)
Don't delay the minimum delay (for power to stabilize) in
usb_hub_power_on(). Instead skip querying these devices in the scannig
loop until the delay time is reached.

c)
The ports are now scanned in a quasi parallel way. The current code did
wait for each (unconnected) port to reach its timeout and only then
continue with the next port. This patch now changes this to scan all
ports of all USB hubs quasi simultaneously. For this, all ports are added
to a scanning list. This list is scanned until all ports are ready
by either a) reaching the connection timeout (calculated earlier), or
by b) detecting a USB device. This results in a faster USB scan time as
the recursive scanning of USB hubs connected to the hub that's currently
being scanned will start earlier.

One small functional change to the original code is, that ports with
overcurrent detection will now get rescanned multiple times
(PORT_OVERCURRENT_MAX_SCAN_COUNT).

Without this patch:
starting USB...
USB0:   USB EHCI 1.00
scanning bus 0 for devices... 9 USB Device(s) found

time: 20.163 seconds

With this patch:
starting USB...
USB0:   USB EHCI 1.00
scanning bus 0 for devices... 9 USB Device(s) found

time: 1.822 seconds

So ~18.3 seconds of USB scanning time reduction.

Signed-off-by: Stefan Roese <sr@denx.de>
Acked-by: Hans de Goede <hdegoede@redhat.com>
Tested-by: Stephen Warren <swarren@nvidia.com>
4 years agousb: Don't reset the USB hub a 2nd time
Stefan Roese [Tue, 15 Mar 2016 12:59:14 +0000 (13:59 +0100)]
usb: Don't reset the USB hub a 2nd time

Debugging has shown, that all USB hubs are being reset twice while
USB scanning. This introduces additional delays and makes USB scanning
even more slow. Testing has shown that this 2nd USB hub reset doesn't
seem to be necessary.

This patch now removes this 2nd USB hub reset. Resulting in faster USB
scan time. Here the current numbers:

Without this patch:
=> time usb start
starting USB...
USB0:   USB EHCI 1.00
scanning bus 0 for devices... 9 USB Device(s) found

time: 24.003 seconds

With this patch:
=> time usb start
starting USB...
USB0:   USB EHCI 1.00
scanning bus 0 for devices... 9 USB Device(s) found

time: 20.392 seconds

So ~3.6 seconds of USB scanning time reduction.

Signed-off-by: Stefan Roese <sr@denx.de>
Cc: Simon Glass <sjg@chromium.org>
Acked-by: Hans de Goede <hdegoede@redhat.com>
Tested-by: Stephen Warren <swarren@nvidia.com>
Cc: Marek Vasut <marex@denx.de>
4 years agousb: Remove 200 ms delay in usb_hub_port_connect_change()
Stefan Roese [Tue, 15 Mar 2016 12:59:13 +0000 (13:59 +0100)]
usb: Remove 200 ms delay in usb_hub_port_connect_change()

This patch removes 2 mdelay(200) calls from usb_hub_port_connect_change().
These delays don't seem to be necessary. At least not in my tests. Here
the number for a custom x86 Bay Trail board (not in mainline yet) with
a quite large and complex USB hub infrastructure.

Without this patch:
starting USB...
USB0:   USB EHCI 1.00
scanning bus 0 for devices... 9 USB Device(s) found

time: 28.415 seconds

With this patch:
starting USB...
USB0:   USB EHCI 1.00
scanning bus 0 for devices... 9 USB Device(s) found

time: 24.003 seconds

So ~4.5 seconds of USB scanning time reduction.

Signed-off-by: Stefan Roese <sr@denx.de>
Cc: Simon Glass <sjg@chromium.org>
Acked-by: Hans de Goede <hdegoede@redhat.com>
Tested-by: Stephen Warren <swarren@nvidia.com>
Cc: Marek Vasut <marex@denx.de>
4 years agousb: legacy_hub_port_reset(): Speedup hub reset handling
Stefan Roese [Tue, 15 Mar 2016 12:59:12 +0000 (13:59 +0100)]
usb: legacy_hub_port_reset(): Speedup hub reset handling

Start with a short USB hub reset delay of 20ms. This can be enough for
some configurations.

The 2nd delay at the end of the loop is completely removed. Since the
delay hasn't been long enough, a longer delay time of 200ms is assigned
and will be used in the next loop round.

This hub reset handling is also used in the v4.4 Linux USB driver,
hub_port_reset().

Signed-off-by: Stefan Roese <sr@denx.de>
Cc: Simon Glass <sjg@chromium.org>
Acked-by: Hans de Goede <hdegoede@redhat.com>
Tested-by: Stephen Warren <swarren@nvidia.com>
Cc: Marek Vasut <marex@denx.de>
4 years agodm: blk: Add tests for block devices
Simon Glass [Sun, 13 Mar 2016 14:22:36 +0000 (08:22 -0600)]
dm: blk: Add tests for block devices

Add some tests to check that block devices work as expected.

Signed-off-by: Simon Glass <sjg@chromium.org>
Tested-by: Stephen Warren <swarren@nvidia.com>
4 years agodm: sandbox: Drop the pre-DM host implementation
Simon Glass [Sun, 13 Mar 2016 14:22:35 +0000 (08:22 -0600)]
dm: sandbox: Drop the pre-DM host implementation

Driver model is used for host device block devices now, so we don't need the
old code. Remove it.

Signed-off-by: Simon Glass <sjg@chromium.org>
Tested-by: Stephen Warren <swarren@nvidia.com>