oweals/u-boot.git
10 years agobuildman: Ignore conflicting tags
Simon Glass [Sat, 6 Sep 2014 01:00:23 +0000 (19:00 -0600)]
buildman: Ignore conflicting tags

Tags like Series-version are normally expected to appear once, and with a
unique value. But buildman doesn't actually look at these tags. So ignore
conflicts.

This allows bulidman to build a branch containing multiple patman series.

Reported-by: Steve Rae <srae@broadcom.com>
Signed-off-by: Simon Glass <sjg@chromium.org>
10 years agobuildman: Permit branch names with an embedded '/'
Simon Glass [Sat, 6 Sep 2014 01:00:22 +0000 (19:00 -0600)]
buildman: Permit branch names with an embedded '/'

At present buildman naively uses the branch name as part of its directory
path, which causes problems if the name has an embedded '/'.

Replace these with '_' to fix the problem.

Reported-by: Steve Rae <srae@broadcom.com>
Signed-off-by: Simon Glass <sjg@chromium.org>
10 years agobuildman: Expand output test to cover directory prefixes
Simon Glass [Sat, 6 Sep 2014 01:00:21 +0000 (19:00 -0600)]
buildman: Expand output test to cover directory prefixes

Now that buildman supports removing the build directory prefix from output,
add a test for it. Also ensure that output directories are removed when the
test completes.

Signed-off-by: Simon Glass <sjg@chromium.org>
10 years agobuildman: Add additional functional tests
Simon Glass [Sat, 6 Sep 2014 01:00:20 +0000 (19:00 -0600)]
buildman: Add additional functional tests

This adds coverage of core features of the builder, including the
command-line options which affect building.

Signed-off-by: Simon Glass <sjg@chromium.org>
10 years agopatman: Start with a clean series when needed
Simon Glass [Sat, 6 Sep 2014 01:00:19 +0000 (19:00 -0600)]
patman: Start with a clean series when needed

For reasons that are not well-understood, GetMetaDataForList() can end up
adding to an existing series even when it appears that it should be
starting a new one.

Change from using a default constructor parameter to an explicit one, to
work around this problem.

Signed-off-by: Simon Glass <sjg@chromium.org>
10 years agobuildman: Provide an internal option to clean the outpur dir
Simon Glass [Sat, 6 Sep 2014 01:00:18 +0000 (19:00 -0600)]
buildman: Provide an internal option to clean the outpur dir

For testing it is useful to clean the output directory before running a
test. This avoids a test interfering with the results of a subsequent
test by leaving data around.

Add this feature as an optional parameter to the control logic.

Signed-off-by: Simon Glass <sjg@chromium.org>
10 years agobuildman: Correct counting of build failures on retry
Simon Glass [Sat, 6 Sep 2014 01:00:17 +0000 (19:00 -0600)]
buildman: Correct counting of build failures on retry

When a build is to be performed, buildman checks to see if it has already
been done. In most cases it will not bother trying again. However, it was
not reading the return code from the 'done' file, so if the result was a
failure, it would not be counted. This depresses the 'failure' count stats
that buildman prints in this case.

Fix this bug by always reading the return code.

Signed-off-by: Simon Glass <sjg@chromium.org>
10 years agobuildman: Allow tests to have their own boards
Simon Glass [Sat, 6 Sep 2014 01:00:16 +0000 (19:00 -0600)]
buildman: Allow tests to have their own boards

Rather than reading boards.cfg, which may take time to generate and is not
necessarily suitable for running tests, create our own list of boards.

Signed-off-by: Simon Glass <sjg@chromium.org>
10 years agobuildman: Avoid looking at config file or toolchains in tests
Simon Glass [Sat, 6 Sep 2014 01:00:15 +0000 (19:00 -0600)]
buildman: Avoid looking at config file or toolchains in tests

These files may not exist in the environment, or may not be suitable for
testing. Provide our own config file and our own toolchains when running
tests.

Signed-off-by: Simon Glass <sjg@chromium.org>
10 years agobuildman: Set up bsettings outside the control module
Simon Glass [Sat, 6 Sep 2014 01:00:14 +0000 (19:00 -0600)]
buildman: Set up bsettings outside the control module

Move the bsettings code back to the main buildman.py file, so we can do
something different when testing.

Signed-off-by: Simon Glass <sjg@chromium.org>
10 years agobuildman: Add a functional test
Simon Glass [Sat, 6 Sep 2014 01:00:13 +0000 (19:00 -0600)]
buildman: Add a functional test

Buildman currently lacks testing in many areas, including its use of git,
make and many command-line flags.

Add a functional test which covers some of these areas. So far it does
a fake 'build' of all boards for the current source tree.

This version reads the real ~/.buildman and boards.cfg files. Future work
will improve this.

Signed-off-by: Simon Glass <sjg@chromium.org>
10 years agopatman: Provide a way to intercept commands for testing
Simon Glass [Sat, 6 Sep 2014 01:00:12 +0000 (19:00 -0600)]
patman: Provide a way to intercept commands for testing

Add a test point for the command module. This allows tests to emulate
the execution of commands. This provides more control (since we can make
the fake 'commands' do whatever we like), makes it faster to write tests
since we don't need to set up as much environment, and speeds up test
execution.

Signed-off-by: Simon Glass <sjg@chromium.org>
10 years agobuildman: Move full help code into the control module
Simon Glass [Sat, 6 Sep 2014 01:00:11 +0000 (19:00 -0600)]
buildman: Move full help code into the control module

There is no good reason to keep this code separate. Move it into control.py
so it is easier to test.

Signed-off-by: Simon Glass <sjg@chromium.org>
10 years agobuildman: Move the command line code into its own file
Simon Glass [Sat, 6 Sep 2014 01:00:10 +0000 (19:00 -0600)]
buildman: Move the command line code into its own file

We want to be able to issue parser commands from within buildman for test
purposes. Move the parser code into its own file so we don't end up needing
the buildman and test modules to reference each other.

Signed-off-by: Simon Glass <sjg@chromium.org>
10 years agopatman: RunPipe() should not pipe stdout/stderr unless asked
Simon Glass [Sat, 6 Sep 2014 01:00:09 +0000 (19:00 -0600)]
patman: RunPipe() should not pipe stdout/stderr unless asked

RunPipe() currently pipes the output of stdout and stderr to a pty, but
this is not the intended behaviour. Fix it.

