oweals/u-boot.git
9 years agousb: dwc3: linux-compat: Add header for dwc3 linux compatibiltiy
Kishon Vijay Abraham I [Mon, 23 Feb 2015 13:09:57 +0000 (18:39 +0530)]
usb: dwc3: linux-compat: Add header for dwc3 linux compatibiltiy

Added a header file to include various linux specific APIs like
pr_debug, WARN_ WARN_ON_ONCE etc.. in order to avoid compilation
error while building dwc3 driver.

Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Reviewed-by: Lukasz Majewski <l.majewski@samsung.com>
9 years agoarm: asm: dma-mapping: added dma_free_coherent API
Kishon Vijay Abraham I [Mon, 23 Feb 2015 13:09:56 +0000 (18:39 +0530)]
arm: asm: dma-mapping: added dma_free_coherent API

Added dma_free_coherent corresponding to the dma_alloc_coherent in
dma-mapping.h in order to free memory allocated using dma_alloc_coherent.
This API is used in dwc3 driver.

Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Reviewed-by: Lukasz Majewski <l.majewski@samsung.com>
9 years agousb: dwc3: remove pm related operations from dwc3 driver
Kishon Vijay Abraham I [Mon, 23 Feb 2015 13:09:55 +0000 (18:39 +0530)]
usb: dwc3: remove pm related operations from dwc3 driver

Removed all pm related operations including pm_runtime APIs,
suspend/resume hooks as support for these are not present in u-boot.

Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Reviewed-by: Lukasz Majewski <l.majewski@samsung.com>
9 years agousb: dwc3: fix dwc3 header files
Kishon Vijay Abraham I [Mon, 23 Feb 2015 13:09:54 +0000 (18:39 +0530)]
usb: dwc3: fix dwc3 header files

Changed the header files included in core.h and io.h to the u-boot header
files so that these files can be included in other dwc3 source files and
be compiled in uboot. Also added otg.h which has the defines for dr_mode.

Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Reviewed-by: Lukasz Majewski <l.majewski@samsung.com>
9 years agousb: dwc3: remove trace_* APIs from dwc3 driver
Kishon Vijay Abraham I [Mon, 23 Feb 2015 13:09:53 +0000 (18:39 +0530)]
usb: dwc3: remove trace_* APIs from dwc3 driver

Removed most of the trace_* APIs from dwc3 driver since tracepoints are not
supported in u-boot. Replaced some of the trace_* API with dev_dbg/dev/vdbg.

Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Review-by: Lukasz Majewski <l.majewski@samsung.com>
9 years agousb: dwc3: Modify the file headers to u-boot format
Kishon Vijay Abraham I [Mon, 23 Feb 2015 13:09:52 +0000 (18:39 +0530)]
usb: dwc3: Modify the file headers to u-boot format

Modified the file header to the format that is used in u-boot. Also
included in the header, the commit in linux kernel from which each of
these files are added.

Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Reviewed-by: Lukasz Majewski <l.majewski@samsung.com>
9 years agousb: dwc3: remove un-used files from dwc3 folder
Kishon Vijay Abraham I [Mon, 23 Feb 2015 13:09:51 +0000 (18:39 +0530)]
usb: dwc3: remove un-used files from dwc3 folder

removed un-used/un-supported files from dwc3. These files can be added
later as and when the support is added.

Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Reviewed-by: Lukasz Majewski <l.majewski@samsung.com>
9 years agousb: dwc3: add dwc3 folder from linux kernel to u-boot
Kishon Vijay Abraham I [Mon, 23 Feb 2015 13:09:50 +0000 (18:39 +0530)]
usb: dwc3: add dwc3 folder from linux kernel to u-boot

Added dwc3 folder from linux kernel 3.19-rc1 (97bf6af1f9)
to u-boot. This will be adapted to work with u-boot in the
following patches.

Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Reviewed-by: Lukasz Majewski <l.majewski@samsung.com>
9 years agoinclude: asm: dma-mapping: get rid of the compilation warning in udc-core
Kishon Vijay Abraham I [Mon, 23 Feb 2015 13:09:49 +0000 (18:39 +0530)]
include: asm: dma-mapping: get rid of the compilation warning in udc-core

Fixed the following warning here.
"warning: ‘dma_alloc_coherent’ defined but not used" while compiling
udc-core

Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Reviewed-by: Lukasz Majewski <l.majewski@samsung.com>
9 years agousb: gadget: udc: make udc-core compile in u-boot build
Kishon Vijay Abraham I [Mon, 23 Feb 2015 13:09:48 +0000 (18:39 +0530)]
usb: gadget: udc: make udc-core compile in u-boot build

Make udc-core compile in u-boot by removing all linux specific
stuff and having only the bare minimal udc-core required for
usb gadget drivers. Also modified the file header to a format that is
generally being used in u-boot.

Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Reviewed-by: Lukasz Majewski <l.majewski@samsung.com>
9 years agoinclude: usb: modify gadget.h to include udc support
Kishon Vijay Abraham I [Mon, 23 Feb 2015 13:09:47 +0000 (18:39 +0530)]
include: usb: modify gadget.h to include udc support

Made changes in gadget.h that is required after adding udc-core.c
except changes that might break other platforms.

Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Reviewed-by: Lukasz Majewski <l.majewski@samsung.com>
9 years agousb: gadget: udc: add udc-core from linux kernel to u-boot
Kishon Vijay Abraham I [Mon, 23 Feb 2015 13:09:46 +0000 (18:39 +0530)]
usb: gadget: udc: add udc-core from linux kernel to u-boot

Added udc-core.c from linux kernel 3.19-rc1 (97bf6af1f9) to u-boot.
This will be adapted to work with u-boot in the
following patches.
Adding support for udc will help to seamlessly port dwc3 driver from
linux kernel to u-boot (since dwc3 uses udc-core) and it'll also help
to add support for multiple gadget controllers to be functional at the
same time.
All other gadget drivers can also be adapted to use udc-core.

Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Reviewed-by: Lukasz Majewski <l.majewski@samsung.com>
9 years agoARM: AM43xx: Enable clocks for USB OTGSS and USB PHY
Kishon Vijay Abraham I [Mon, 23 Feb 2015 13:09:45 +0000 (18:39 +0530)]
ARM: AM43xx: Enable clocks for USB OTGSS and USB PHY

Enabled clocks for dwc3 controller and USB PHY present in AM43xx.

Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Reviewed-by: Lukasz Majewski <l.majewski@samsung.com>
9 years agoARM: DRA7: Enable clocks for USB OTGSS and USB PHY
Kishon Vijay Abraham I [Mon, 23 Feb 2015 13:09:44 +0000 (18:39 +0530)]
ARM: DRA7: Enable clocks for USB OTGSS and USB PHY

