]> git.dujemihanovic.xyz Git - u-boot.git/log
u-boot.git
8 years agoi2c: mvtwsi: Factor out adap parameter
mario.six@gdsys.cc [Thu, 21 Jul 2016 09:57:08 +0000 (11:57 +0200)]
i2c: mvtwsi: Factor out adap parameter

To be able to use the compatibility layer from the DM functions, we
factor the adap parameter out of all functions, and pass the actual
register base instead.

Signed-off-by: Mario Six <mario.six@gdsys.cc>
Reviewed-by: Stefan Roese <sr@denx.de>
8 years agoi2c: mvtwsi: Add compatibility functions
mario.six@gdsys.cc [Thu, 21 Jul 2016 09:57:07 +0000 (11:57 +0200)]
i2c: mvtwsi: Add compatibility functions

To prepare for the DM conversion, we add a layer of compatibility
functions to be used by both the legacy and the DM functions.

Signed-off-by: Mario Six <mario.six@gdsys.cc>
Reviewed-by: Stefan Roese <sr@denx.de>
8 years agoi2c: mvtwsi: Use 'uint' instead of 'unsigned int'
mario.six@gdsys.cc [Thu, 21 Jul 2016 09:57:06 +0000 (11:57 +0200)]
i2c: mvtwsi: Use 'uint' instead of 'unsigned int'

Since some additional parameters will be added in the course of this
patch series (especially with the addition of DM support), we replace
the longer "unsigned int" declarations with "uint" declarations to keep
the parameter lists more readable.

Signed-off-by: Mario Six <mario.six@gdsys.cc>
Reviewed-by: Stefan Roese <sr@denx.de>
8 years agoi2c: mvtwsi: Get rid of status parameter
mario.six@gdsys.cc [Thu, 21 Jul 2016 09:57:05 +0000 (11:57 +0200)]
i2c: mvtwsi: Get rid of status parameter

The twsi_stop function contains a parameter "status," which is used to
pass in the current exit status of the function calling twsi_stop, and
either return this status unchanged if it indicates an error, or return
twsi_stop's exit status if it does not indicate an error.

While not massively complicated, this adds another purpose to the
twsi_stop function, which should have the sole purpose of asserting a
STOP condition on the bus (and not manage the exit status of its
caller).

Therefore, we move the exit status management into the caller functions
by introducing a "stop_status" variable and returning either the status
before the twsi_stop call (kept in the "status" variable), or the status
from the twsi_stop call, depending on which indicates an error.

Signed-off-by: Mario Six <mario.six@gdsys.cc>
Reviewed-by: Stefan Roese <sr@denx.de>
8 years agoi2c: mvtwsi: Eliminate flags parameter
mario.six@gdsys.cc [Thu, 21 Jul 2016 09:57:04 +0000 (11:57 +0200)]
i2c: mvtwsi: Eliminate flags parameter

Due to breaking boots from NOR flashes, commit d6b7757 ("i2c: mvtwsi:
Eliminate twsi_control_flags") removed the static global
twsi_control_flags variable, which kept a set of default flags that were
always or'd to the control register when writing. It was replaced with a
flags parameter, which was passed around between the functions that
needed it.

Since the twsi_control_flags variable was used just for the purposes of
a) setting the MVTWSI_CONTROL_TWSIEN on every control register write,
   and
b) setting the MVTWSI_CONTROL_ACK from twsi_i2c_read if needed,
anyway, the added overhead of another variable being passed around is no
longer justified, and we are better off implementing this flag setting
logic locally in the functions that actually write to the control
register.

Therefore, this patch sets MVTWSI_CONTROL_TWSIEN on every control
register write, replaces the twsi_i2c_read's flags parameter with a
ack_flag parameter, which tells the function whether to acknowledge the
read or not, and removes every other instance of the flags variable.
This has the added benefit that now every notion of "global default
flags" is gone, and it's much easier to see which control flags are
actually set at which point in time.

Signed-off-by: Mario Six <mario.six@gdsys.cc>
Reviewed-by: Stefan Roese <sr@denx.de>
8 years agoi2c: mvtwsi: Improve and fix comments
mario.six@gdsys.cc [Thu, 21 Jul 2016 09:57:03 +0000 (11:57 +0200)]
i2c: mvtwsi: Improve and fix comments

This patch fixes only comments/documentation: Streamline capitalization
and improve grammar/punctuation.

Signed-off-by: Mario Six <mario.six@gdsys.cc>
Reviewed-by: Stefan Roese <sr@denx.de>
8 years agoi2c: mvtwsi: Streamline code and add documentation
mario.six@gdsys.cc [Thu, 21 Jul 2016 09:57:02 +0000 (11:57 +0200)]
i2c: mvtwsi: Streamline code and add documentation

Convert groups of logically connected preprocessor defines into proper
enums, one macro into an inline function, and add documentation
to/extend existing documentation of these items.

Signed-off-by: Mario Six <mario.six@gdsys.cc>
Reviewed-by: Stefan Roese <sr@denx.de>
8 years agoi2c: mvtwsi: Fix style violations
mario.six@gdsys.cc [Thu, 21 Jul 2016 09:57:01 +0000 (11:57 +0200)]
i2c: mvtwsi: Fix style violations

This patch fixes seven style violations: Six superfluous spaces after
casts, and one logical continuation violation.

Signed-off-by: Mario Six <mario.six@gdsys.cc>
Reviewed-by: Stefan Roese <sr@denx.de>
8 years agodefconfig: am57xx_hs_evm: enable i2c driver model
Mugunthan V N [Mon, 18 Jul 2016 09:41:09 +0000 (15:11 +0530)]
defconfig: am57xx_hs_evm: enable i2c driver model

Enable i2c driver model for am57xx_hs_evm as omap i2c
supports driver model.

Signed-off-by: Mugunthan V N <mugunthanvnm@ti.com>
8 years agodefconfig: am57xx_evm: enable i2c driver model
Mugunthan V N [Mon, 18 Jul 2016 09:41:08 +0000 (15:11 +0530)]
defconfig: am57xx_evm: enable i2c driver model

Enable i2c driver model for am57xx_evm as omap i2c
supports driver model.

Signed-off-by: Mugunthan V N <mugunthanvnm@ti.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
8 years agodefconfig: dra7xx_hs_evm: enable i2c driver model
Mugunthan V N [Mon, 18 Jul 2016 09:41:07 +0000 (15:11 +0530)]
defconfig: dra7xx_hs_evm: enable i2c driver model