Signed-off-by: Simon Glass <sjg@chromium.org>
10 years agobuildman: Enhance basic test to check summary output
Simon Glass [Sat, 6 Sep 2014 01:00:08 +0000 (19:00 -0600)]
buildman: Enhance basic test to check summary output

Adjust the basic test so that it checks all console output. This will help
to ensure that the builder is behaving correctly with printing summary
information.

Signed-off-by: Simon Glass <sjg@chromium.org>
10 years agobuildman: Send builder output through a function for testing
Simon Glass [Sat, 6 Sep 2014 01:00:07 +0000 (19:00 -0600)]
buildman: Send builder output through a function for testing

To allow us to verify the builder's console output, send it through a
function which can collect it when running in test mode.

Signed-off-by: Simon Glass <sjg@chromium.org>
10 years agopatman: Add a way of recording terminal output for testing
Simon Glass [Sat, 6 Sep 2014 01:00:06 +0000 (19:00 -0600)]
patman: Add a way of recording terminal output for testing

When running unit tests we don't want output to go to the terminal.
Provide a way of collecting it so that it can be examined by test code
later.

Signed-off-by: Simon Glass <sjg@chromium.org>
10 years agopatman: Fix detection of git version
Simon Glass [Thu, 28 Aug 2014 15:43:45 +0000 (09:43 -0600)]
patman: Fix detection of git version

A missing 'global' declaration means that this feature does not currently
work. Fix it.

Signed-off-by: Simon Glass <sjg@chromium.org>
10 years agobuildman: Separate out display of warnings and errors
Simon Glass [Thu, 28 Aug 2014 15:43:44 +0000 (09:43 -0600)]
buildman: Separate out display of warnings and errors

Some boards unfortunately build with warnings and it is useful to be able
to easily distinguish the warnings from the errors.

Use a simple pattern match to categorise gcc output into warnings and
errors, and display each separately. New warnings are shown in magenta (with
a w+ prefix) and fixed warnings are shown in yellow with a w- prefix.

Signed-off-by: Simon Glass <sjg@chromium.org>
10 years agobuildman: Add an option to show which boards caused which errors
Simon Glass [Thu, 28 Aug 2014 15:43:43 +0000 (09:43 -0600)]
buildman: Add an option to show which boards caused which errors

Add a -l option to display a list of offending boards against each
error/warning line. The information will be shown in brackets as below:

02: wip
   sandbox: +   sandbox
       arm: +   seaboard
+(sandbox) arch/sandbox/cpu/cpu.c: In function 'timer_get_us':
+(sandbox) arch/sandbox/cpu/cpu.c:40:9: warning: unused variable 'i' [-Wunused-variable]
+(seaboard) board/nvidia/seaboard/seaboard.c: In function 'pin_mux_mmc':
+(seaboard) board/nvidia/seaboard/seaboard.c:36:9: warning: unused variable 'fred' [-Wunused-variable]
+(seaboard)      int fred;
+(seaboard)          ^

Signed-off-by: Simon Glass <sjg@chromium.org>
10 years agobuildman: Remove the directory prefix from each error line
Simon Glass [Thu, 28 Aug 2014 15:43:42 +0000 (09:43 -0600)]
buildman: Remove the directory prefix from each error line

The full path is long and also includes buildman private directories.
Clean this up, so that only a relative U-Boot path is shown.

This will change warnings like these:

/home/sjg/c/src/third_party/u-boot/buildman5/.bm-work/00/arch/sandbox/cpu/cpu.c: In function 'timer_get_us':
/home/sjg/c/src/third_party/u-boot/buildman5/.bm-work/00/arch/sandbox/cpu/cpu.c:40:9: warning: unused variable 'i' [-Wunused-variable]

/home/sjg/c/src/third_party/u-boot/files/arch/sandbox/cpu/cpu.c: In function 'timer_get_us':
/home/sjg/c/src/third_party/u-boot/files/arch/sandbox/cpu/cpu.c:40:9: warning: unused variable 'i' [-Wunused-variable]

to:

arch/sandbox/cpu/cpu.c: In function 'timer_get_us':
arch/sandbox/cpu/cpu.c:40:9: warning: unused variable 'i' [-Wunused-variable]

Signed-off-by: Simon Glass <sjg@chromium.org>
10 years agobuildman: Implement an option to exclude boards from the build
Simon Glass [Thu, 28 Aug 2014 15:43:41 +0000 (09:43 -0600)]
buildman: Implement an option to exclude boards from the build

Some boards are known to be broken and it is convenient to be able to
exclude them from the build.

Add an --exclude option to specific boards to exclude. This uses the
same matching rules as the normal 'include' arguments, and is a comma-
separated list of regular expressions.

Suggested-by: York Sun <yorksun@freescale.com>
Signed-off-by: Simon Glass <sjg@chromium.org>
10 years agobuildman: Allow make-flags variables to include '-' and '_'
Simon Glass [Thu, 28 Aug 2014 15:43:40 +0000 (09:43 -0600)]
buildman: Allow make-flags variables to include '-' and '_'

These characters are commonly used in variables, so permit them. Also
document the permitted characters.

Reported-by: Tom Rini <trini@ti.com>
Signed-off-by: Simon Glass <sjg@chromium.org>
10 years agobuildman: Set the return code to indicate build result
Simon Glass [Thu, 28 Aug 2014 15:43:39 +0000 (09:43 -0600)]
buildman: Set the return code to indicate build result

When buildman finds errors/warnings when building, set the return code to
indicate this.

Suggested-by: York Sun <yorksun@freescale.com>
Signed-off-by: Simon Glass <sjg@chromium.org>
10 years agopatman: Avoid changing the order of tags
Simon Glass [Thu, 28 Aug 2014 15:43:38 +0000 (09:43 -0600)]
patman: Avoid changing the order of tags

patman collects tags that it sees in the commit and places them nicely
sorted at the end of the patch. However, this is not really necessary and
in fact is apparently not desirable.

Suggested-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
Signed-off-by: Simon Glass <sjg@chromium.org>
Tested-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
10 years agopatman: Use --no-pager' to stop git from forking a pager
Simon Glass [Thu, 28 Aug 2014 15:43:37 +0000 (09:43 -0600)]
patman: Use --no-pager' to stop git from forking a pager

In a headless environment the pager can apparently hang. We don't want a
pager anyway so let's request that none be used.