Enabled clocks for dwc3 controller and USB PHY present in DRA7.

Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Reviewed-by: Lukasz Majewski <l.majewski@samsung.com>
9 years agousb: dwc2: retry NAK'd interrupt transfers
Stephen Warren [Sun, 12 Apr 2015 03:52:02 +0000 (21:52 -0600)]
usb: dwc2: retry NAK'd interrupt transfers

IIUC, interrupt transfers are NAK'd by devices until they wish to trigger
an interrupt, and e.g. EHCI controllers retry these in HW until they are
ACK'd. However, DWC2 doesn't seem to retry, so we need to do this in SW.
In practice, I've seen DWC2_HCINT_FRMOVRUN happen too. I'm not quite sure
what this error implies; perhaps it's related to how near the end of a
USB frame we're at when the interrupt transfer is initiated? Anyway,
retrying this temporary error seems to be necessary too.

With all these commits applied, both my USB keyboards (one LS Lenovo and
one FS Dell) work correctly when there is no USB hub between the SoC and
the keyboard; We still need split transactions to be implemented for hubs
to work.

Signed-off-by: Stephen Warren <swarren@wwwdotorg.org>
9 years agousb: dwc2: implement interrupt transfers
Stephen Warren [Sat, 11 Apr 2015 03:05:22 +0000 (21:05 -0600)]
usb: dwc2: implement interrupt transfers

As best I can tell, there's no difference between bulk and interrupt
transfers in terms of how the HW should be programmed, at least given
that we're executing one transaction at a time rather than scheduling
them into frames for maximum throughput.

This patch ends up sharing the toggle bit state between bulk and
interrupt transfers on a particular EP. However I believe this is fine;
AFAIK a given EP either uses bulk or interrupt transfers and doesn't mix
them.

This patch doesn't do anything with the "interval" parameter for
interrupt transfers, but then most other USB controller drivers in U-Boot
don't either.

It turns out that one of my keyboards is happy to work using control
transfers but the other only gives non-zero "HID reports" via interrupt
transfers.

Signed-off-by: Stephen Warren <swarren@wwwdotorg.org>
9 years agousb: dwc2: correctly program hcchar for LS devices
Stephen Warren [Sat, 11 Apr 2015 03:05:21 +0000 (21:05 -0600)]
usb: dwc2: correctly program hcchar for LS devices

A bit must be set in HCCHAR when communicating with low-speed devices.
I have no idea why there's no corresponding bit to distinguish between
full-speed and high-speed devices, but no matter; they all work now!

Signed-off-by: Stephen Warren <swarren@wwwdotorg.org>
9 years agoARM: bcm2835: use phys_to_bus() for mbox
Stephen Warren [Tue, 7 Apr 2015 02:28:39 +0000 (20:28 -0600)]
ARM: bcm2835: use phys_to_bus() for mbox

When we communicate with the VideoCore to perform property mailbox
transactions, that is a DMA operation as far as the property buffer
is concerned. Use phys_to_bus() on that buffer.

Signed-off-by: Stephen Warren <swarren@wwwdotorg.org>
9 years agousb: dwc2: detect device speed correctly
Stephen Warren [Sat, 28 Mar 2015 03:55:38 +0000 (21:55 -0600)]
usb: dwc2: detect device speed correctly

This doesn't make my LS keyboard work any better, but it does at least
report the correct speed in "usb tree".

Signed-off-by: Stephen Warren <swarren@wwwdotorg.org>
9 years agousb: dwc2: use phys_to_bus/bus_to_phys
Stephen Warren [Wed, 25 Mar 2015 02:07:35 +0000 (20:07 -0600)]
usb: dwc2: use phys_to_bus/bus_to_phys

Use of these APIs is required on the Raspberry Pi. With this change, USB
on RPi1 should be more reliable, and USB on the RPi2 will start working.

Signed-off-by: Stephen Warren <swarren@wwwdotorg.org>
9 years agoARM: bcm2835: implement phys_to_bus/bus_to_phys
Stephen Warren [Wed, 25 Mar 2015 02:07:34 +0000 (20:07 -0600)]
ARM: bcm2835: implement phys_to_bus/bus_to_phys

The BCM283[56] contain both a L1 and L2 cache between the GPU (a/k/a
VideoCore CPU?) and DRAM. DMA-capable peripherals can also optionally
access DRAM via this same  L2 cache (although they always bypass the L1
cache). Peripherals select whether to use or bypass the cache via the
top two bits of the bus address.

An IOMMU exists between the ARM CPU and the rest of the system. This
controls whether the ARM CPU's accesses use or bypass the L1 and/or L2
cache. This IOMMU is configured/controlled exclusively by the VideoCore
CPU.

In order for DRAM accesses made by the ARM core to be coherent with
accesses made by other DMA peripherals, we must program a bus address
into those peripherals that causes the peripheral's accesses to use the
same set of caches that the ARM core's accesses will use.

On the RPi1, the VideoCore firmware sets up the IOMMU to enable use of
the L2 cache. This corresponds to addresses based at 0x40000000.

On the RPi2, the VideoCore firmware sets up the IOMMU to disable use of
the L2 cache. This corresponds to addresses based at 0xc0000000.

This patch implements U-Boot's phys_to_bus/bus_to_phys APIs according
to those rules.

For full details of this setup, please see Dom Cobley's description at:
http://lists.denx.de/pipermail/u-boot/2015-March/208201.html
http://permalink.gmane.org/gmane.comp.boot-loaders.u-boot/215038
https://www.mail-archive.com/u-boot@lists.denx.de/msg166568.html

Signed-off-by: Stephen Warren <swarren@wwwdotorg.org>
9 years agoCreate API to map between CPU physical and bus addresses
Stephen Warren [Wed, 25 Mar 2015 02:07:33 +0000 (20:07 -0600)]
Create API to map between CPU physical and bus addresses

On some SoCs, DMA-capable peripherals see a different address space to
the CPU's physical address space. Create an API to allow platform-agnostic
drivers to convert between the two address spaces when programming DMA
operations.

This API will exist on all platforms, but will have a dummy implementation
when this feature is not required. Other platforms will enable
CONFIG_PHYS_TO_BUS and provide the required implementation.

Signed-off-by: Stephen Warren <swarren@wwwdotorg.org>
9 years agousb: dwc2: fix bulk transfers
Stephen Warren [Tue, 24 Mar 2015 05:01:01 +0000 (23:01 -0600)]
usb: dwc2: fix bulk transfers

When I created wait_for_chhltd(), I noticed that some instances of the
code it replaced expected the ACK bit to be set and others didn't. I
assumed this was an accidental inconsistency in the code, so wrote
wait_for_chhltd() to always expect ACK to be set. This code appeared to
work correctly for both enumeration of USB keyboards and operation of
USB Ethernet devices. However, this change broke USB Mass Storage (at
least my USB SD card reader). This change reverts to exactly the
original behaviour. I'm not sure why the ACK bit isn't always set
(perhaps a quirk in the USB HW or DWC2 controller), but the code works
this way!