Enable i2c driver model for dra7xx_hs_evm as omap i2c
supports driver model.

Signed-off-by: Mugunthan V N <mugunthanvnm@ti.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
8 years agodefconfig: dra7xx_evm: enable i2c driver model
Mugunthan V N [Mon, 18 Jul 2016 09:41:06 +0000 (15:11 +0530)]
defconfig: dra7xx_evm: enable i2c driver model

Enable i2c driver model for dra7xx_evm as omap i2c
supports driver model.

Signed-off-by: Mugunthan V N <mugunthanvnm@ti.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
8 years agodefconfig: am43xx_hs_evm: enable i2c driver model
Mugunthan V N [Mon, 18 Jul 2016 09:41:05 +0000 (15:11 +0530)]
defconfig: am43xx_hs_evm: enable i2c driver model

Enable i2c driver model for am43xx_hs_evm as omap i2c
supports driver model.

Signed-off-by: Mugunthan V N <mugunthanvnm@ti.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
8 years agodefconfig: am43xx_evm: enable i2c driver model
Mugunthan V N [Mon, 18 Jul 2016 09:41:04 +0000 (15:11 +0530)]
defconfig: am43xx_evm: enable i2c driver model

Enable i2c driver model for am43xx_evm as omap i2c
supports driver model.

Signed-off-by: Mugunthan V N <mugunthanvnm@ti.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
8 years agodefconfig: am335x_evm: enable i2c driver model
Mugunthan V N [Mon, 18 Jul 2016 09:41:03 +0000 (15:11 +0530)]
defconfig: am335x_evm: enable i2c driver model

Enable i2c driver model for am335x_evm as omap i2c
supports driver model.

Signed-off-by: Mugunthan V N <mugunthanvnm@ti.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
8 years agodefconfig: am335x_boneblack_vboot: enable i2c driver model
Mugunthan V N [Mon, 18 Jul 2016 09:41:02 +0000 (15:11 +0530)]
defconfig: am335x_boneblack_vboot: enable i2c driver model

Enable i2c driver model for am335x_boneblack_vboot as omap i2c
supports driver model. Also enable CONFIG_DM_I2C_COMPAT for
legacy drivers of i2c devices.

Signed-off-by: Mugunthan V N <mugunthanvnm@ti.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
8 years agodrivers: i2c: omap24xx_i2c: adopt omap_i2c driver to driver model
Mugunthan V N [Mon, 18 Jul 2016 09:41:01 +0000 (15:11 +0530)]
drivers: i2c: omap24xx_i2c: adopt omap_i2c driver to driver model

Convert omap i2c driver to adopt i2c driver model

Signed-off-by: Mugunthan V N <mugunthanvnm@ti.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
8 years agodrivers: i2c: omap24xx_i2c: prepare driver for DM conversion
Mugunthan V N [Mon, 18 Jul 2016 09:41:00 +0000 (15:11 +0530)]
drivers: i2c: omap24xx_i2c: prepare driver for DM conversion

Prepare the driver for DM conversion.

Signed-off-by: Mugunthan V N <mugunthanvnm@ti.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
8 years agoti_armv7_common: i2c: do not define DM_I2C for spl
Mugunthan V N [Mon, 18 Jul 2016 09:40:59 +0000 (15:10 +0530)]
ti_armv7_common: i2c: do not define DM_I2C for spl

Since omap's spl doesn't support DM currently, do not define
DM_I2C for spl build.

Signed-off-by: Mugunthan V N <mugunthanvnm@ti.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
8 years agodrivers: i2c: uclass: parse dt parameters only when CONFIG_OF_CONTROL is enable
Mugunthan V N [Mon, 18 Jul 2016 09:40:58 +0000 (15:10 +0530)]
drivers: i2c: uclass: parse dt parameters only when CONFIG_OF_CONTROL is enable

parse dt parameter of i2c devices only when CONFIG_OF_CONTROL
is enabled.

Signed-off-by: Mugunthan V N <mugunthanvnm@ti.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
8 years agoomap5/dra7: i2c: correct register offset for sync register
Mugunthan V N [Mon, 18 Jul 2016 09:40:57 +0000 (15:10 +0530)]
omap5/dra7: i2c: correct register offset for sync register

The register offset of i2c_sysc offset is not correct as per
omap5[1]/dra7[2] TRM, correct the offsets as per the
documentation.

[1] - http://www.ti.com/lit/pdf/swpu249
[2] - http://www.ti.com/lit/pdf/spruhz6

Signed-off-by: Mugunthan V N <mugunthanvnm@ti.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
8 years agoomap4: i2c: correct register offset for sync register
Mugunthan V N [Mon, 18 Jul 2016 09:40:56 +0000 (15:10 +0530)]
omap4: i2c: correct register offset for sync register

The register offset of i2c_sysc offset is not correct as per
omap4 TRM [1], correct the offsets as per the documentation.

[1] - http://www.ti.com/lit/ug/swpu235ab/swpu235ab.pdf

Signed-off-by: Mugunthan V N <mugunthanvnm@ti.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
8 years agotools: env: Fix format warnings in debug
Marcin Niestroj [Fri, 6 May 2016 12:58:29 +0000 (14:58 +0200)]
tools: env: Fix format warnings in debug

Format warnings (-Wformat) were shown in printf() calls after defining
DEBUG macro.

Update format string and explicitly cast variables to suppress all
warnings.

Signed-off-by: Marcin Niestroj <m.niestroj@grinn-global.com>
8 years agoPrepare v2016.09-rc1
Tom Rini [Tue, 26 Jul 2016 02:25:52 +0000 (22:25 -0400)]
Prepare v2016.09-rc1

Signed-off-by: Tom Rini <trini@konsulko.com>
8 years agosandbox: Migrate CONFIG_I2C_EEPROM
Tom Rini [Mon, 25 Jul 2016 22:18:15 +0000 (18:18 -0400)]
sandbox: Migrate CONFIG_I2C_EEPROM

Most users of CONFIG_I2C_EEPROM were migrated to defconfig a while ago,
but sandbox was skipped.  Leave it off for sandbox_spl where it does not
build, but does not need to be either.

Cc: Simon Glass <sjg@chromium.org>
Signed-off-by: Tom Rini <trini@konsulko.com>
8 years agoMerge git://git.denx.de/u-boot-nand-flash
Tom Rini [Mon, 25 Jul 2016 18:49:54 +0000 (14:49 -0400)]
Merge git://git.denx.de/u-boot-nand-flash