Reported-by: Tom Rini <trini@ti.com>
Signed-off-by: Simon Glass <sjg@chromium.org>
10 years agopatman: Remove the -a option
Simon Glass [Thu, 28 Aug 2014 15:43:36 +0000 (09:43 -0600)]
patman: Remove the -a option

It seems that this is no longer needed, since checkpatch.pl will catch
whitespace problems in patches. Also the option is not widely used, so
it seems safe to just remove it.

Suggested-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
Signed-off-by: Simon Glass <sjg@chromium.org>
10 years agopatman: Correct unit tests to run correctly
Simon Glass [Thu, 28 Aug 2014 15:43:35 +0000 (09:43 -0600)]
patman: Correct unit tests to run correctly

It seems that doctest behaves differently now, and some of the unit tests
do not run. Adjust the tests to work correctly.

 ./tools/patman/patman --test
<unittest.result.TestResult run=10 errors=0 failures=0>

Signed-off-by: Simon Glass <sjg@chromium.org>
10 years agopatman: Fix indentation in terminal.py
Simon Glass [Thu, 28 Aug 2014 15:43:34 +0000 (09:43 -0600)]
patman: Fix indentation in terminal.py

This code came from a different project with 2-character indentation. Fix
it for U-Boot.

Signed-off-by: Simon Glass <sjg@chromium.org>
10 years agoPrepare v2014.10-rc2 v2014.10-rc2
Tom Rini [Tue, 2 Sep 2014 20:58:29 +0000 (16:58 -0400)]
Prepare v2014.10-rc2

Signed-off-by: Tom Rini <trini@ti.com>
10 years agoMerge git://git.denx.de/u-boot-usb
Tom Rini [Tue, 2 Sep 2014 20:37:57 +0000 (16:37 -0400)]
Merge git://git.denx.de/u-boot-usb

10 years agoMerge branch 'master' of git://git.denx.de/u-boot-arc
Tom Rini [Tue, 2 Sep 2014 20:37:17 +0000 (16:37 -0400)]
Merge branch 'master' of git://git.denx.de/u-boot-arc

10 years agoUSB: gadget: s3c: get rid of debug compile warning
Bo Shen [Wed, 27 Aug 2014 09:28:18 +0000 (17:28 +0800)]
USB: gadget: s3c: get rid of debug compile warning

When enable debug option to compile, it will give the following
warning, this patch is used to get rid of it.
--->8---
warning: 'flags' is used uninitialized in this function [-Wuninitialized]
---8<---

Signed-off-by: Bo Shen <voice.shen@atmel.com>
10 years agoUSB: gadget: atmel: get rid of debug compile warning
Bo Shen [Wed, 27 Aug 2014 09:28:17 +0000 (17:28 +0800)]
USB: gadget: atmel: get rid of debug compile warning

When enable debug option to compile, it will give the following
warning, this patch is used to get rid of it.
--->8---
warning: 'flags' is used uninitialized in this function [-Wuninitialized]
---8<---

Signed-off-by: Bo Shen <voice.shen@atmel.com>
10 years agousb: ci_udc: implement dfu_usb_get_reset
Stephen Warren [Mon, 25 Aug 2014 20:02:15 +0000 (14:02 -0600)]
usb: ci_udc: implement dfu_usb_get_reset

This allows the USB code to determine whether a USB bus reset was issued,
which in turn allows the code to differentiate between a detach (return
to shell prompt) and a board reset/reboot request.

Signed-off-by: Stephen Warren <swarren@nvidia.com>
10 years agoudc: dfu: s3c_udc: Provide function to check if USB reset was asserted
Lukasz Majewski [Mon, 25 Aug 2014 09:07:29 +0000 (11:07 +0200)]
udc: dfu: s3c_udc: Provide function to check if USB reset was asserted

New dfu_usb_get_reset() method is necessary to distinct two different
use cases of dfu-util program.
This method checks if the USB bus reset has been really performed after
DFU DETACH.

Without this function the previous DFU behavior is preserved.

Signed-off-by: Lukasz Majewski <l.majewski@samsung.com>
10 years agodfu: Provide means to find difference between dfu-util -e and -R
Lukasz Majewski [Mon, 25 Aug 2014 09:07:28 +0000 (11:07 +0200)]
dfu: Provide means to find difference between dfu-util -e and -R

This commit provides distinction between DFU device detach and reset.
The -R behavior is preserved with proper handling of the dfu-util's -e
switch, which detach the DFU device.

By running dfu-util -e; one can force device to finish the execution of
dfu command on target and execute some other scripted commands.

Moreover, some naming has been changed - the dfu_reset() method now is known
as dfu_detach(). New name better reflects the purpose of the code.

It was also necessary to increase the number of usb_gadget_handle_interrupts()
calls since we also must wait for detection of the USB reset event.

Example usage:
1. -e (detach) switch
 dfu-util -a0 -D file1.bin;dfu-util -a3 -D uImage;dfu-util -e

 access to u-boot prompt.

2. -R (reset) switch
 dfu-util -a0 -D file1.bin;dfu-util -R -a3 -D uImage

 target board reset

Signed-off-by: Lukasz Majewski <l.majewski@samsung.com>
Reviewed-by: Stephen Warren <swarren@nvidia.com>
Tested-by: Stephen Warren <swarren@nvidia.com>
10 years agoMerge git://git.denx.de/u-boot-dm
Tom Rini [Tue, 2 Sep 2014 12:22:26 +0000 (08:22 -0400)]
Merge git://git.denx.de/u-boot-dm

10 years agompc5xxx: Add stub implementation of cache functions
Vasili Galka [Tue, 26 Aug 2014 11:05:31 +0000 (14:05 +0300)]
mpc5xxx: Add stub implementation of cache functions

Some drivers (e.g. net/e1000) reference these functions. So, this
fixes the build of MVBC_P board.

I'm not familiar with the MPC5xxx platform, maybe a full
implementation shall be implemented instead of this stub in the
future.

Signed-off-by: Vasili Galka <vvv444@gmail.com>
Cc: Wolfgang Denk <wd@denx.de>, Marek Vasut <marex@denx.de>
Acked-by: Wolfgang Denk <wd@denx.de>
10 years agodm: sandbox: dts: Add a GPIO bank
Simon Glass [Mon, 11 Aug 2014 15:24:03 +0000 (09:24 -0600)]
dm: sandbox: dts: Add a GPIO bank

Add a bank of GPIOs for sandbox which can be used for testing this
functionality.