Fixes: 5be4ca7d6ac8 ("usb: dwc2: unify waiting for transfer completion")
Signed-off-by: Stephen Warren <swarren@wwwdotorg.org>
9 years agousb: dwc2: remove restriction on buffer length
Stephen Warren [Sun, 8 Mar 2015 17:08:14 +0000 (11:08 -0600)]
usb: dwc2: remove restriction on buffer length

Each USB transfer is split up into chunks that are held in an aligned
buffer. This imposes a limit on the size of each chunk, but no limit on
the total size of transferred data. Fix the logic in chunk_msg() not to
reject large transfers, but simply take the size of the aligned buffer
into account when calculating the chunk size.

Signed-off-by: Stephen Warren <swarren@wwwdotorg.org>
9 years agousb: dwc2: fix aligned buffer usage
Stephen Warren [Sun, 8 Mar 2015 17:08:13 +0000 (11:08 -0600)]
usb: dwc2: fix aligned buffer usage

The original aligned_buffer usage:
a) Uselessly copied data into the aligned buffer even for IN
   transactions. Fix this my making the copy conditional.
b) Always programmed the HW to transfer to/from the start of the aligned
   buffer. This worked fine for OUT transactions since the memcpy copied
   the OUT data to this location too. However, for large IN transactions,
   since the copy from the aligned buffer to the "client" buffer was
   deferred until after all chunks were transferred. it resulted in each
   chunk's transfer over-writing the data for the first transfer. Fix
   this by copying IN data as soon as it's received.

Signed-off-by: Stephen Warren <swarren@wwwdotorg.org>
9 years agousb: dwc2: simplify wait_for_chhltd
Stephen Warren [Sun, 8 Mar 2015 05:48:55 +0000 (22:48 -0700)]
usb: dwc2: simplify wait_for_chhltd

toggle is never NULL. Simplify the code by removing handling of when it
is NULL.

Signed-off-by: Stephen Warren <swarren@wwwdotorg.org>
9 years agousb: dwc2: remove control_data_toggle[]
Stephen Warren [Sun, 8 Mar 2015 05:48:54 +0000 (22:48 -0700)]
usb: dwc2: remove control_data_toggle[]

The control data toggle resets to DATA1 at the start of the data phase
of every setup transaction. We don't need a global variable to store
the value; we can just store it on the stack.

Signed-off-by: Stephen Warren <swarren@wwwdotorg.org>
9 years agousb: dwc2: usb chunk_msg() for control transfers too
Stephen Warren [Sun, 8 Mar 2015 05:48:53 +0000 (22:48 -0700)]
usb: dwc2: usb chunk_msg() for control transfers too

This removes duplicated code.

Signed-off-by: Stephen Warren <swarren@wwwdotorg.org>
9 years agousb: dwc2: refactor submit_bulk_msg to be common
Stephen Warren [Sun, 8 Mar 2015 05:48:52 +0000 (22:48 -0700)]
usb: dwc2: refactor submit_bulk_msg to be common

Move the body of submit_bulk_msg() into new function chunk_msg(). This
can be shared with submit_control_msg() to reduce code duplication, and
allow control messages larger than maxpacket.

Signed-off-by: Stephen Warren <swarren@wwwdotorg.org>
9 years agousb: dwc2: unify waiting for transfer completion
Stephen Warren [Sun, 8 Mar 2015 05:48:51 +0000 (22:48 -0700)]
usb: dwc2: unify waiting for transfer completion

Lift common code out of submit_bulk_msg() and submit_control_msg().

Signed-off-by: Stephen Warren <swarren@wwwdotorg.org>
9 years agousb: hub: allow pgood_delay to be specified via env
Tim Harvey [Wed, 8 Apr 2015 19:21:12 +0000 (12:21 -0700)]
usb: hub: allow pgood_delay to be specified via env

Some USB devices break the spec and require longer warm-up times. Allow
the usb_pgood_delay env variable to override the calculated time.

Signed-off-by: Tim Harvey <tharvey@gateworks.com>
9 years agousb: fix first descriptor fetch error handling
Stephen Warren [Thu, 9 Apr 2015 03:27:49 +0000 (21:27 -0600)]
usb: fix first descriptor fetch error handling

When fetching the first descriptor from a new device, only validate that
we received at least 8 bytes, not that we received the entire descriptor.
The reasoning is:
- The code only uses fields in the first 8 bytes, so that's all we need
  to have fetched at this stage.
- The smallest maxpacket size is 8 bytes. Before we know the actual
  maxpacket the device uses, the USB controller may only accept a single
  packet (see the DWC2 note in the comment added in the commit).
  Consequently we are only guaranteed to receive 1 packet (at least 8
  bytes) even in a non-error case.