8 years agoarm64: thunderx_88xx_defconfig: remove unneeded CONFIG_SYS_EXTRA_OPTIONS
Masahiro Yamada [Mon, 25 Jul 2016 13:06:08 +0000 (22:06 +0900)]
arm64: thunderx_88xx_defconfig: remove unneeded CONFIG_SYS_EXTRA_OPTIONS

ARM64 is correctly select'ed in arch/arm/Kconfig, so this line in
the defconfig is unneeded.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
8 years agodtoc: Correct the type widening code in fdt_fallback
Simon Glass [Fri, 22 Jul 2016 15:22:49 +0000 (09:22 -0600)]
dtoc: Correct the type widening code in fdt_fallback

This code does not match the fdt version in fdt.py. When dtoc is unable to
use the Python libfdt library, it uses the fallback version, which does not
widen arrays correctly.

Fix this to avoid a warning 'excess elements in array initialize' in
dt-platdata.c which happens on some platforms.

Reported-by: Tom Rini <trini@konsulko.com>
Signed-off-by: Simon Glass <sjg@chromium.org>
Tested-by: Tom Rini <trini@konsulko.com>
8 years agohashtable: Fix compiler warning on 32-bit sandbox
Simon Glass [Fri, 22 Jul 2016 15:22:48 +0000 (09:22 -0600)]
hashtable: Fix compiler warning on 32-bit sandbox

This fixes a mismatch between the %zu format and the type used on sandbox.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
8 years agopart_efi: Fix compiler warning on 32-bit sandbox
Simon Glass [Fri, 22 Jul 2016 15:22:47 +0000 (09:22 -0600)]
part_efi: Fix compiler warning on 32-bit sandbox

This fixes a mismatch between the %zu format and the type used on sandbox.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
8 years agolzmadec: Use the same type as the lzma call
Simon Glass [Fri, 22 Jul 2016 15:22:46 +0000 (09:22 -0600)]
lzmadec: Use the same type as the lzma call

With sandbox on 32-bit the size_t type can be a little inconsistent. Use
the same type as the caller expects to avoid a compiler warning.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
8 years agosandbox: Add instructions about building on 32-bit machines
Simon Glass [Fri, 22 Jul 2016 15:22:45 +0000 (09:22 -0600)]
sandbox: Add instructions about building on 32-bit machines

Sandbox is built with 64-bit ints by default. This doesn't work properly on
32-bit machines.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
8 years agotools, rsa: Further minor cleanups on top of c236ebd and 2b9ec7
mario.six@gdsys.cc [Fri, 22 Jul 2016 06:58:40 +0000 (08:58 +0200)]
tools, rsa: Further minor cleanups on top of c236ebd and 2b9ec7

[NOTE: I took v1 of these patches in, and then v2 came out, this commit
is squashing the minor deltas from v1 -> v2 of updates to c236ebd and
2b9ec76 into this commit - trini]

- Added an additional NULL check, as suggested by Simon Glass to
  fit_image_process_sig
- Re-formatted the comment blocks

Signed-off-by: Mario Six <mario.six@gdsys.cc>
Reviewed-by: Simon Glass <sjg@chromium.org>
[For merging the chnages from v2 back onto v1]
Signed-off-by: Tom Rini <trini@konsulko.com>
8 years agoARM: am33xx: Always inhibit init/refresh during DDR phy init
Russ Dill [Thu, 21 Jul 2016 11:28:32 +0000 (04:28 -0700)]
ARM: am33xx: Always inhibit init/refresh during DDR phy init

A couple of commits have modified the am33xx/am437x ddr2/ddr3
initialization path to fix certain issues, but have had the side effect
of causing L3 noc errors during initialization. The two commits are:

69b918 "am33xx,ddr3: fix ddr3 sdram configuration"
fc46ba "arm: am437x: Enable hardware leveling for EMIF"

The EMIF_REG_INITREF_DIS_MASK bit still needs to be set for all
platforms. This delays initialization and refresh until a later stage.
The 500us timer can be programmed for platforms that require it
and for platforms that don't require it. It is currently hardcoded
for 400MHz systems. For systems with a higher memory frequency
this needs to be a larger value, and for systems with a lower
memory frequency this can be a lower value. This can be
considered a separate issue and corrected in a later commit.

Signed-off-by: Russ Dill <Russ.Dill@ti.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
8 years agoARM: am33xx: Fix DDR init delay placement
Russ Dill [Thu, 21 Jul 2016 11:28:31 +0000 (04:28 -0700)]
ARM: am33xx: Fix DDR init delay placement

The delay needs to be before the write to ref_ctrl register
which initiates refreshes. An improper initialization sequence
generates an L3 noc error.

Signed-off-by: Russ Dill <Russ.Dill@ti.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
8 years agoefi_loader: Make exposed image loader path absolute
Alexander Graf [Wed, 20 Jul 2016 23:44:46 +0000 (01:44 +0200)]
efi_loader: Make exposed image loader path absolute

When loading an efi image, we pass it the location it was loaded from.

On file system backends, there are no relative paths, so we should always
pass in absolute ones. For network paths, we may be relative.

This fixes distro booting with grub2 for me when it fetches the grub2 config
file from the loader partition.

Reported-by: york sun <york.sun@nxp.com>
Signed-off-by: Alexander Graf <agraf@suse.de>
8 years agocommon: fit: Allow U-Boot images to be booted
mario.six@gdsys.cc [Wed, 20 Jul 2016 06:32:50 +0000 (08:32 +0200)]
common: fit: Allow U-Boot images to be booted

In certain circumstances it comes in handy to be able to boot into a second
U-Boot. But as of now it is not possible to boot a U-Boot binary that is inside
a FIT image, which is problematic for projects that e.g. need to guarantee a
unbroken chain of trust from SOC all the way into the OS, since the FIT signing
mechanism cannot be used.

This patch adds the capability to load such FIT images.

An example .its snippet (utilizing signature verification) might look
like the following:

images {
firmware@1 {
description = "2nd stage U-Boot image";
data = /incbin/("u-boot-dtb.img.gz");
type = "firmware";
arch = "arm";
os = "u-boot";
compression = "gzip";
load = <0x8FFFC0>;
entry = <0x900000>;
signature@1 {
algo = "sha256,rsa4096";
key-name-hint = "key";
};
};
};