Signed-off-by: Simon Glass <sjg@chromium.org>
10 years agodm: gpio: Allow gpio command to adjust GPIOs that are busy
Simon Glass [Mon, 11 Aug 2014 15:23:53 +0000 (09:23 -0600)]
dm: gpio: Allow gpio command to adjust GPIOs that are busy

The gpio command mostly relies on gpio_request() and gpio_free() being
nops, in that you can request a GPIO twice. With driver model this is
now implemented correctly, so it fails.

Change the command to deal with a failure to claim the GPIO.

Signed-off-by: Simon Glass <sjg@chromium.org>
10 years agodm: gpio: Enhance gpio command to show only active GPIOs
Simon Glass [Mon, 11 Aug 2014 15:23:52 +0000 (09:23 -0600)]
dm: gpio: Enhance gpio command to show only active GPIOs

The GPIO list is very long in many cases and most of them are not used.
By default, show only the GPIOs that are in use, and provide a flag to show
all of them. This makes the 'gpio status' command much more pleasant.

In order to do this, driver model now exposes a method for obtaining the
'function' of a GPIO, which describes whether it is an input or output, for
example. Implementation of this method is optional.

Signed-off-by: Simon Glass <sjg@chromium.org>
10 years agomx6: tqma6: get board support back to Kconfig build system
Masahiro Yamada [Sun, 31 Aug 2014 15:47:55 +0000 (00:47 +0900)]
mx6: tqma6: get board support back to Kconfig build system

The QS Systems TQMa6 board support was added by commit cb07d74e
and lost by commit e82abaeb.

Commit e82abaeb merged the IMX branch based on pre-Kconfig
and the mainline based on post-Kconfig, simply deleting
the boards.cfg file.  As a result, some boards added just before
the merge were lost.

This commit adds Kconfig, defconfig, MAINTAINERS for TQMa6 board
to work on the Kconfig infrastructure.

Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
Cc: Markus Niebel <Markus.Niebel@tq-group.com>
Cc: Stefano Babic <sbabic@denx.de>
10 years agoMerge branch 'master' of git://git.denx.de/u-boot-nios
Tom Rini [Sun, 31 Aug 2014 11:45:55 +0000 (07:45 -0400)]
Merge branch 'master' of git://git.denx.de/u-boot-nios

10 years agonomadik: kconfig: move board select menu and common settings
Masahiro Yamada [Sat, 30 Aug 2014 22:11:08 +0000 (07:11 +0900)]
nomadik: kconfig: move board select menu and common settings

Becuase the board select menu in arch/arm/Kconfig is too big,
move the Nomadik board select menu to nomadik/Kconfig.

Move also common settings (CONFIG_SYS_CPU="arm926ejs" and
CONFIG_SYS_SOC="nomadik").

Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
10 years agohighbank: kconfig: move common settings
Masahiro Yamada [Sat, 30 Aug 2014 22:11:07 +0000 (07:11 +0900)]
highbank: kconfig: move common settings

Move Highbank-specific settings to highbank/Kconfig.

Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
Cc: Rob Herring <robh@kernel.org>
10 years agoorion5x: kconfig: move board select menu and common settings
Masahiro Yamada [Sat, 30 Aug 2014 22:11:06 +0000 (07:11 +0900)]
orion5x: kconfig: move board select menu and common settings

Becuase the board select menu in arch/arm/Kconfig is too big,
move the Orion5x board select menu to orion5x/Kconfig.

Move also common settings (CONFIG_SYS_CPU="arm926ejs" and
CONFIG_SYS_SOC="orion5x").

Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
Cc: Albert ARIBAUD <albert.u.boot@aribaud.net>
10 years agokeystone: kconfig: move board select menu and common settings
Masahiro Yamada [Sat, 30 Aug 2014 22:11:05 +0000 (07:11 +0900)]
keystone: kconfig: move board select menu and common settings

Becuase the board select menu in arch/arm/Kconfig is too big,
move the Keystone board select menu to keystone/Kconfig.

Move also common settings (CONFIG_SYS_CPU="armv7" and
CONFIG_SYS_SOC="keystone").

Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
Reviewed-by: Tom Rini <trini@ti.com>
Cc: Vitaly Andrianov <vitalya@ti.com>
10 years agoomap5: kconfig: move board select menu and common settings
Masahiro Yamada [Sat, 30 Aug 2014 22:11:04 +0000 (07:11 +0900)]
omap5: kconfig: move board select menu and common settings

Becuase the board select menu in arch/arm/Kconfig is too big,
move the OMAP5 board select menu to omap5/Kconfig.

Move also common settings (CONFIG_SYS_CPU="armv7" and
CONFIG_SYS_SOC="omap5").

Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
Reviewed-by: Tom Rini <trini@ti.com>
Cc: Lokesh Vutla <lokeshvutla@ti.com>
10 years agoomap4: kconfig: move board select menu and common settings
Masahiro Yamada [Sat, 30 Aug 2014 22:11:03 +0000 (07:11 +0900)]
omap4: kconfig: move board select menu and common settings

Becuase the board select menu in arch/arm/Kconfig is too big,
move the OMAP4 board select menu to omap4/Kconfig.

Move also common settings (CONFIG_SYS_CPU="armv7" and
CONFIG_SYS_SOC="omap4").

Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
Reviewed-by: Tom Rini <trini@ti.com>
Cc: Lokesh Vutla <lokeshvutla@ti.com>
10 years agoomap3: kconfig: move board select menu and common settings
Masahiro Yamada [Sat, 30 Aug 2014 22:11:02 +0000 (07:11 +0900)]
omap3: kconfig: move board select menu and common settings

Becuase the board select menu in arch/arm/Kconfig is too big,
move the OMAP3 board select menu to omap3/Kconfig.