Fixes: 1a7758044b04 ("usb: Early failure when the first descriptor read
fails or is invalid")
Cc: Paul Kocialkowski <contact@paulk.fr>
Signed-off-by: Stephen Warren <swarren@wwwdotorg.org>
9 years agousb: Early failure when the first descriptor read fails or is invalid
Paul Kocialkowski [Sat, 4 Apr 2015 13:12:29 +0000 (15:12 +0200)]
usb: Early failure when the first descriptor read fails or is invalid

This may happen when using an USB1 device on a controller that only supports
USB2 (e.g. EHCI). Reading the first descriptor will fail (read 0 byte), so we
can abort the process at this point instead of failing later and wasting time.

Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
9 years agousb: Check usb_new_device for failure
Paul Kocialkowski [Sat, 4 Apr 2015 13:12:28 +0000 (15:12 +0200)]
usb: Check usb_new_device for failure

This checks that a new USB device is correctly initialized and frees it if not.
In addition, this doesn't report that USB was started when no device was found.

Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
9 years agousb: usb_new_device return codes consistency
Paul Kocialkowski [Sat, 4 Apr 2015 13:12:27 +0000 (15:12 +0200)]
usb: usb_new_device return codes consistency

This makes use of errno return codes for representing error codes in a unified
way.

Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
9 years agousb_storage:Fix USB storage capacity detection on 64 bit architectures
Sergey Temerkhanov [Wed, 1 Apr 2015 14:18:46 +0000 (17:18 +0300)]
usb_storage:Fix USB storage capacity detection on 64 bit architectures

This patch fixes USB storage capacity detection breakage on 64-bit systems
which arises due to 'unsigned long' length difference. Old code assumes that
to be 32 bit and breaks because of inappropriate response buffer layout.
Also this fixes a number of build warnings and changes big-endian values
treatment style to be architecture-independent

Signed-off-by: Sergey Temerkhanov <s.temerkhanov@gmail.com>
Signed-off-by: Radha Mohan Chintakuntla <rchintakuntla@cavium.com>
9 years agousb: 64-bit architectures support for xHCI
Sergey Temerkhanov [Wed, 1 Apr 2015 14:18:45 +0000 (17:18 +0300)]
usb: 64-bit architectures support for xHCI

This commit allows xHCI to use both 64 and 32 bit memory
physical addresses depending on architecture it's being built for.
Also it makes use of readq()/writeq() on 64-bit systems

Signed-off-by: Sergey Temerkhanov <s.temerkhanov@gmail.com>
Signed-off-by: Radha Mohan Chintakuntla <rchintakuntla@cavium.com>
9 years agousb: Convert protocol header structures to use explicitly sized variables
Sergey Temerkhanov [Wed, 1 Apr 2015 14:18:44 +0000 (17:18 +0300)]
usb: Convert protocol header structures to use explicitly sized variables

This patch converts USB protocol headers to use explicitly sized
fields like the rest of the code

Signed-off-by: Radha Mohan Chintakuntla <rchintakuntla@cavium.com>
Signed-off-by: Sergey Temerkhanov <s.temerkhanov@gmail.com>
9 years agousb: mass-storage: Build warning fixes for 64-bit
Thierry Reding [Fri, 20 Mar 2015 11:41:25 +0000 (12:41 +0100)]
usb: mass-storage: Build warning fixes for 64-bit

Fix a printf format mismatch warning seen on 64-bit builds.

Cc: Łukasz Majewski <l.majewski@samsung.com>
Cc: Marek Vasut <marex@denx.de>
Signed-off-by: Thierry Reding <treding@nvidia.com>
Acked-by: Lukasz Majewski <l.majewski@samsung.com>
Tested-by: Lukasz Majewski <l.majewski@samsung.com>
Reviewed-by: Lukasz Majewski <l.majewski@samsung.com>
9 years agousb: ehci-tegra: Build warning fixes for 64-bit
Thierry Reding [Fri, 20 Mar 2015 11:41:27 +0000 (12:41 +0100)]
usb: ehci-tegra: Build warning fixes for 64-bit

Cast pointers to unsigned long instead of a sized 32-bit type to avoid
pointer to integer cast size mismatch warnings.

Cc: Tom Warren <twarren@nvidia.com>
Cc: Marek Vasut <marex@denx.de>
Signed-off-by: Thierry Reding <treding@nvidia.com>
9 years agoehci-hcd: fix warnings on 64-bit builds
Rob Herring [Tue, 17 Mar 2015 20:46:37 +0000 (15:46 -0500)]
ehci-hcd: fix warnings on 64-bit builds

Change addresses to unsigned long to be compatible with 64-bit builds.
Regardless of fixing warnings, the device is still only 32-bit capable.

Signed-off-by: Rob Herring <robh@kernel.org>
Cc: Marek Vasut <marex@denx.de>
9 years agousb: ci_udc: fix warnings on 64-bit builds
Rob Herring [Tue, 17 Mar 2015 20:46:35 +0000 (15:46 -0500)]
usb: ci_udc: fix warnings on 64-bit builds

Change addresses to unsigned long to be compatible with 64-bit builds.
Regardless of fixing warnings, the device is still only 32-bit capable.

Signed-off-by: Rob Herring <robh@kernel.org>
Cc: "Łukasz Majewski" <l.majewski@samsung.com>
Cc: Marek Vasut <marex@denx.de>
Reviewed-by: Lukasz Majewski <l.majewski@samsung.com>
9 years agousb: eth: asix: Build warning fixes for 64-bit
Thierry Reding [Fri, 20 Mar 2015 11:41:23 +0000 (12:41 +0100)]
usb: eth: asix: Build warning fixes for 64-bit

Fix a type mismatch in a printf format string.

Cc: Marek Vasut <marex@denx.de>
Signed-off-by: Thierry Reding <treding@nvidia.com>
9 years agousb_storage : scan all interfaces to find a storage device
Franck Jullien [Wed, 4 Mar 2015 20:07:00 +0000 (21:07 +0100)]
usb_storage : scan all interfaces to find a storage device

Mass storage is not necessary present on interface 0. This
patch allow usb_stor_scan to look in every available interface.

Signed-off-by: Franck Jullien <franck.jullien@gmail.com>
9 years agoPrepare v2015.04 v2015.04
Tom Rini [Mon, 13 Apr 2015 14:05:46 +0000 (10:05 -0400)]
Prepare v2015.04

Signed-off-by: Tom Rini <trini@konsulko.com>
9 years agobreak build if it would produce broken binary
Pavel Machek [Mon, 13 Apr 2015 12:49:28 +0000 (14:49 +0200)]
break build if it would produce broken binary

Add an error in known-bad case so that we don't produce broken and
hard to debug binaries.

Signed-off-by: Pavel Machek <pavel@denx.de>
9 years agoMerge branch 'master' of git://www.denx.de/git/u-boot-imx
Tom Rini [Mon, 13 Apr 2015 14:52:46 +0000 (10:52 -0400)]
Merge branch 'master' of git://denx.de/git/u-boot-imx

9 years agoARM: rpi: add a couple more revision IDs
Stephen Warren [Mon, 13 Apr 2015 03:43:25 +0000 (21:43 -0600)]
ARM: rpi: add a couple more revision IDs

According to Gordon Henderson's WiringPi library, there are some more
Pi revision IDs out there. Add support for them.

http://git.drogon.net/?p=wiringPi;a=blob_plain;f=wiringPi/wiringPi.c;hb=5edd177112c99416f68ba3e8c6c4db6ed942e796

At least ID 0x13 is out in the wild:

Reported-by: Chee-Yang Chau <cychau@gmail.com>
Signed-off-by: Stephen Warren <swarren@wwwdotorg.org>
9 years agoARM: fix arch/arm/Makefile for Tegra
Masahiro Yamada [Sat, 11 Apr 2015 15:58:14 +0000 (00:58 +0900)]
ARM: fix arch/arm/Makefile for Tegra

Since commit 79d75d752717 (ARM: move -march=* and -mtune= options to
arch/arm/Makefile), all the Tegra boards are broken because the SPL
is built for ARMv7.

Insert Tegra-specific code to arch/arm/Makefile to set compiler
flags for an earlier ARM architecture.

Note:
The v1 patch for commit 79d75d752717 *was* correct when it was
submitted.  Notice it was originally written for multi .config
configuration where Kconfig set CONFIG_CPU_V7/CONFIG_CPU_ARM720T for
Tegra U-Boot Main/SPL, respectively.  But, until it was merged into
the mainline, commit e02ee2548afe (kconfig: switch to single .config
configuration) had been already applied there.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Reported-by: Stephen Warren <swarren@nvidia.com>
Reported-by: Jan Kiszka <jan.kiszka@siemens.com>
Tested-by: Jan Kiszka <jan.kiszka@siemens.com>
9 years agoarm: armada-xp: Fix SPL for AXP by using save_boot_params_ret
Stefan Roese [Wed, 11 Mar 2015 11:05:04 +0000 (12:05 +0100)]
arm: armada-xp: Fix SPL for AXP by using save_boot_params_ret

Patch e11c6c27 (arm: Allow lr to be saved by board code) introduced
a different method to return from save_boot_params(). The SPL support
for AXP has been pulled and changing to this new method is now
required for SPL to work correctly.

Signed-off-by: Stefan Roese <sr@denx.de>
Cc: Simon Glass <sjg@chromium.org>
Cc: Luka Perkov <luka.perkov@sartura.hr>
9 years agoMerge git://git.denx.de/u-boot-arc
Tom Rini [Fri, 10 Apr 2015 16:39:13 +0000 (12:39 -0400)]
Merge git://git.denx.de/u-boot-arc

9 years agoarc: fix separate compilation of start.o
Alexey Brodkin [Fri, 10 Apr 2015 16:22:40 +0000 (19:22 +0300)]
arc: fix separate compilation of start.o

While testing "arc: make sure _start is in the beginning of .text
section" I haven't done proper clean-up of built binaries and so missed
another tiny bit that lead to the following error:
 --->8---
    LD      u-boot
 arc-linux-ld.bfd: cannot find arch/arc/lib/start.o
 Makefile:1107: recipe for target 'u-boot' failed
 make: *** [u-boot] Error 1
 --->8---

Fix is trivial: put "start.o" in "extra-y".

Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
9 years agointegrator: consolidate flash info
Linus Walleij [Sat, 4 Apr 2015 23:48:33 +0000 (01:48 +0200)]
integrator: consolidate flash info

This consolidates the flash settings for the Integrator
and activates the new ARM flash image support for them
so images can be loaded by name from flash.

Reviewed-by: Tom Rini <trini@konsulko.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
9 years agovexpress64: juno: add default NOR flash boot
Linus Walleij [Sat, 4 Apr 2015 23:48:32 +0000 (01:48 +0200)]
vexpress64: juno: add default NOR flash boot

This modifies the vexpress64 Juno configuration so that
it will by default load and boot a kernel and a device tree
from the images stored in the NOR flash. When we are
at it, also define the proper command line for the Juno and
indicate that the USB stick (/dev/sda1) is the default
root file system.

Reviewed-by: Tom Rini <trini@konsulko.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
9 years agocommon/armflash: Support for ARM flash images
Linus Walleij [Sat, 4 Apr 2015 23:48:31 +0000 (01:48 +0200)]
common/armflash: Support for ARM flash images

The ARM reference designs all use a special flash image format
that stores a footer (two versions exist) at the end of the last
erase block of the image in flash memory.

Version one of the footer is indicated by the magic number
0xA0FFFF9F at 12 bytes before the end of the flash block and
version two is indicated by the magic number 0x464F4F54 0x464C5348
(ASCII for "FLSHFOOT") in the very last 8 bytes of the erase block.

This command driver implements support for both versions of the
AFS images (the name comes from the Linux driver in drivers/mtd/afs.c)
and makes it possible to list images and load an image by name into
the memory with these commands:

afs - lists flash contents
afs load <image> - loads image to address indicated in the image
afs load <image> <addres> - loads image to a specified address

This image scheme is used on the ARM Integrator family, ARM
Versatile family, ARM RealView family (not yet supported in U-Boot)
and ARM Versatile Express family up to and including the new
Juno board for 64 bit development.

Reviewed-by: Tom Rini <trini@konsulko.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
9 years agoMerge branch 'master' of git://git.denx.de/u-boot-fdt
Tom Rini [Fri, 10 Apr 2015 14:32:50 +0000 (10:32 -0400)]
Merge branch 'master' of git://git.denx.de/u-boot-fdt

9 years agoMerge branch 'master' of git://git.denx.de/u-boot-arm
Tom Rini [Fri, 10 Apr 2015 13:38:38 +0000 (09:38 -0400)]
Merge branch 'master' of git://git.denx.de/u-boot-arm

9 years agocommon, ubi: use positive return values for ubi check
Stefan Agner [Fri, 10 Apr 2015 09:25:43 +0000 (11:25 +0200)]
common, ubi: use positive return values for ubi check

The ubi check command is expected to not fail and just check whether
a volume exist or not. Currently, when a volume does not exist, the
command fails which leads to an error:
"exit not allowed from main input shell."

Use 1 to indicate that a volume does not exist. This allows to use
ubi check in an if statement, e.g.
if ubi check rootfs; then; echo "exists"; else; echo "not there"; fi

9 years agoarc: make sure _start is in the beginning of .text section
Alexey Brodkin [Fri, 10 Apr 2015 15:41:58 +0000 (18:41 +0300)]
arc: make sure _start is in the beginning of .text section

This is important to have entry point in the beginning of .text section
because it allows simple loading and execution of U-Boot.

For example pre-bootloader loads U-Boot in memory starting from offset
0x81000000 and then just jumps to the same address.

Otherwise pre-bootloader would need to find-out where entry-point is. In
its turn if it deals with binary image of U-Boot there's no way for
pre-bootloader to get required value.

Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
9 years agofdt: nios: Fix warning in ft_cpu_setup()
Simon Glass [Fri, 3 Apr 2015 23:57:24 +0000 (17:57 -0600)]
fdt: nios: Fix warning in ft_cpu_setup()

This function should not return a value.

Signed-off-by: Simon Glass <sjg@chromium.org>
Acked-by: Thomas Chou <thomas@wytron.com.tw>
9 years agolpc32xx: add support for board work_92105
Albert ARIBAUD \(3ADEV\) [Tue, 31 Mar 2015 09:40:51 +0000 (11:40 +0200)]
lpc32xx: add support for board work_92105

Work_92105 from Work Microwave is an LPC3250-
based board with the following features:
- 64MB or 128MB SDR DRAM
- 1 GB SLC NAND, managed through MLC controller.
- Ethernet
- Ethernet + PHY SMSC8710
- I2C:
  - EEPROM (24M01-compatible)
  - RTC (DS1374-compatible)
  - Temperature sensor (DS620)
  - DACs (2 x MAX518)
- SPI (through SSP interface)
  - Port expander MAX6957
- LCD display (HD44780-compatible), controlled
  through the port expander and DACs

This board has SPL support, and uses the LPC32XX boot
image format.

Signed-off-by: Albert ARIBAUD (3ADEV) <albert.aribaud@3adev.fr>
9 years agoIntroduce CONFIG_SPL_PANIC_ON_RAW_IMAGE
Albert ARIBAUD \(3ADEV\) [Tue, 31 Mar 2015 09:40:50 +0000 (11:40 +0200)]
Introduce CONFIG_SPL_PANIC_ON_RAW_IMAGE

introduce CONFIG_SPL_PANIC_ON_RAW_IMAGE.
An SPL which define this will panic() if the
image it has loaded does not have a mkimage
signature.

Signed-off-by: Albert ARIBAUD (3ADEV) <albert.aribaud@3adev.fr>
9 years agolpc32xx: add lpc32xx-spl.bin boot image target
Albert ARIBAUD \(3ADEV\) [Tue, 31 Mar 2015 09:40:49 +0000 (11:40 +0200)]
lpc32xx: add lpc32xx-spl.bin boot image target

Signed-off-by: Albert ARIBAUD (3ADEV) <albert.aribaud@3adev.fr>
9 years agodtt: add ds620 support
Albert ARIBAUD \(3ADEV\) [Tue, 31 Mar 2015 09:40:48 +0000 (11:40 +0200)]
dtt: add ds620 support

Signed-off-by: Albert ARIBAUD (3ADEV) <albert.aribaud@3adev.fr>
9 years agolpc32xx: add LPC32xx SSP support (SPI mode)
Albert ARIBAUD \(3ADEV\) [Tue, 31 Mar 2015 09:40:47 +0000 (11:40 +0200)]
lpc32xx: add LPC32xx SSP support (SPI mode)

Reviewed-by: Jagannadha Sutradharudu Teki <jagannadh.teki@gmail.com>
Signed-off-by: Albert ARIBAUD (3ADEV) <albert.aribaud@3adev.fr>
9 years agolpc32xx: add GPIO support
Albert ARIBAUD \(3ADEV\) [Tue, 31 Mar 2015 09:40:46 +0000 (11:40 +0200)]
lpc32xx: add GPIO support

This driver only supports Driver Model, not legacy model.

Signed-off-by: Albert ARIBAUD (3ADEV) <albert.aribaud@3adev.fr>
9 years agolpc32xx: i2c: add LPC32xx I2C interface support
Albert ARIBAUD \(3ADEV\) [Tue, 31 Mar 2015 09:40:45 +0000 (11:40 +0200)]
lpc32xx: i2c: add LPC32xx I2C interface support

Signed-off-by: Albert ARIBAUD (3ADEV) <albert.aribaud@3adev.fr>
9 years agolpc32xx: mtd: nand: add MLC NAND controller
Albert ARIBAUD \(3ADEV\) [Tue, 31 Mar 2015 09:40:44 +0000 (11:40 +0200)]
lpc32xx: mtd: nand: add MLC NAND controller

The controller's Reed-Solomon ECC hardware is
used except of course for raw reads and writes.
It covers in- and out-of-band data together.

The SPL framework is supported.

Signed-off-by: Albert ARIBAUD (3ADEV) <albert.aribaud@3adev.fr>
9 years agolpc32xx: add Ethernet support
Albert ARIBAUD \(3ADEV\) [Tue, 31 Mar 2015 09:40:43 +0000 (11:40 +0200)]
lpc32xx: add Ethernet support

Signed-off-by: Albert ARIBAUD (3ADEV) <albert.aribaud@3adev.fr>
9 years agoMerge branch 'u-boot/master'
Albert ARIBAUD [Fri, 10 Apr 2015 12:22:23 +0000 (14:22 +0200)]
Merge branch 'u-boot/master'

9 years agoomap3: pandora: use common configuration
Grazvydas Ignotas [Wed, 8 Apr 2015 23:14:33 +0000 (02:14 +0300)]
omap3: pandora: use common configuration

This allows to clean up the config a good deal and also converts
pandora to Generic Board.

Signed-off-by: Grazvydas Ignotas <notasas@gmail.com>
9 years agoodroid-XU3: update board maintainer
Przemyslaw Marczak [Wed, 8 Apr 2015 16:12:20 +0000 (18:12 +0200)]
odroid-XU3: update board maintainer

At present Hyungwon can't take care of this board in U-Boot,
so I will keep it working.

Signed-off-by: Przemyslaw Marczak <p.marczak@samsung.com>
Cc: Hyungwon Hwang <human.hwang@samsung.com>
9 years agomcx: update maintainer and convert to generic board
Anatolij Gustschin [Wed, 8 Apr 2015 11:49:41 +0000 (13:49 +0200)]
mcx: update maintainer and convert to generic board

Remove obsolete email address from MAINTAINERS.

Signed-off-by: Anatolij Gustschin <agust@denx.de>
Cc: Masahiro Yamada <yamada.masahiro@socionext.com>
Cc: Tom Rini <trini@konsulko.com>
9 years agoMAINTAINERS: fix TI DaVinci directory path and add KeyStone
Masahiro Yamada [Wed, 8 Apr 2015 09:23:23 +0000 (18:23 +0900)]
MAINTAINERS: fix TI DaVinci directory path and add KeyStone

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
9 years agoboard: axs10x - support v3 mother-board
Alexey Brodkin [Thu, 9 Apr 2015 16:50:58 +0000 (19:50 +0300)]
board: axs10x - support v3 mother-board

There're 2 versions of motherboards that could be used in ARC SDP.
The only important difference for U-Boot is different NAND IC in use:
 [1] v2 board (we used to support up until now) sports MT29F4G08ABADAWP
while
 [2] v3 board sports MT29F4G16ABADAWP

They are almost the same except data bus width 8-bit in [1] and 16-bit
in [2]. And for proper support of 16-bit data bus we have to pass
NAND_BUSWIDTH_16 option to NAND driver core - which we do now knowing
board type we're running on.

Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
9 years agoARM: mx5: add support for USB armory board
Andrej Rosano [Wed, 8 Apr 2015 16:56:30 +0000 (18:56 +0200)]
ARM: mx5: add support for USB armory board

Add support for Inverse Path USB armory board, an open source
flash-drive sized computer based on Freescale i.MX53 SoC.

http://inversepath.com/usbarmory

Signed-off-by: Andrej Rosano <andrej@inversepath.com>
Cc: Stefano Babic <sbabic@denx.de>
Cc: Chris Kuethe <chris.kuethe@gmail.com>
Cc: Fabio Estevam <festevam@gmail.com>
Cc: Vagrant Cascadian <vagrant@debian.org>
Tested-By: Vagrant Cascadian <vagrant@debian.org>
Tested-by: Chris Kuethe <chris.kuethe@gmail.com>
9 years agoARM: mx5: move to a standard arch/board approach
Andrej Rosano [Wed, 8 Apr 2015 16:56:29 +0000 (18:56 +0200)]
ARM: mx5: move to a standard arch/board approach

Move the MX5 based boards to arch/arm/cpu/armv7/mx5, following the
commit: 89ebc82137bebb11a8191f8b9cbf08f2533ae8bc

Signed-off-by: Andrej Rosano <andrej@inversepath.com>
Cc: Stefano Babic <sbabic@denx.de>
Cc: Vagrant Cascadian <vagrant@debian.org>
Tested-by: Chris Kuethe <chris.kuethe@gmail.com>
9 years agoARM: zynq: Remove Jagan from list of maintainers
Michal Simek [Wed, 8 Apr 2015 08:07:20 +0000 (10:07 +0200)]
ARM: zynq: Remove Jagan from list of maintainers

Email address is not longer valid that's why remove it.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
9 years agoARM: zynq: disable CONFIG_SYS_MALLOC_F to fix MMC boot
Masahiro Yamada [Wed, 8 Apr 2015 05:25:50 +0000 (14:25 +0900)]
ARM: zynq: disable CONFIG_SYS_MALLOC_F to fix MMC boot

Since commit 326a682358c1 (malloc_f: enable SYS_MALLOC_F by default
if DM is on), Zynq MMC boot hangs up after printing the following:

    U-Boot SPL 2015.04-rc5-00053-gadcc570 (Apr 08 2015 - 12:59:11)
    mmc boot
    reading system.dtb

Prior to commit 326a682358c1, Zynq boards enabled CONFIG_DM, but
not CONFIG_SYS_MALLOC_F.  That commit forcibly turned on
CONFIG_SYS_MALLOC_F.  I have not figured out the root cause, but
anyway it looks like CONFIG_SYS_MALLOC_F gave a bad impact on the
Zynq MMC boot.

We are planning to have the v2015.04 release in a few days.
I know this is a defensive fixup, but what I can do now is to add
   # CONFIG_SYS_MALLOC_F is not set
to every Zynq defconfig file to get back the original behavior.

Tested on:
  - Zedboard
  - ZC706 board

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Tested-by: Michal Simek <michal.simek@xilinx.com>
Cc: Simon Glass <sjg@chromium.org>
9 years agoFix mxc_hab documenation for DEK blob generation
Ulises Cardenas [Fri, 27 Mar 2015 14:08:57 +0000 (08:08 -0600)]
Fix mxc_hab documenation for DEK blob generation

Include/fsl_sec.h defines sec_in and sec_out, according to the
platform's endianess. Therefore, CONFIG_SYS_FSL_LE needs to be
declared in the configuration file of the target, in order to use
enable the DEK blob generation command. This requirement is not
explicit in the README.mxc_hab.

Signed-off-by: Ulises Cardenas <Ulises.Cardenas@freescale.com>
9 years agomx53loco: Disable printing cpuinfo
Fabio Estevam [Mon, 6 Apr 2015 14:23:07 +0000 (11:23 -0300)]
mx53loco: Disable printing cpuinfo

Since commit 32df39c741788e ("mx5: fix get_reset_cause") we have the following
boot messages on a mx53qsb:

U-Boot 2015.04-rc5-00029-gd68df02 (Apr 06 2015 - 11:15:39)

CPU:   Freescale i.MX53 rev2.1 at 800 MHz
Reset cause: POR
Board: MX53 LOCO
I2C:   ready
DRAM:  1 GiB
MMC:   FSL_SDHC: 0, FSL_SDHC: 1
In:    serial
Out:   serial
Err:   serial
CPU:   Freescale i.MX53 rev2.1 at 1000 MHz
Reset cause: unknown reset
Net:   FEC [PRIME]

The CPU and Reset cause lines appear twice.

Initially mx53 boots at 800MHz, then at a later point the PMIC is configured via
I2C to raise the CPU voltage so that it can run at 1GHz.

To avoid such misleading double printings, disable printing cpu info for now.

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Acked-by: Jason Liu <r64343@freescale.com>
9 years agocmd_mem.c: Update 'iteration_limit' to unsigned long
Tom Rini [Tue, 7 Apr 2015 13:38:54 +0000 (09:38 -0400)]
cmd_mem.c: Update 'iteration_limit' to unsigned long

With e37f1eb we now use strict_strtoul() in do_mem_mtest() and this
gives us a warning:
../include/vsprintf.h:38:5: note: expected 'long unsigned int *' but
argument is of type 'int *'

Signed-off-by: Tom Rini <trini@konsulko.com>
9 years agofix makefiles to respect DTC setting
Pavel Machek [Mon, 6 Apr 2015 13:46:44 +0000 (15:46 +0200)]
fix makefiles to respect DTC setting

Top-level Makefile has option to select dtc binary, but it is ignored
due to bug in Makefile.lib. Fix it.

Signed-off-by: Pavel Machek <pavel@denx.de>
9 years agoMAKEALL: fix get_target_arch() to adjust to '-' in Status field
Masahiro Yamada [Mon, 6 Apr 2015 02:12:28 +0000 (11:12 +0900)]
MAKEALL: fix get_target_arch() to adjust to '-' in Status field

Since the Kconfig conversion, boards.cfg scanned by MAKEALL is
generated by tools/genboardscfg.py.  Every board is supposed to have
its own MAINTAINERS that contains maintainer and status information,
but, in fact, MAINTAINERS is missing from some boards.

For such boards, the first field, Status, is filled with '-'.
It causes a problem for "set" command, which ignores '-' in its
arguments.  Consequently, get_target_arch() returns a wrong field
and MAKEALL fails to get a correct toolchain.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
9 years agokbuild: include config.mk when auto.conf is not older than .config
Masahiro Yamada [Fri, 3 Apr 2015 03:30:25 +0000 (12:30 +0900)]
kbuild: include config.mk when auto.conf is not older than .config

Since the Kconfig conversion, config.mk has been included only when
include/config/auto.conf is newer than the .config file.

It causes build error if both files have the same time-stamps.
It is actually possible because EXT* file systems have a 1s time-stamp
resolution.

The config.mk should be included when include/config/auto.conf is
*not older* than the .config file.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Reported-by: Tom Rini <trini@konsulko.com>
Reported-by: York Sun <yorksun@freescale.com>
Reported-by: Stephen Warren <swarren@nvidia.com>
Reported-by: Matthew Gerlach <mgerlach@opensource.altera.com>
Tested-by: Stephen Warren <swarren@nvidia.com>
9 years agoam33xx/ddr.c: Fix regression on DDR2 platforms
Tom Rini [Thu, 2 Apr 2015 20:01:33 +0000 (16:01 -0400)]
am33xx/ddr.c: Fix regression on DDR2 platforms

Back in fc46bae a "clean up" was introduced that intended to reconcile
some of the AM335x codepaths based on how AM43xx operates.
Unfortunately this introduced a regression on the DDR2 platforms.  This
was un-noticed on DDR3 (everything except for Beaglebone White) as we
had already populated sdram_config correctly in sequence.  This change
brings us back to the older behavior and is fine on all platforms.

Tested on Beaglebone White, Beaglebone Black and AM335x GP EVM

Reported-by: Matt Ranostay <mranostay@gmail.com>
Signed-off-by: Tom Rini <trini@konsulko.com>
9 years agocmd_mem: cleanups, catch bad usage
Pavel Machek [Wed, 1 Apr 2015 11:50:41 +0000 (13:50 +0200)]
cmd_mem: cleanups, catch bad usage

Currently, memtest will silently accept bad data. Perform error
checking on user intput.

Signed-off-by: Pavel Machek <pavel@denx.de>
9 years agoahci: Fix a wrong parameter pass
Tang Yuantian [Tue, 31 Mar 2015 07:02:43 +0000 (15:02 +0800)]
ahci: Fix a wrong parameter pass

In stead of user_buffer_size, transfer_size should be used to pass to
ahci_device_data_io(). transfer_size is the length that we want the
low level function to transfer each time.
If we use user_buffer_size which is the totally data length as parameter,
low level function will actually create many SGs to transfer as many data
as possible each time. That will produce many redundant data transfer.

Signed-off-by: Tang Yuantian <Yuantian.Tang@freescale.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
9 years agoenv_sf: Fix recovery default
Mario Schuknecht [Tue, 24 Mar 2015 07:59:00 +0000 (08:59 +0100)]
env_sf: Fix recovery default

The u-boot environment is redundantly stored in a NOR flash on our boards.
Redundant means that there are two places to store the environment. But only
one of the two is active. I discovered that on one board the u-boot (env_sf)
uses the environment from the second place and the Kernel (fw_printenv) uses
the environment from the first place.
To decide which is the active environment there is a byte inside the
environment. 1 means active and 0 means obsolete. But on that board both
environments had have a 1. This can happen if a power loss or reset occurs
during writing the environment. In this situation the u-boot (env_sf)
implementation uses the second environment as default. But the Kernel
(fw_printenv) implementation uses the first environment as default.

This commit corrects the default in the u-boot env_sf implementation when a
problem was detected. Now the recovery default is the same like in all other
environment implementations. E.g. fw_printenv and env_flash. This ensures that
u-boot and Kernel use the same environment.

Signed-off-by: Mario Schuknecht <mario.schuknecht@dresearch-fe.de>
9 years agoMerge branch 'master' of git://git.denx.de/u-boot-samsung
Tom Rini [Mon, 6 Apr 2015 10:57:15 +0000 (06:57 -0400)]
Merge branch 'master' of git://git.denx.de/u-boot-samsung

9 years agoconfig: exynos: trats2: Enable support for Image.itb at trats2 device
Łukasz Majewski [Wed, 1 Apr 2015 10:34:30 +0000 (12:34 +0200)]
config: exynos: trats2: Enable support for Image.itb at trats2 device

After this change it is possible to boot trats2 device with Image.itb,
which facilitates automated testing, since only one file is necessary.

Signed-off-by: Lukasz Majewski <l.majewski@samsung.com>
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
9 years agoconfig: exynos: trats: Enable support for Image.itb at trats device
Łukasz Majewski [Wed, 1 Apr 2015 10:34:29 +0000 (12:34 +0200)]
config: exynos: trats: Enable support for Image.itb at trats device

After this change it is possible to boot trats device with Image.itb,
which facilitates automated testing, since only one file is necessary.

Signed-off-by: Lukasz Majewski <l.majewski@samsung.com>
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
9 years agoconfig: exynos: common: Provide env variables to support Image.itb
Łukasz Majewski [Wed, 1 Apr 2015 10:34:28 +0000 (12:34 +0200)]
config: exynos: common: Provide env variables to support Image.itb

This change allows using Image.itb image format with Exynos4 devices
(especially trats and trats2).
Such change facilitates automated testing since only one binary needs
to be prepared.

Signed-off-by: Lukasz Majewski <l.majewski@samsung.com>
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
9 years agosmdk5420: Remove GPIO enums
Ajay Kumar [Wed, 4 Mar 2015 13:35:31 +0000 (19:05 +0530)]
smdk5420: Remove GPIO enums

Remove GPIOs from smdk5420 board file and because the same
is already specified via DT.

Signed-off-by: Ajay Kumar <ajaykumar.rs@samsung.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Tested-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
9 years agodts: peach_pi: Add DT properties needed for display
Ajay Kumar [Wed, 4 Mar 2015 13:35:30 +0000 (19:05 +0530)]
dts: peach_pi: Add DT properties needed for display

Add backlight enable GPIO, and delay needed for panel powerup
via FIMD DT node.

Signed-off-by: Ajay Kumar <ajaykumar.rs@samsung.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Tested-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
9 years agodts: peach_pit: Add SLP and RST GPIO properties in parade DT node
Ajay Kumar [Wed, 4 Mar 2015 13:35:29 +0000 (19:05 +0530)]
dts: peach_pit: Add SLP and RST GPIO properties in parade DT node

Now that parade driver supports reading SLP and RST GPIO
from DT, specify the same in parade DT node.

Signed-off-by: Ajay Kumar <ajaykumar.rs@samsung.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Tested-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
9 years agodts: exynos54xx: Add samsung, pwm-out-gpio property to FIMD node
Ajay Kumar [Wed, 4 Mar 2015 13:35:28 +0000 (19:05 +0530)]
dts: exynos54xx: Add samsung, pwm-out-gpio property to FIMD node

Now that the exynos_fb driver supports handling backlight GPIO
via DT, specify pwm output property via FIMD DT node.

Signed-off-by: Ajay Kumar <ajaykumar.rs@samsung.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Tested-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
9 years agovideo: parade: configure SLP and RST GPIOs if specified in DT
Ajay Kumar [Wed, 4 Mar 2015 13:35:27 +0000 (19:05 +0530)]
video: parade: configure SLP and RST GPIOs if specified in DT

Add support to configure EDP_RST GPIO and EDP_SLP GPIO,
if provided in parade DT node.

Signed-off-by: Ajay Kumar <ajaykumar.rs@samsung.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Tested-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
9 years agovideo: exynos_fb: configure backlight GPIOs if specified in DT
Ajay Kumar [Wed, 4 Mar 2015 13:35:26 +0000 (19:05 +0530)]
video: exynos_fb: configure backlight GPIOs if specified in DT

Add support to configure PWM_OUT(PWM output) GPIO and
BL_EN(backlight enable) GPIO, if provided in FIMD DT node.

Signed-off-by: Ajay Kumar <ajaykumar.rs@samsung.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Tested-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
9 years agoExynos5: Fix rpll_sdiv to support both peach-pit and peach-pi panels
Ajay Kumar [Wed, 4 Mar 2015 13:35:25 +0000 (19:05 +0530)]
Exynos5: Fix rpll_sdiv to support both peach-pit and peach-pi panels

The existing setting for rpll_sdiv generates 70.5Mhz RPLL
video clock to drive 1366x768 panel on peach_pit.

This clock rate is not sufficient to drive 1920x1080 panel on peach-pi.
So, we adjust rpll_sdiv to 3 so that it generates 141Mhz pixel clock
which can drive peach-pi LCD.

This change doesn't break peach-pit LCD since 141/2=70.5Mhz, i.e FIMD
divider at IP level will get set to 1(the required divider setting
will be calculated and set by exynos_fimd_set_clock()) and hence
peach-pit LCD still works fine.

Signed-off-by: Ajay Kumar <ajaykumar.rs@samsung.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Tested-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>