nand: Extend nand_(read|write)_skip_bad with *actual and limit parameters

We make these two functions take a size_t pointer to how much space
was used on NAND to read or write the buffer (when reads/writes happen)
so that bad blocks can be accounted for.  We also make them take an
loff_t limit on how much data can be read or written.  This means that
we can now catch the case of when writing to a partition would exceed
the partition size due to bad blocks.  To do this we also need to make
check_skip_len count not just complete blocks used but partial ones as
well.  All callers of nand_(read|write)_skip_bad are adjusted to call
these with the most sensible limits available.

The changes were started by Pantelis and finished by Tom.

Signed-off-by: Pantelis Antoniou <panto@antoniou-consulting.com>
Signed-off-by: Tom Rini <trini@ti.com>
cmd_nand.c: Fix CONFIG_CMD_NAND_YAFFS

The flag changed from WITH_INLINE_OOB to WITH_YAFFS_OOB by accident in
418396e.

Signed-off-by: Tom Rini <trini@ti.com>
dfu: NAND specific routines for DFU operation

Support for NAND storage devices to work with the DFU framework.

Signed-off-by: Pantelis Antoniou <panto@antoniou-consulting.com>
Signed-off-by: Tom Rini <trini@ti.com>
Acked-by: Scott Wood <scottwood@freescale.com>
am335x_evm: Define CONFIG_SYS_CACHELINE_SIZE

drivers/usb/gadget/composite.c requires that this is defined early.

Signed-off-by: Pantelis Antoniou <panto@antoniou-consulting.com>
Signed-off-by: Tom Rini <trini@ti.com>
Acked-by: Tom Rini <trini@ti.com>
am335x_evm: Add CONFIG_CMD_MTDPARTS and relevant defaults

Signed-off-by: Tom Rini <trini@ti.com>
am335x_evm: Enable DFU for NAND and MMC, provide example alt_infos

- Add CONFIG_DFU_NAND, CONFIG_DFU_MMC
- Set dfu_alt_info_nand, dfu_alt_info_emmc and dfu_alt_info_mmc to show
  working examples for those cases.
- Increase CONFIG_SYS_MAXARGS due to hush parsing bugs that would
  otherwise disallow 'setenv dfu_alt_info ${dfu_alt_info_nand}'.
- Enable CONFIG_FAT_WRITE to allow updating on MMC

Signed-off-by: Pantelis Antoniou <panto@antoniou-consulting.com>
Signed-off-by: Tom Rini <trini@ti.com>
powerpc/usb: Fix usb device-tree fix-up

Fix USB device-tree fixup to properly handle device-tree fixup and
print appropriate message when wrong/junk "dr_mode" or "phy_type"
are mentioned in hwconfig string

Signed-off-by: Ramneek Mehresh <ramneek.mehresh@freescale.com>
am335x: Update timings for the beaglebone again

After further testing we can run DDR at 400MHz so update the timings
again.

Tested-by: Koen Kooi <koen@dominion.thruhere.net>
Signed-off-by: Tom Rini <trini@ti.com>
powerpc/lib: fix unsafe register handling in wait_ticks

If watchdog is enabled, the arch/powerpc/lib/ticks.S::wait_ticks() function
calls the function specified by the WATCHDOG_RESET macro.
The wait_ticks function depends on the registers r0, r6 and r7 being
preserved however that is not guaranteed, e.g. if the reset function is a
C function this will probably overwrite r0 and cause an endless loop.

The following patch changes to using r14+r15 instead of r6+r7 (to resemble
what would have been generated by a C compiler) and saves all necessary
registers on the stack.

The patch has been tested on a custom MPC5125 based machine using the 512x
powerpc architecture.

Signed-off-by: Mats Karrman <mats.karrman@tritech.se>
Cc: Wolfgang Denk <wd@denx.de>
Acked-by: Joakim Tjernlund <joakim.tjernlund@transmode.se>
Tested-by: Stefan Roese <sr@denx.de>
OMAP4: Fix bug in omap4460_volts struct

The omap4460_volts struct was incorrectly referencing tps62361
instead of twl6030 as PMIC for the core and mm voltages (the
tps is used for mpu supply only). This shall lead to bad OPP
settings while booting kernel. Fixing it.

Fix some comments as well.

Signed-off-by: Lubomir Popov <lpopov@mm-sol.com>
omap5_uevm: Correct to 2MiB aligned partitions on eMMC

This has a 2MiB erase block size eMMC, so make sure we align on that for
best possible performance.

Signed-off-by: Tom Rini <trini@ti.com>
omap5912-osk: Fix DRAM initialisation

The size of the DRAM for the omap5912-osk board is getting setup in the
dram_init() function. However, for the current u-boot release this is
too late and needs to be done in dram_init_banksize(). Therefore, add
a dram_init_banksize() function for the omap5912-osk board and setup the
DRAM size there.

Signed-off-by: Jon Hunter <jon-hunter@ti.com>
omap5912-osk: Fix booting from NOR flash

The omap5912-osk board is using a RAM based address as the linker
location for code. This is causing several problems when attempting
to run the latest u-boot code base on this board from flash. Update
the default linker location for code to be in NOR flash at address
0x00000000.

The omap5912-osk board only has 32MB of RAM and so fix the comment
in the omap5912-osk config.mk file as well.

Signed-off-by: Jon Hunter <jon-hunter@ti.com>
omap5912-osk: Fix device initialisation

In the current u-boot, the device pin multiplexing and clock
initialisation needs to be early during the boot process and before
board_init() is called. U-boot is currently crashing on this board
because this is not being done early enough. Therefore, add a s_init()
function for the omap5912-osk board to do this.

Also fix the stack pointer so that it is pointing to the end of the
internal RAM and not the beginning as this was also causing the device
to crash.

Signed-off-by: Jon Hunter <jon-hunter@ti.com>
omap5912-osk: Increase flash partition for u-boot

The current u-boot binary needs more than 128KB of flash space and so
move the u-boot environment from an offset of 128KB to 256KB in flash
to ensure the enviroment does not overlap with u-boot.

Signed-off-by: Jon Hunter <jon-hunter@ti.com>
omap5912-osk: Fix get_timer() and CONFIG_SYS_HZ

The function get_timer() should return time in ms and CONFIG_SYS_HZ
should be set to 1000 by default. Fix both of these items.

Signed-off-by: Jon Hunter <jon-hunter@ti.com>
Merge branch 'master' of git://git.denx.de/u-boot-usb
Do not call board_early_init_f() twice

Apparently due to a missed rebase conflict resolution
board_early_init_f() is included twice in the list of initialization
functions.

Leave only the first occurrence.
   . built and boot an Exynos 5250 target

Signed-off-by: Vadim Bendebury <vbendeb@chromium.org>
ubi: Fix broken cleanup code in attach_by_scanning

The unwind code was not reversing operations correctly and was causing
a hang on any error condition.

Signed-off-by: Joe Hershberger <joe.hershberger@ni.com>
ubi: Expose a few simple functions from the cmd_ubi

Part, Read, and Write functionality that will be used by env_ubi.

Signed-off-by: Joe Hershberger <joe.hershberger@ni.com>