Move also common settings (CONFIG_SYS_CPU="armv7" and
CONFIG_SYS_SOC="omap3

Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
Reviewed-by: Tom Rini <trini@ti.com>
10 years agodavinci: kconfig: move board select menu and common settings
Masahiro Yamada [Sat, 30 Aug 2014 22:11:01 +0000 (07:11 +0900)]
davinci: kconfig: move board select menu and common settings

Becuase the board select menu in arch/arm/Kconfig is too big,
move the Davinci board select menu to davinci/Kconfig.

Move also common settings (CONFIG_SYS_CPU="arm926ejs" and
CONFIG_SYS_SOC="davinci").

Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
Reviewed-by: Tom Rini <trini@ti.com>
Cc: Heiko Schocher <hs@denx.de>
Cc: Sandeep Paulraj <s-paulraj@ti.com>
10 years agoexynos: kconfig: move board select menu and common settings
Masahiro Yamada [Sat, 30 Aug 2014 22:11:00 +0000 (07:11 +0900)]
exynos: kconfig: move board select menu and common settings

Becuase the board select menu in arch/arm/Kconfig is too big,
move the Exynos board select menu to exynos/Kconfig.

Consolidate also common settings (CONFIG_SYS_CPU="armv7" and
CONFIG_SYS_SOC="exynos").

Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
Acked-by: Minkyu Kang <mk7.kang@samsung.com>
10 years agokirkwood: kconfig: refactor Kconfig and defconfig
Masahiro Yamada [Sat, 30 Aug 2014 22:10:59 +0000 (07:10 +0900)]
kirkwood: kconfig: refactor Kconfig and defconfig

Becuase the board select menu in arch/arm/Kconfig is too big,
move the KirkWood board select menu to kirkwood/Kconfig.

Consolidate also common settings (CONFIG_SYS_CPU="arm926ejs" and
CONFIG_SYS_SOC="kirkwood").

Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
Acked-by: Prafulla Wadasdkar <prafulla@marvell.com>
Cc: Luka Perkov <luka@openwrt.org>
10 years agoversatile: kconfig: move common settings
Masahiro Yamada [Sat, 30 Aug 2014 22:10:58 +0000 (07:10 +0900)]
versatile: kconfig: move common settings

Move Versatile-specific settings to versatile/Kconfig.

Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
10 years agormobile: kconfig: move board select menu and common settings
Masahiro Yamada [Sat, 30 Aug 2014 22:10:57 +0000 (07:10 +0900)]
rmobile: kconfig: move board select menu and common settings

Becuase the board select menu in arch/arm/Kconfig is too big,
move the Rmobile board select menu to rmobile/Kconfig.

Consolidate also common settings (CONFIG_SYS_CPU="armv7" and
CONFIG_SYS_SOC="rmobile").

Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
Cc: Nobuhiro Iwamatsu <nobuhiro.iwamatsu.yj@renesas.com>
10 years agotegra: kconfig: move board select menu and common settings
Masahiro Yamada [Sat, 30 Aug 2014 22:10:56 +0000 (07:10 +0900)]
tegra: kconfig: move board select menu and common settings

Becuase the board select menu in arch/arm/Kconfig is too big,
move the Tegra board select menu to tegra/Kconfig.

Insert the Tegra SoC select menu between the arch select and the
board select.

 Architecture select
 |-- Tegra Platform (Tegra)
     |- Tegra SoC select (Tegra20 / 30 / 114 / 124)
        |- Board select

Consolidate also common settings (CONFIG_SYS_CPU="armv7" and
CONFIG_SYS_SOC="tegra*") and always "select" CONFIG_SPL as follows:

  config TEGRA
          bool
          select SPL

Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
Acked-by: Stephen Warren <swarren@nvidia.com>
Cc: Tom Warren <twarren@nvidia.com>
10 years agozynq: kconfig: move board select menu and common settings
Masahiro Yamada [Sat, 30 Aug 2014 22:10:55 +0000 (07:10 +0900)]
zynq: kconfig: move board select menu and common settings

Becuase the board select menu in arch/arm/Kconfig is too big,
move the Zynq board select menu to zynq/Kconfig.

Consolidate also common settings (CONFIG_SYS_CPU="armv7" and
CONFIG_SYS_SOC="zynq").

Refactor board/xilinx/zynq/MAINTAINERS too.

Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
Tested-by: Michal Simek <michal.simek@xilinx.com>
10 years agoarm: Add missing .vectors section to linker scripts
Benoît Thébaudeau [Thu, 21 Aug 2014 13:43:11 +0000 (15:43 +0200)]
arm: Add missing .vectors section to linker scripts

Commit 41623c9 'arm: move exception handling out of start.S files' missed some
linker scripts. Hence, some boards no longer had exception handling linked since
this commit. Restore the original behavior by adding the .vectors section to
these linker scripts.

Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau.dev@gmail.com>
Cc: Albert ARIBAUD <albert.u.boot@aribaud.net>
10 years agoarm/km: disable subpage write for km_kirkwood_pci and kmsuv31 target
Holger Brunck [Fri, 15 Aug 2014 08:51:48 +0000 (10:51 +0200)]
arm/km: disable subpage write for km_kirkwood_pci and kmsuv31 target

Newer FLASH types used on these boards don't allow writing of subpages.
So disable subpage write in the NAND driver. Additionally we need to
tell the UBI layer in the kernel that he also should only write 2048
bytes. This is done with an additional command line parameter for the
kernel commandline.

Signed-off-by: Holger Brunck <holger.brunck@keymile.com>
cc: Valentin Longchamp <valentin.longchamp@keymile.com>
cc: Prafulla Wadaskar <prafulla@marvell.com>

10 years agoarm/kirkwood/nand: allow forced disabling for subpage writes
Holger Brunck [Fri, 15 Aug 2014 08:51:47 +0000 (10:51 +0200)]
arm/kirkwood/nand: allow forced disabling for subpage writes

Make it configurable to disable subpage writes like the DaVinci NAND
driver already does.

Signed-off-by: Holger Brunck <holger.brunck@keymile.com>
cc: Valentin Longchamp <valentin.longchamp@keymile.com>
cc: Prafulla Wadaskar <prafulla@marvell.com>
cc: Scott Wood <scottwood@freescale.com>

10 years agovexpress_aemv8a.h: Enable CONFIG_CMD_BOOTI and CONFIG_CMD_UNZIP
Tom Rini [Thu, 14 Aug 2014 10:42:38 +0000 (06:42 -0400)]
vexpress_aemv8a.h: Enable CONFIG_CMD_BOOTI and CONFIG_CMD_UNZIP

Add support for booting Images and for unzipping Image.gz files.

Signed-off-by: Tom Rini <trini@ti.com>
10 years agovexpress_aemv8a.h: Clean up the config
Tom Rini [Thu, 14 Aug 2014 10:42:37 +0000 (06:42 -0400)]
vexpress_aemv8a.h: Clean up the config

- Drop DEBUG
- Drop defines we can use the default of.
- Provide a larger malloc pool.
- Correct default locations for kernel / initrd / device tree

Signed-off-by: Tom Rini <trini@ti.com>
10 years agocmd_bootm.c: Add 'booti' for ARM64 Linux kernel Images
Tom Rini [Thu, 14 Aug 2014 10:42:36 +0000 (06:42 -0400)]
cmd_bootm.c: Add 'booti' for ARM64 Linux kernel Images

The default format for arm64 Linux kernels is the "Image" format,
described in Documentation/arm64/booting.txt.  This, along with an
optional gzip compression on top is all that is generated by default.
The Image format has a magic number within the header for verification,
a text_offset where the Image must be run from, an image_size that
includes the BSS and reserved fields.

This does not support automatic detection of a gzip compressed image.

Signed-off-by: Tom Rini <trini@ti.com>
10 years agoarm64: Correct passing of Linux kernel args
Tom Rini [Thu, 14 Aug 2014 10:42:35 +0000 (06:42 -0400)]
arm64: Correct passing of Linux kernel args

The Documentation/arm64/booting.txt document says that pass in x1/x2/x3
as 0 as they are reserved for future use.

Signed-off-by: Tom Rini <trini@ti.com>
10 years agoarm: convert Cygnus and NSP boards to Kconfig
Steve Rae [Mon, 11 Aug 2014 20:58:26 +0000 (13:58 -0700)]
arm: convert Cygnus and NSP boards to Kconfig

Convert the bcm958300k and the bcm958622hr boards from "boards.cfg" to Kconfig.

Signed-off-by: Steve Rae <srae@broadcom.com>
10 years agoarm: add Cygnus and NSP boards
Scott Branden [Mon, 11 Aug 2014 20:58:25 +0000 (13:58 -0700)]
arm: add Cygnus and NSP boards

The bcm_ep board configuration is used by a number of boards
including Cygnus and NSP.
Add builds for the bcm958300k and the bcm958622hr boards.

Signed-off-by: Scott Branden <sbranden@broadcom.com>
Signed-off-by: Steve Rae <srae@broadcom.com>
10 years agoarm: bcmnsp: Add bcmnsp u-architecture
Scott Branden [Mon, 11 Aug 2014 20:58:24 +0000 (13:58 -0700)]
arm: bcmnsp: Add bcmnsp u-architecture

Base support for the Broadcom NSP SoC.
Based on iproc-common and the SoC specific reset function.

Signed-off-by: Scott Branden <sbranden@broadcom.com>
Signed-off-by: Steve Rae <srae@broadcom.com>
10 years agoarm: bcmcygnus: Add bcmcygnus u-architecture
Scott Branden [Mon, 11 Aug 2014 20:58:23 +0000 (13:58 -0700)]
arm: bcmcygnus: Add bcmcygnus u-architecture

Base support for the Broadcom Cygnus SoC.
Based on iproc-common and the SoC specific reset function.

Signed-off-by: Scott Branden <sbranden@broadcom.com>
Signed-off-by: Steve Rae <srae@broadcom.com>
10 years agoarm: iproc: Initial commit of iproc architecture code
Scott Branden [Mon, 11 Aug 2014 20:58:22 +0000 (13:58 -0700)]
arm: iproc: Initial commit of iproc architecture code

The iproc architecture code is present in several Broadcom
chip architectures, including Cygnus and NSP.

Signed-off-by: Scott Branden <sbranden@broadcom.com>
Signed-off-by: Steve Rae <srae@broadcom.com>
10 years agoarm: vf610: add NFC clock support
Stefan Agner [Wed, 6 Aug 2014 08:59:36 +0000 (10:59 +0200)]
arm: vf610: add NFC clock support

Add NFC (NAND Flash Controller) clock support and enable them
at board initialization time.

Signed-off-by: Stefan Agner <stefan@agner.ch>
10 years agoarm: vf610: add NFC pin mux
Stefan Agner [Wed, 6 Aug 2014 08:59:35 +0000 (10:59 +0200)]
arm: vf610: add NFC pin mux

Add pin mux for NAND Flash Controller (NFC). NAND can be connected
using 8 or 16 data lines, this patch adds pin mux entries for all
16 data lines.

Signed-off-by: Stefan Agner <stefan@agner.ch>
10 years agoMAINTAINERS: change the status of vexpress board to Orphan
Masahiro Yamada [Mon, 4 Aug 2014 01:30:32 +0000 (10:30 +0900)]
MAINTAINERS: change the status of vexpress board to Orphan

The email address of Matt Waddel is no longer working.

Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
Cc: Marc Zyngier <marc.zyngier@arm.com>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Alexei Fedorov <alexie.fedorov@arm.com>
10 years agoARM: Fix overflow in MMU setup
Marek Vasut [Sun, 3 Aug 2014 23:45:46 +0000 (01:45 +0200)]
ARM: Fix overflow in MMU setup

The patch fixes a corner case where adding size to DRAM start resulted
in a value (1 << 32), which in turn overflew the u32 computation, which
resulted in 0 and it therefore prevented correct setup of the MMU tables.

The addition of DRAM bank start and it's size can end up right at the end
of the address space in the special case of a machine with enough memory.
To prevent this overflow, shift the start and size separately and add them
only after they were shifted.

Hopefully, we only have systems in tree which have DRAM size aligned to
1MiB boundary. If not, this patch would break such systems. On the other
hand, such system would be broken by design anyway.

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Albert ARIBAUD <albert.u.boot@aribaud.net>
10 years agoarm: bcm281xx: add board with Ethernet capability
Steve Rae [Sat, 2 Aug 2014 03:37:17 +0000 (20:37 -0700)]
arm: bcm281xx: add board with Ethernet capability

Add board which has Broadcom StarFighter2 Ethernet capability.

Signed-off-by: Steve Rae <srae@broadcom.com>
10 years agoarm: bcm281xx: net: Add Ethernet Driver
Jiandong Zheng [Sat, 2 Aug 2014 03:37:16 +0000 (20:37 -0700)]
arm: bcm281xx: net: Add Ethernet Driver

The Broadcom StarFighter2 Ethernet driver is used in multiple Broadcom
SoC(s) and:
- supports multiple MAC blocks,
- provides support for the Broadcom GMAC.
This driver requires MII and PHYLIB.

Signed-off-by: Jiandong Zheng <jdzheng@broadcom.com>
Signed-off-by: Steve Rae <srae@broadcom.com>
10 years agoarm: bcm281xx: Add Ethernet Clock support
Jiandong Zheng [Sat, 2 Aug 2014 03:37:15 +0000 (20:37 -0700)]
arm: bcm281xx: Add Ethernet Clock support

Enable Ethernet clock when Broadcom StarFighter2 Ethernet block
(CONFIG_BCM_SF2_ETH) is enabled.

Signed-off-by: Jiandong Zheng <jdzheng@broadcom.com>
Signed-off-by: Steve Rae <srae@broadcom.com>
10 years agoARM: enable ARMv7 virt support for the Arndale board
Andre Przywara [Fri, 1 Aug 2014 11:35:44 +0000 (13:35 +0200)]
ARM: enable ARMv7 virt support for the Arndale board

To enable hypervisors utilizing the ARMv7 virtualization extension
on the Arndale board, add the simple SMP pen address writer function
and add the required configuration variables to switch all cores to
HYP mode before launching the OS.
This allows booting KVM and Xen directly from u-boot.

Reviewed-by: Christoffer Dall <christoffer.dall@linaro.org>
Signed-off-by: Andre Przywara <andre.przywara@linaro.org>
Signed-off-by: Christoffer Dall <christoffer.dall@linaro.org>
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
10 years agoarm: ep9315: Add .vectors section to lds and remove obsolete lds
Sergey Kostanbaev [Mon, 28 Jul 2014 08:08:01 +0000 (16:08 +0800)]
arm: ep9315: Add .vectors section to lds and remove obsolete lds

However ep9315 don't use
interrupt vectors during startup, but _startup symbol is used inside uboot to
calculate actual monitor size.

Signed-off-by: Sergey Kostanbaev <sergey.kostanbaev@gmail.com>
Cc: albert.u.boot@aribaud.net
10 years agosocfpga: cleanup socfpga_dw_mmc
Pavel Machek [Mon, 21 Jul 2014 11:30:19 +0000 (13:30 +0200)]
socfpga: cleanup socfpga_dw_mmc

Cleanups as suggested by wd on mailing list.

Signed-off-by: Pavel Machek <pavel@denx.de>
Acked-by: Chin Liang See <clsee@altera.com>
10 years agosocfpga: initialize designware ethernet
Pavel Machek [Mon, 14 Jul 2014 12:14:17 +0000 (14:14 +0200)]
socfpga: initialize designware ethernet

Enable initialization fo designware ethernet controller. With this
patch, ethernet works in my configuration, provided I set ethernet
address in the environment.

Signed-off-by: Pavel Machek <pavel@denx.de>
10 years agonios2: rebase nios2-generic board to 3c120 reference design
Thomas Chou [Sat, 30 Aug 2014 09:45:23 +0000 (17:45 +0800)]
nios2: rebase nios2-generic board to 3c120 reference design

Though nios2-generic board meant to be a template, it is helpful
to be able to test on a real hardware. As the nios2 linux is
developed and tested on a 3c120 FPGA based Golden Hardware Reference
Design, it makes sense to rebase nios2-generic on this FPGA design.

Signed-off-by: Thomas Chou <thomas@wytron.com.tw>
10 years agonios2: link to CONFIG_SYS_MONITOR_BASE and remove text_base hook
Thomas Chou [Thu, 28 Aug 2014 09:29:06 +0000 (17:29 +0800)]
nios2: link to CONFIG_SYS_MONITOR_BASE and remove text_base hook

This patch changes the link script to base at CONFIG_SYS_MONITOR_BASE.
Then we can remove the text_base hook in nios2-generic board.

Signed-off-by: Thomas Chou <thomas@wytron.com.tw>
10 years agoserial: move nios2-yanu.h into opencores_yanu driver
Thomas Chou [Mon, 25 Aug 2014 09:43:12 +0000 (17:43 +0800)]
serial: move nios2-yanu.h into opencores_yanu driver

The nios2-yanu.h contains hardware registers and bits of
opencores yanu. As there is no other user of this header
, it should be moved into the driver.

Signed-off-by: Thomas Chou <thomas@wytron.com.tw>
CC: Renato Andreola <renato.andreola@imagos.it>
10 years agonios2: move nios2.h to arch asm directory
Thomas Chou [Mon, 25 Aug 2014 09:09:07 +0000 (17:09 +0800)]
nios2: move nios2.h to arch asm directory

The nios2.h is nios2 cpu specific, and should go arch asm
directory.

Signed-off-by: Thomas Chou <thomas@wytron.com.tw>
10 years agonios2: divide nios2-io.h into each specific drivers and remove it
Thomas Chou [Mon, 25 Aug 2014 08:50:14 +0000 (16:50 +0800)]
nios2: divide nios2-io.h into each specific drivers and remove it

The nios2-io.h defines hardware registers and bits of several FPGA
IP cores. It could be divided in to the specific drivers, including
altera timer, altera sysid, altera uart and altera jtag uart. The
altera pio and altera spi drivers use their own hardware definitions.
The removal of nios2-io.h will help modularity and maintenance.

Signed-off-by: Thomas Chou <thomas@wytron.com.tw>
10 years agonios2: remove epled driver
Thomas Chou [Mon, 25 Aug 2014 07:57:06 +0000 (15:57 +0800)]
nios2: remove epled driver

The epled driver was replaced by altera_pio and gpio_led.

Signed-off-by: Thomas Chou <thomas@wytron.com.tw>
10 years agosocfpga: Fix SOCFPGA build error for Altera dev kit
Chin Liang See [Tue, 22 Jul 2014 09:28:35 +0000 (04:28 -0500)]
socfpga: Fix SOCFPGA build error for Altera dev kit

To fix the build error when build for Altera dev kit, not
virtual target. At same time, set the build for Altera dev
kit as default instead virtual target. With that, U-Boot
is booting well and SPL still lack of few drivers.

Signed-off-by: Chin Liang See <clsee@altera.com>
Cc: Pavel Machek <pavel@denx.de>
Cc: Marek Vasut <marex@denx.de>
Cc: Tom Rini <trini@ti.com>
Cc: Albert Aribaud <albert.u.boot@aribaud.net>
10 years agosocfpga: fix clock manager register definition
Pavel Machek [Sat, 19 Jul 2014 21:57:59 +0000 (23:57 +0200)]
socfpga: fix clock manager register definition

Structure defining clock manager hardware was wrong, leading to
wrong registers being accessed and hang in MMC init.

This fixes structure to match hardware.

Signed-off-by: Pavel Machek <pavel@denx.de>
10 years agoarm: include config.h in arch/arm/lib/vectors.S
Christian Riesch [Mon, 7 Jul 2014 09:07:25 +0000 (11:07 +0200)]
arm: include config.h in arch/arm/lib/vectors.S

config.h is required for CONFIG_SYS_DV_NOR_BOOT_CFG.

Signed-off-by: Christian Riesch <christian.riesch@omicron.at>
Reported-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
Cc: Albert Aribaud <albert.u.boot@aribaud.net>
Cc: Masahiro Yamada <yamada.m@jp.panasonic.com>
Cc: Heiko Schocher <hs@denx.de>
Cc: Sudhakar Rajashekhara <sudhakar.raj@ti.com>
10 years agoARM:asm:io.h use static inline
Jeroen Hofstee [Sun, 22 Jun 2014 21:10:39 +0000 (23:10 +0200)]
ARM:asm:io.h use static inline

When compiling u-boot with W=1 the extern inline void for
read* is likely causing the most noise. gcc / clang will
warn there is never a actual declaration for these functions.
Instead of declaring these extern make them static inline so
it is actually declared.

cc: Albert ARIBAUD <albert.u.boot@aribaud.net>
Signed-off-by: Jeroen Hofstee <jeroen@myspectrum.nl>
10 years agoMerge branch 'master' of git://git.denx.de/u-boot-ti
Tom Rini [Fri, 29 Aug 2014 17:47:42 +0000 (13:47 -0400)]
Merge branch 'master' of git://git.denx.de/u-boot-ti

10 years agoMerge git://git.denx.de/u-boot-usb
Tom Rini [Fri, 29 Aug 2014 15:15:18 +0000 (11:15 -0400)]
Merge git://git.denx.de/u-boot-usb

10 years agoMerge branch 'zynq' of git://www.denx.de/git/u-boot-microblaze
Tom Rini [Fri, 29 Aug 2014 15:07:35 +0000 (11:07 -0400)]
Merge branch 'zynq' of git://denx.de/git/u-boot-microblaze

10 years agoMerge branch 'master' of git://git.denx.de/u-boot-tegra
Tom Rini [Fri, 29 Aug 2014 15:07:10 +0000 (11:07 -0400)]
Merge branch 'master' of git://git.denx.de/u-boot-tegra

10 years agoMerge branch 'master' of git://www.denx.de/git/u-boot-imx
Tom Rini [Fri, 29 Aug 2014 15:06:51 +0000 (11:06 -0400)]
Merge branch 'master' of git://denx.de/git/u-boot-imx

10 years agoMerge branch 'master' of http://git.denx.de/u-boot-sunxi
Tom Rini [Fri, 29 Aug 2014 15:06:26 +0000 (11:06 -0400)]
Merge branch 'master' of git.denx.de/u-boot-sunxi

10 years agousb: hub: don't check CONNECTION in hub_port_reset()
Stephen Warren [Thu, 7 Aug 2014 23:07:59 +0000 (17:07 -0600)]
usb: hub: don't check CONNECTION in hub_port_reset()

One specific USB 3.0 device behaves strangely when reset by
usb_new_device()'s call to hub_port_reset(). For some reason, the device
appears to briefly drop off the bus when this second bus reset is
executed, yet if we retry this loop, it'll eventually come back after
another two resets.

If USB bus reset is executed over and over within usb_new_device()'s call
to hub_port_reset(), I see the following sequence of results, which
repeats as long as you want:

1) STAT_C_CONNECTION = 1 STAT_CONNECTION = 0  USB_PORT_STAT_ENABLE 0
2) STAT_C_CONNECTION = 1 STAT_CONNECTION = 1  USB_PORT_STAT_ENABLE 0
3) STAT_C_CONNECTION = 1 STAT_CONNECTION = 1  USB_PORT_STAT_ENABLE 1