Signed-off-by: Mario Six <mario.six@gdsys.cc>
Reviewed-by: Tom Rini <trini@konsulko.com>
8 years agokeystone: k2h/e/l: Fix DMA coherency for QM PDSP
Karicheri, Muralidharan [Tue, 19 Jul 2016 18:39:14 +0000 (14:39 -0400)]
keystone: k2h/e/l: Fix DMA coherency for QM PDSP

commit 1f807a9f32aa ("ARM: keystone2: Refactor MSMC macros to avoid
left under a macro KS2_MSMC_SEGMENT_QM_PDSP which is no longer valid.
This, in effect disabled DMA coherency for QM PDSP.

Given that msmc_k2hkle_common_setup is valid for all K2H/K/L/E SoCs,
the #ifdef should been removed in the first place. Do the same.

Fixes: 1f807a9f32aa ("ARM: keystone2: Refactor MSMC macros to avoid #ifdeffery")
Signed-off-by: Murali Karicheri <m-karicheri2@ti.com>
Acked-by: Nishanth Menon <nm@ti.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
8 years agocmd: misc: Add support for fractions in sleep
mario.six@gdsys.cc [Tue, 19 Jul 2016 14:20:13 +0000 (16:20 +0200)]
cmd: misc: Add support for fractions in sleep

A feasible way to communicate certain errors for devices that have no
other way of signalling besides LEDs is to flash these LEDs. For errors
in U-Boot, a script that utilizes the led and sleep commands would be a
practicable way, but currently the sleep command can only delay for an
integral amount of seconds, which is too slow to create an easily
noticeable pattern for flashing LEDs.

Therefore, this patch adds support for fractions (down to .001 seconds)
to the sleep command.

The parsing is kept minimal, simplistic and as robust as possible: After
converting the passed string using simple_strtoul and multiplying it
with 1000, we search for the first dot, convert the three characters
after that into a number (if they are not numbers, we ignore the
fractional part and just use the delay we got from simple_strtoul), and
add this number to the delay.

Signed-off-by: Mario Six <mario.six@gdsys.cc>
8 years agomtd: fix compiler warnings
Steve Rae [Wed, 29 Jun 2016 20:50:59 +0000 (13:50 -0700)]
mtd: fix compiler warnings

- add missing declaration
- update debug output format specifiers

Signed-off-by: Steve Rae <steve.rae@raedomain.com>
8 years agomtd: nand: fix bug writing 1 byte less than page size
Hector Palacios [Mon, 18 Jul 2016 07:37:41 +0000 (09:37 +0200)]
mtd: nand: fix bug writing 1 byte less than page size

nand_do_write_ops() determines if it is writing a partial page with the
formula:
part_pagewr = (column || writelen < (mtd->writesize - 1))

When 'writelen' is exactly 1 byte less than the NAND page size the formula
equates to zero, so the code doesn't process it as a partial write, although
it should.
As a consequence the function remains in the while(1) loop with 'writelen'
becoming 0xffffffff and iterating until the watchdog timeout triggers.

To reproduce the issue on a NAND with 2K page (0x800):
=> nand erase.part <partition>
=> nand write $loadaddr <partition> 7ff

Signed-off-by: Hector Palacios <hector.palacios@digi.com>
8 years agosunxi: Enable NAND controller on the CHIP
Boris Brezillon [Wed, 15 Jun 2016 19:09:28 +0000 (21:09 +0200)]
sunxi: Enable NAND controller on the CHIP

Enable the NAND controller in the sun5i-r8-chip.dts.

Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>
Acked-by: Hans de Goede <hdegoede@redhat.com>
8 years agosunxi: nand: Increase CONFIG_SYS_NAND_MAX_ECCPOS value
Boris Brezillon [Wed, 15 Jun 2016 19:09:27 +0000 (21:09 +0200)]
sunxi: nand: Increase CONFIG_SYS_NAND_MAX_ECCPOS value

On some sunxi boards we have NANDs exposing 1664 OOB bytes per page.
Define the CONFIG_SYS_NAND_MAX_ECCPOS value accordingly.

Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>
8 years agomtd: nand: Increase the max OOB size
Boris Brezillon [Wed, 15 Jun 2016 19:09:26 +0000 (21:09 +0200)]
mtd: nand: Increase the max OOB size

Some NANDs are now exposing 1664 OOB bytes per page. Adjust the
NAND_MAX_OOBSIZE value accordingly.

Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>
8 years agomtd: nand: Add a full-id entry for the H27QCG8T2E5R‐BCF NAND
Boris Brezillon [Wed, 15 Jun 2016 19:09:25 +0000 (21:09 +0200)]
mtd: nand: Add a full-id entry for the H27QCG8T2E5R‐BCF NAND

Add a full-id entry for the H27QCG8T2E5R‐BCF NAND.

Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>
Acked-by: Hans de Goede <hdegoede@redhat.com>
8 years agosun5i: Add NAND controller to the sun5i DTSI
Maxime Ripard [Wed, 15 Jun 2016 19:09:24 +0000 (21:09 +0200)]
sun5i: Add NAND controller to the sun5i DTSI

Add the NAND controller definition to sun5i.dtsi.

Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>
8 years agomtd: nand: Add the sunxi NAND controller driver
Boris Brezillon [Wed, 15 Jun 2016 19:09:23 +0000 (21:09 +0200)]
mtd: nand: Add the sunxi NAND controller driver

We already have an SPL driver for the sunxi NAND controller, now add
the normal/standard one.

The source has been copied from Linux 4.6 with a few changes to make
it work in u-boot.

Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>
Acked-by: Hans de Goede <hdegoede@redhat.com>
8 years agomtd: nand: add common DT init code
Brian Norris [Wed, 15 Jun 2016 19:09:22 +0000 (21:09 +0200)]
mtd: nand: add common DT init code

These are already-documented common bindings for NAND chips. Let's
handle them in nand_base.

If NAND controller drivers need to act on this data before bringing up
the NAND chip (e.g., fill out ECC callback functions, change HW modes,
etc.), then they can do so between calling nand_scan_ident() and
nand_scan_tail().

The original commit has been slightly reworked to use the fdtdec_xxx()
helpers (instead of the of_xxxx() ones).

Signed-off-by: Brian Norris <computersforpeace@gmail.com>
Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>
Acked-by: Hans de Goede <hdegoede@redhat.com>
8 years agosunxi: Add missing macros to configure the NAND controller clk
Boris Brezillon [Wed, 15 Jun 2016 19:09:21 +0000 (21:09 +0200)]
sunxi: Add missing macros to configure the NAND controller clk

We need some macros to manipulate the NAND controller clock.

Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>
Acked-by: Hans de Goede <hdegoede@redhat.com>
8 years agocmd, nand: add an option to disable the verification when writing in raw mode
Boris Brezillon [Wed, 15 Jun 2016 08:42:18 +0000 (10:42 +0200)]
cmd, nand: add an option to disable the verification when writing in raw mode

Modern NANDs do not guarantee that data written in raw mode will not
contain bitflips just after writing them. This is fine since the number
of bitflips should be rather low and thus fixable by the ECC engine,
but since we are reading data in raw mode to verify if they match the
input data we cannot prevent failures if some bits are flipped.

The option of using standard mode to verify the data is not acceptable
either, since one of the usage of raw mode is to allow flashing images
that do not respect the standard NAND page layout or the default ECC
config (this is the case on Allwinner platforms, where the ROM code
tests several hardcoded configs, which are not necessarily matching the
NAND characteristics).

Add an extension to the nand write.raw command allowing one to disable
the verification step.

Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
8 years agoARM: uniphier: add clock/reset settings for xHCI of ProXstream2
Masahiro Yamada [Fri, 22 Jul 2016 11:20:11 +0000 (20:20 +0900)]
ARM: uniphier: add clock/reset settings for xHCI of ProXstream2

Deassert resets and enable clock signals of xHCI blocks if the
corresponding CONFIG is enabled.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
8 years agoARM: uniphier: add PH1-LD21 board data
Masahiro Yamada [Fri, 22 Jul 2016 04:38:33 +0000 (13:38 +0900)]
ARM: uniphier: add PH1-LD21 board data

This has the same silicon die as PH1-LD20, but includes DRAM chips
in its package.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
8 years agoARM: uniphier: introduce flags to uniphier_board_data structure
Masahiro Yamada [Fri, 22 Jul 2016 04:38:32 +0000 (13:38 +0900)]
ARM: uniphier: introduce flags to uniphier_board_data structure

I need to add more board attributes, so the "flags" member will be
handier than separate boolean ones.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
8 years agoARM: uniphier: rename outer-cache register macros
Masahiro Yamada [Fri, 22 Jul 2016 04:38:31 +0000 (13:38 +0900)]
ARM: uniphier: rename outer-cache register macros

Sync register macros with Linux code.  This will be helpful to
develop the counterpart of Linux.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
8 years agoARM: uniphier: clear notification flag before L2 operation
Masahiro Yamada [Fri, 22 Jul 2016 04:38:30 +0000 (13:38 +0900)]
ARM: uniphier: clear notification flag before L2 operation

Clear the flag immediately before cache operation to not depend on
the previous state.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
8 years agoARM: uniphier: use (devm_)ioremap() instead of map_sysmem()
Masahiro Yamada [Tue, 19 Jul 2016 12:56:13 +0000 (21:56 +0900)]
ARM: uniphier: use (devm_)ioremap() instead of map_sysmem()

This does not have much impact on behavior, but makes code look more
more like Linux.  The use of devm_ioremap() often helps to delete
.remove callbacks entirely.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
8 years agoARM: uniphier: fix doubled tftpboot commands
Masahiro Yamada [Tue, 19 Jul 2016 02:36:53 +0000 (11:36 +0900)]
ARM: uniphier: fix doubled tftpboot commands

This downloads the same file twice for nothing.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
8 years agoARM: uniphier: select CONFIG_ARMV8_SPIN_TABLE
Masahiro Yamada [Sat, 16 Jul 2016 16:38:21 +0000 (01:38 +0900)]
ARM: uniphier: select CONFIG_ARMV8_SPIN_TABLE

This is needed when booting Linux without ARM Trusted Firmware.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
8 years agoARM: dts: uniphier: renumber serial aliases for Gentil/Vodka boards
Masahiro Yamada [Wed, 6 Jul 2016 10:24:09 +0000 (19:24 +0900)]
ARM: dts: uniphier: renumber serial aliases for Gentil/Vodka boards

On these two boards, the serial0 is used for inter-chip connection,
so cannot be used for login console.  The serial2 is used instead
for them, but it is tedious to use because upper level deployment
projects must switch login console per board.

[ Linux commit: 2a4a2aadbaad9dffdb564a2895348f3d8e825416 ]

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Signed-off-by: Olof Johansson <olof@lixom.net>
8 years agotest/py: vboot can be run only at Sandbox
Michal Simek [Mon, 18 Jul 2016 06:49:08 +0000 (08:49 +0200)]
test/py: vboot can be run only at Sandbox

Getting this error:
Zynq> sb load hostfs - 100
/home/monstr/data/disk/u-boot/build-zynq_zc706/test.fit
Unknown command 'sb' - try 'help'

because sb command is present only for Sandbox
obj-$(CONFIG_SANDBOX) += host.o

that's why mark this test to be run only at Sandbox

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Acked-by: Simon Glass <sjg@chromium.org>
8 years agoarm: omap5: fix build dependency for secure devices
Andreas Dannenberg [Wed, 20 Jul 2016 18:55:59 +0000 (13:55 -0500)]
arm: omap5: fix build dependency for secure devices

Commit 17c2987 introduces an undesired dependency on CONFIG_SPL_LOAD_FIT
when building U-Boot for AM57xx and DRA7xx high-security (HS) devices that
causes the build to break when that option is not active. Fix this issue
by only building the u-boot_HS.img target when building U-Boot into an
actual FIT image.

Signed-off-by: Andreas Dannenberg <dannenberg@ti.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
8 years agoarm: am4x: fix build dependency for secure devices
Andreas Dannenberg [Wed, 20 Jul 2016 18:55:58 +0000 (13:55 -0500)]
arm: am4x: fix build dependency for secure devices

Commit e29878f introduces an undesired dependency on CONFIG_SPL_LOAD_FIT
when building U-Boot for AM43xx high-security (HS) devices that causes the
build to break when that option is not active. Fix this issue by only
building the u-boot_HS.img target when building U-Boot into an actual
FIT image.

Signed-off-by: Andreas Dannenberg <dannenberg@ti.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
8 years agofixing typo error in README file. CPU15 -> CP15
yeongjun Kim [Wed, 20 Jul 2016 13:56:12 +0000 (22:56 +0900)]
fixing typo error in README file. CPU15 -> CP15

It looks typo error.
Not CPU15, CP15(CoProcessor15)

Signed-off-by: yeongjun Kim <iam.yeongjunkim@gmail.com>
8 years agospl: fit: Fix the number of bytes read in raw mode
Lokesh Vutla [Tue, 19 Jul 2016 09:26:14 +0000 (14:56 +0530)]
spl: fit: Fix the number of bytes read in raw mode

In raw mode a full sector is to be read even if image covers part of
a sector. Number of sectors are calculated as ROUND_UP(size)/sec_size by FIT
framework. This calculation assumes that image is at the 0th offset of a sector,
which is not true always in FIT case. So, include the image offset while
calculating number of sectors.

Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
8 years agorsa: Fix return value and masked error
mario.six@gdsys.cc [Tue, 19 Jul 2016 09:07:07 +0000 (11:07 +0200)]
rsa: Fix return value and masked error

When signing images, we repeatedly call fit_add_file_data() with
successively increasing size values to include the keys in the DTB.

Unfortunately, if large keys are used (such as 4096 bit RSA keys), this
process fails sometimes, and mkimage needs to be called repeatedly to
integrate the keys into the DTB.

This is because fit_add_file_data actually returns the wrong error
code, and the loop terminates prematurely, instead of trying again with
a larger size value.

This patch corrects the return value by fixing the return value of
fdt_add_bignum, fixes a case where an error is masked by a unconditional
setting of a return value variable, and also removes a error message,
which is misleading, since we actually allow the function to fail. A
(hopefully helpful) comment is also added to explain the lack of error
message.

This is probably related to 1152a05 ("tools: Correct error handling in
fit_image_process_hash()") and the corresponding error reported here:

https://www.mail-archive.com/u-boot@lists.denx.de/msg217417.html

Signed-off-by: Mario Six <mario.six@gdsys.cc>
8 years agotools: Fix return code of fit_image_process_sig()
mario.six@gdsys.cc [Tue, 19 Jul 2016 09:07:06 +0000 (11:07 +0200)]
tools: Fix return code of fit_image_process_sig()

When signing images, we repeatedly call fit_add_file_data() with
successively increasing size values to include the keys in the DTB.

Unfortunately, if large keys are used (such as 4096 bit RSA keys), this
process fails sometimes, and mkimage needs to be called repeatedly to
integrate the keys into the DTB.

This is because fit_add_file_data actually returns the wrong error
code, and the loop terminates prematurely, instead of trying again with
a larger size value.

This patch corrects the return value and also removes a error message,
which is misleading, since we actually allow the function to fail. A
(hopefully helpful) comment is also added to explain the lack of error
message.

This is probably related to 1152a05 ("tools: Correct error handling in
fit_image_process_hash()") and the corresponding error reported here:

https://www.mail-archive.com/u-boot@lists.denx.de/msg217417.html

Signed-off-by: Mario Six <mario.six@gdsys.cc>
8 years agotest/py: use absolute dts path in vboot test
Stephen Warren [Mon, 18 Jul 2016 16:07:25 +0000 (10:07 -0600)]
test/py: use absolute dts path in vboot test

Without this, the test fails if the test is run with a cwd other than the
root of the U-Boot source tree.

Fixes: 8729d582595d ("test: Convert the vboot test to test/py")
Signed-off-by: Stephen Warren <swarren@nvidia.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
8 years agoarmv8: spl: Call board_init_r from crt0_64 in SPL
Jeremy Hunt [Mon, 18 Jul 2016 16:01:02 +0000 (12:01 -0400)]
armv8: spl: Call board_init_r from crt0_64 in SPL

As part of the startup process for boards using the SPL, the
meaning of board_init_f changed such that it should return normally
rather than calling board_init_r directly. (see
db910353a126d84fe8dff7a694ea792f50fcfb6a )
This was fixed in 32-bit arm, but broke when SPL was added to
64 bit arm. This fixes crt0_64 so that it calls board_init_r
during the SPL and removes the direct call from board_init_f
from the arm SPL example.

Signed-off-by: Jeremy Hunt <Jeremy.Hunt@DEShawResearch.com>
Acked-by: Simon Glass <sjg@chromium.org>
8 years agoefi_loader: Add debug output for efi_add_memory_map()
Andreas Färber [Sun, 17 Jul 2016 04:57:11 +0000 (06:57 +0200)]
efi_loader: Add debug output for efi_add_memory_map()

Tracing the arguments has been helpful for pinpointing overflows.

Cc: Alexander Graf <agraf@suse.de>
Signed-off-by: Andreas Färber <afaerber@suse.de>
Reviewed-by: Alexander Graf <agraf@suse.de>
8 years agotools/env: reuse fw_getenv in fw_printenv function
Andreas Fenkart [Sat, 16 Jul 2016 15:06:15 +0000 (17:06 +0200)]
tools/env: reuse fw_getenv in fw_printenv function

Try to avoid adhoc iteration of the environment. Reuse fw_getenv
to find the variables that should be printed. Only use open-coded
iteration when printing all variables.
For backwards compatibility, keep emitting a newline when
printing with value_only.

Signed-off-by: Andreas Fenkart <andreas.fenkart@digitalstrom.com>
8 years agotools/env: move envmatch further up in file to avoid forward declarations
Andreas Fenkart [Sat, 16 Jul 2016 15:06:14 +0000 (17:06 +0200)]
tools/env: move envmatch further up in file to avoid forward declarations

forward declaration not needed when re-ordered

Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Andreas Fenkart <andreas.fenkart@digitalstrom.com>
8 years agotools/env: kernel-doc for fw_printenv, fw_getenv and fw_parse_script
Andreas Fenkart [Sat, 16 Jul 2016 15:06:13 +0000 (17:06 +0200)]
tools/env: kernel-doc for fw_printenv, fw_getenv and fw_parse_script

there are two groups of functions:
- application ready tools: fw_setenv/fw_getenv/fw_parse_script
these are used, when creating a single binary containing multiple
tools (busybox like)
- file access like: open/read/write/close
above functions are implemented on top of these. applications
can use those to modify several variables without creating a
temporary batch script file
tested with "./scripts/kernel-doc -html -v tools/env/fw_env.h"

Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Andreas Fenkart <andreas.fenkart@digitalstrom.com>
8 years agogdsys: Drop print_fpga_state function
Tom Rini [Fri, 15 Jul 2016 19:51:40 +0000 (15:51 -0400)]
gdsys: Drop print_fpga_state function

On most platforms the print_fpga_state function is never called.  Only
on dlvision-10g do we, so in that case inline it.  Drop it from
everywhere else to avoid extra strings.

Signed-off-by: Tom Rini <trini@konsulko.com>
Acked-by: Reinhard Pfau <reinhard.pfau@gdsys.cc>
Acked-by: Dirk Eibach <dirk.eibach@gdsys.cc>
8 years agotools/env: allow negative offsets
Stefan Agner [Thu, 14 Jul 2016 00:14:38 +0000 (17:14 -0700)]
tools/env: allow negative offsets

A negative value for the offset is treated as a backwards offset for
from the end of the device/partition for block devices. This aligns
the behavior of the config file with the syntax of CONFIG_ENV_OFFSET
where the functionality has been introduced with
commit 5c088ee841f9 ("env_mmc: allow negative CONFIG_ENV_OFFSET").

Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
8 years agotools/env: complete environment device config early
Stefan Agner [Thu, 14 Jul 2016 00:14:37 +0000 (17:14 -0700)]
tools/env: complete environment device config early

Currently flash_read completes a crucial part of the environment
device configuration, the device type (mtd_type). This is rather
confusing as flash_io calls flash_read conditionally, and one might
think flash_write, which also makes use of mtd_type, gets called
before flash_read. But since flash_io is always called with O_RDONLY
first, this is not actually the case in reality.

However, it is much cleaner to complete and verify the config early
in parse_config. This also prepares the code for further extension.

Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
Reviewed-by: Andreas Fenkart
8 years agoiso: Fix part info command
Alexander Graf [Wed, 20 Jul 2016 23:31:56 +0000 (01:31 +0200)]
iso: Fix part info command

Partitions on the iso el torito partition table interpreter
only start from partition 1. So when printing out the tables,
let's also start counting at 1.

Signed-off-by: Alexander Graf <agraf@suse.de>
8 years agoigep00x0: Falcon mode
Ladislav Michl [Tue, 12 Jul 2016 18:28:34 +0000 (20:28 +0200)]
igep00x0: Falcon mode

Implement spl_start_uboot to let Falcon mode work.

Signed-off-by: Ladislav Michl <ladis@linux-mips.org>
Reviewed-by: Heiko Schocher <hs@denx.de>
Acked-by: Enric Balletbo i Serra <enric.balletbo@collabora.com>
8 years agoigep00x0: generate default mtdparts according NAND chip used
Ladislav Michl [Tue, 12 Jul 2016 18:28:33 +0000 (20:28 +0200)]
igep00x0: generate default mtdparts according NAND chip used

Signed-off-by: Ladislav Michl <ladis@linux-mips.org>
8 years agoigep00x0: UBIize
Ladislav Michl [Tue, 12 Jul 2016 18:28:32 +0000 (20:28 +0200)]
igep00x0: UBIize

Convert IGEP board to use UBI volumes for U-Boot, its environment and
kernel. With exception of first four sectors read by SoC boot
ROM whole (One)NAND is UBI managed.
Also merge NAND and OneNAND defconfigs as now one binary can serve
both flashes.
As code is too big now, drop CONFIG_SPL_EXT_SUPPORT to make it fit.

Signed-off-by: Ladislav Michl <ladis@linux-mips.org>
Reviewed-by: Heiko Schocher <hs@denx.de>
8 years agoigep00x0: runtime flash detection
Ladislav Michl [Tue, 12 Jul 2016 18:28:31 +0000 (20:28 +0200)]
igep00x0: runtime flash detection

Signed-off-by: Ladislav Michl <ladis@linux-mips.org>
8 years agoigep00x0: remove unused empty function omap_rev_string()
Ladislav Michl [Tue, 12 Jul 2016 18:28:30 +0000 (20:28 +0200)]
igep00x0: remove unused empty function omap_rev_string()

Signed-off-by: Ladislav Michl <ladis@linux-mips.org>
8 years agoigep00x0: remove useless setup_net_chip declaration
Ladislav Michl [Tue, 12 Jul 2016 18:28:29 +0000 (20:28 +0200)]
igep00x0: remove useless setup_net_chip declaration

Signed-off-by: Ladislav Michl <ladis@linux-mips.org>
8 years agoigep00x0: reorder lan9221 code to remove ifdefs
Ladislav Michl [Tue, 12 Jul 2016 18:28:28 +0000 (20:28 +0200)]
igep00x0: reorder lan9221 code to remove ifdefs

Signed-off-by: Ladislav Michl <ladis@linux-mips.org>
8 years agoigep00x0: move sysinfo into C file
Ladislav Michl [Tue, 12 Jul 2016 18:28:27 +0000 (20:28 +0200)]
igep00x0: move sysinfo into C file

Signed-off-by: Ladislav Michl <ladis@linux-mips.org>
8 years agocmd: mtdparts: support runtime generated mtdparts
Ladislav Michl [Tue, 12 Jul 2016 18:28:26 +0000 (20:28 +0200)]
cmd: mtdparts: support runtime generated mtdparts

Some CPUs contains boot ROM code capable reading first few blocks
(where SPL resides) of NAND flash and executing it. It is wise to
create separate partition here for SPL. As block size depends on
NAND chip used, we could either use worst case (biggest) partition
size or base its size on actual block size. This patch adds support
for the latter option.

Signed-off-by: Ladislav Michl <ladis@linux-mips.org>
8 years agocmd: mtdparts: use defaults by default
Ladislav Michl [Tue, 12 Jul 2016 18:28:25 +0000 (20:28 +0200)]
cmd: mtdparts: use defaults by default

Boards which are defining default mtdparts often need them early
in boot process (to load environment from UBI volume, for example).
This is currently solved by adding mtdparts and mtdids variable
definitions also to default environment. With this change, default
partitions are used by default unless explicitely deleted or
redefined.

Signed-off-by: Ladislav Michl <ladis@linux-mips.org>
8 years agocmd: mtdparts: consolidate mtdparts reading from env
Ladislav Michl [Tue, 12 Jul 2016 18:28:24 +0000 (20:28 +0200)]
cmd: mtdparts: consolidate mtdparts reading from env

Signed-off-by: Ladislav Michl <ladis@linux-mips.org>
8 years agocmd: mtdparts: fix null pointer dereference in parse_mtdparts
Ladislav Michl [Tue, 12 Jul 2016 18:28:23 +0000 (20:28 +0200)]
cmd: mtdparts: fix null pointer dereference in parse_mtdparts

In case there is no mtdparts variable in relocated environment,
NULL is assigned to p, which is later fed to strncpy.
Also function parameter mtdparts is completely ignored, so use it
in case mtdparts variable is not found in environment. This
parameter is checked not to be NULL in caller.

Signed-off-by: Ladislav Michl <ladis@linux-mips.org>
8 years agocmd: mtdparts: fix mtdparts variable presence confusion in mtdparts_init
Ladislav Michl [Tue, 12 Jul 2016 18:28:22 +0000 (20:28 +0200)]
cmd: mtdparts: fix mtdparts variable presence confusion in mtdparts_init

A private buffer is used to read mtdparts variable from non-relocated
environment. A pointer to that buffer is returned unconditionally,
confusing later test for variable presence in the environment.
Fix it by returning NULL when getenv_f fails.

Signed-off-by: Ladislav Michl <ladis@linux-mips.org>
8 years agomtd: OneNAND: initialize mtd->writebufsize to let UBI work
Ladislav Michl [Tue, 12 Jul 2016 18:28:21 +0000 (20:28 +0200)]
mtd: OneNAND: initialize mtd->writebufsize to let UBI work

io_init checks this value and fails with "bad write buffer size 0 for
2048 min. I/O unit"

Signed-off-by: Ladislav Michl <ladis@linux-mips.org>
8 years agomtd: OneNAND: allow board init function fail
Ladislav Michl [Tue, 12 Jul 2016 18:28:20 +0000 (20:28 +0200)]
mtd: OneNAND: allow board init function fail

Signed-off-by: Ladislav Michl <ladis@linux-mips.org>
8 years agomtd: OneNAND: add timeout to wait ready loops
Ladislav Michl [Tue, 12 Jul 2016 18:28:19 +0000 (20:28 +0200)]
mtd: OneNAND: add timeout to wait ready loops

Add timeout to onenand_wait ready loop as it hangs here indefinitely
when chip not present. Once there, do the same for onenand_bbt_wait
as well (note: recent Linux driver code does the same)

Signed-off-by: Ladislav Michl <ladis@linux-mips.org>
8 years agoarmv7: simplify identify_nand_chip
Ladislav Michl [Tue, 12 Jul 2016 18:28:18 +0000 (20:28 +0200)]
armv7: simplify identify_nand_chip

Use newly introduced function

Signed-off-by: Ladislav Michl <ladis@linux-mips.org>
8 years agoarmv7: armv7: introduce set_gpmc_cs0
Ladislav Michl [Tue, 12 Jul 2016 18:28:17 +0000 (20:28 +0200)]
armv7: armv7: introduce set_gpmc_cs0

Allow boards to runtime detect flash type.

Signed-off-by: Ladislav Michl <ladis@linux-mips.org>
8 years agoarmv7: make gpmc_cfg const
Ladislav Michl [Tue, 12 Jul 2016 18:28:16 +0000 (20:28 +0200)]
armv7: make gpmc_cfg const

Signed-off-by: Ladislav Michl <ladis@linux-mips.org>
[trini: Adapt am33xx, duovero, omap_zoom1]
Signed-off-by: Tom Rini <trini@konsulko.com>
Signed-off-by: Tom Rini <trini@konsulko.com>
8 years agoarmv7: add reset timeout to identify_nand_chip
Ladislav Michl [Tue, 12 Jul 2016 18:28:15 +0000 (20:28 +0200)]
armv7: add reset timeout to identify_nand_chip

identify_nand_chip hangs forever in loop when NAND is not present.
As IGEPv2 comes either with NAND or OneNAND flash, add reset timeout
to let function fail gracefully allowing caller to know NAND is
not present. On NAND equipped board, reset succeeds on first read,
so 1000 loops seems to be safe timeout.

Signed-off-by: Ladislav Michl <ladis@linux-mips.org>
8 years agospl: zImage support in Falcon mode
Ladislav Michl [Tue, 12 Jul 2016 18:28:14 +0000 (20:28 +0200)]
spl: zImage support in Falcon mode

Other payload than uImage is currently considered to be raw U-Boot
image. Check also for zImage in Falcon mode.

Signed-off-by: Ladislav Michl <ladis@linux-mips.org>
Reviewed-by: Heiko Schocher <hs@denx.de>
8 years agospl: support loading from UBI volumes
Ladislav Michl [Tue, 12 Jul 2016 18:28:13 +0000 (20:28 +0200)]
spl: support loading from UBI volumes

Add support for loading from UBI volumes on the top of NAND
and OneNAND.

Signed-off-by: Ladislav Michl <ladis@linux-mips.org>
Reviewed-by: Heiko Schocher <hs@denx.de>
8 years agospl: Lightweight UBI and UBI fastmap support
Thomas Gleixner [Tue, 12 Jul 2016 18:28:12 +0000 (20:28 +0200)]
spl: Lightweight UBI and UBI fastmap support

Booting a payload out of NAND FLASH from the SPL is a crux today, as
it requires hard partioned FLASH. Not a brilliant idea with the
reliability of todays NAND FLASH chips.

The upstream UBI + UBI fastmap implementation which is about to
brought to u-boot is too heavy weight for SPLs as it provides way more
functionality than needed for a SPL and does not even fit into the
restricted SPL areas which are loaded from the SoC boot ROM.

So this provides a fast and lightweight implementation of UBI scanning
and UBI fastmap attach. The scan and logical to physical block mapping
code is developed from scratch, while the fastmap implementation is
lifted from the linux kernel source and stripped down to fit the SPL
needs.

The text foot print on the board which I used for development is:

6854 0 0 6854 1abd
drivers/mtd/ubispl/built-in.o

Attaching a NAND chip with 4096 physical eraseblocks (4 blocks are
reserved for the SPL) takes:

In full scan mode:      1172ms
In fastmap mode:          95ms

The code requires quite some storage. The largest and unknown part of
it is the number of fastmap blocks to read. Therefor the data
structure is not put into the BSS. The code requires a pointer to free
memory handed in which is initialized by the UBI attach code itself.

See doc/README.ubispl for further information on how to use it.

This shares the ubi-media.h and crc32 implementation of drivers/mtd/ubi
There is no way to share the fastmap code, as UBISPL only utilizes the
slightly modified functions ubi_attach_fastmap() and ubi_scan_fastmap()
from the original kernel ubi fastmap implementation.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Ladislav Michl <ladis@linux-mips.org>
Acked-by: Heiko Schocher <hs@denx.de>
Reviewed-by: Tom Rini <trini@konsulko.com>
8 years agoonenand_spl_simple: Add a simple OneNAND read function
Ladislav Michl [Tue, 12 Jul 2016 18:28:11 +0000 (20:28 +0200)]
onenand_spl_simple: Add a simple OneNAND read function

Signed-off-by: Ladislav Michl <ladis@linux-mips.org>