The device in question is a SanDisk Ultra USB 3.0 16GB memory stick with
USB VID/PID 0x0781/0x5581.

In order to allow this device to work with U-Boot, ignore the
{C_,}CONNECTION bits in the status/change registers, and only use the
ENABLE bit to determine if the reset was successful.

To be honest, extensive investigation has failed to determine why this
problem occurs. I'd love to know! I don't know if it's caused by:
* A HW bug in the device
* A HW bug in the Tegra USB controller
* A SW bug in the U-Boot Tegra USB driver
* A SW bug in the U-Boot USB core

This issue only occurs when the device's USB3 pins are attached to the
host; if only the USB2 pins are connected the issue does not occur. The
USB3 controller on Tegra is in reset, so is not actively communicating
with the device at all - a USB3 analyzer confirms this. Slightly
unplugging the device (so the USB3 pins don't contact) or using a USB2
cable or hub as an intermediary avoids the problem. For some reason,
the Linux kernel (either on the same Tegra board, or on an x86 host)
has no issue with the device, and I observe no disconnections during
reset.

This change won't affect any USB device that already works, since such
devices could not currently be triggering the error return this patch
removes, or they wouldn't be working currently.

However, this patch is quite reliable in practice, hence I hope it's
acceptable to solve the problem.

The only potential fallout I can see from this patch is:

* A broken device that triggers C_CONNECTION/!CONNECTION now causes the
  loop in hub_port_reset() to run multiple times. If it never succeeds,
  this will cause "usb start" to take roughly 1s extra to execute.

* If the user unplugs a device while hub_port_reset() is executing, and
  very quickly swaps in a new device, hub_port_reset() might succeed on
  the new device. This would mean that any information cached about the
  original device (from the descriptor read in usb_new_device(), which
  simply caches the max packet size) might be invalid, which would cause
  problems talking to the new device. However, without this change, the
  new device wouldn't work anyway, so this is probably not much of a
  loss.

Signed-off-by: Stephen Warren <swarren@nvidia.com>
10 years agousb: Handle -ENODEV from usb_lowlevel_init()
Marek Vasut [Fri, 1 Aug 2014 01:09:53 +0000 (03:09 +0200)]
usb: Handle -ENODEV from usb_lowlevel_init()

As we support both Host and Device mode operation, an OTG controller
can return -ENODEV on a port which it found to be in Device mode during
Host mode scan for devices. In case -ENODEV is returned, print that the
port is not available and continue instead of screaming a bloody error
message.

Signed-off-by: Marek Vasut <marex@denx.de>