oweals/u-boot.git
10 years agoOMAP3: zoom1: Configure GPMC for Ethernet
Nishanth Menon [Tue, 8 Apr 2014 14:50:52 +0000 (09:50 -0500)]
OMAP3: zoom1: Configure GPMC for Ethernet

zoom1 uses LAN9211 configured over GPMC Chip Select 1.

Signed-off-by: Nishanth Menon <nm@ti.com>
10 years agoomap3: zoom1: enable CONFIG_SYS_GENERIC_BOARD
Nishanth Menon [Tue, 8 Apr 2014 14:50:51 +0000 (09:50 -0500)]
omap3: zoom1: enable CONFIG_SYS_GENERIC_BOARD

CONFIG_SYS_GENERIC_BOARD should now be enabled for generic
functionality Further information in doc/README.generic-board

Signed-off-by: Nishanth Menon <nm@ti.com>
10 years agokeystone2: net: add keystone ethernet driver
Karicheri, Muralidharan [Tue, 1 Apr 2014 19:01:13 +0000 (15:01 -0400)]
keystone2: net: add keystone ethernet driver

Ethernet driver configures the CPSW, SGMI and Phy and uses
the the Navigator APIs. The driver supports 4 Ethernet ports and
can work with only one port at a time.

Port configurations are defined in board.c.

Signed-off-by: Vitaly Andrianov <vitalya@ti.com>
Signed-off-by: Murali Karicheri <m-karicheri2@ti.com>
Signed-off-by: WingMan Kwok <w-kwok2@ti.com>
10 years agokeystone2: add keystone multicore navigator driver
Vitaly Andrianov [Tue, 1 Apr 2014 19:01:12 +0000 (15:01 -0400)]
keystone2: add keystone multicore navigator driver

Multicore navigator consists of Network Coprocessor (NetCP) and
Queue Manager sub system. More details on the hardware can
be obtained from the following links:-

Network Coprocessor: http://www.ti.com/lit/pdf/sprugz6
Multicore Navigator: http://www.ti.com/lit/pdf/sprugr9

Multicore navigator driver implements APIs to configure
the Queue Manager and NetCP Pkt DMA.

Signed-off-by: Vitaly Andrianov <vitalya@ti.com>
Signed-off-by: Murali Karicheri <m-karicheri2@ti.com>
Signed-off-by: WingMan Kwok <w-kwok2@ti.com>
Acked-by: Tom Rini <trini@ti.com>
10 years agok2hk-evm: add configuration for spi1 and spi2 support
Karicheri, Muralidharan [Fri, 4 Apr 2014 17:16:55 +0000 (13:16 -0400)]
k2hk-evm: add configuration for spi1 and spi2 support

currently only spi0 is enabled on k2hk evm. This
configuration update is needed to enable spi1 and spi2.

Signed-off-by: Murali Karicheri <m-karicheri2@ti.com>
Acked-by: Tom Rini <trini@ti.com>
10 years agospi: davinci: add support for multiple bus and chip select
Karicheri, Muralidharan [Fri, 4 Apr 2014 17:16:54 +0000 (13:16 -0400)]
spi: davinci: add support for multiple bus and chip select

Currently davinci spi driver supports only bus 0 cs 0.
This patch allows driver to support bus 1 and bus 2 with
configurable number of chip selects. Also defaults are
selected in a way to avoid regression on other platforms
that uses davinci spi driver and has only one spi bus.

Signed-off-by: Rex Chang <rchang@ti.com>
Signed-off-by: Murali Karicheri <m-karicheri2@ti.com>
Reviewed-by: Jagannadha Sutradharudu Teki <jaganna@xilinx.com>
10 years agok2hk: add support for k2hk SOC and EVM
Vitaly Andrianov [Fri, 4 Apr 2014 17:16:53 +0000 (13:16 -0400)]
k2hk: add support for k2hk SOC and EVM

k2hk EVM is based on Texas Instruments Keystone2 Hawking/Kepler
SoC. Keystone2 SoC has ARM v7 Cortex-A15 MPCore processor. Please
refer the ti/k2hk_evm/README for details on the board, build and other
information.

This patch add support for keystone architecture and k2hk evm.

Signed-off-by: Vitaly Andrianov <vitalya@ti.com>
Signed-off-by: Murali Karicheri <m-karicheri2@ti.com>
Signed-off-by: WingMan Kwok <w-kwok2@ti.com>
Signed-off-by: Sandeep Nair <sandeep_n@ti.com>
10 years agoi2c, davinci: convert driver to new mutlibus/mutliadapter framework
Vitaly Andrianov [Fri, 4 Apr 2014 17:16:52 +0000 (13:16 -0400)]
i2c, davinci: convert driver to new mutlibus/mutliadapter framework

    - add davinci driver to new multibus/multiadpater support
    - adapted all config files, which uses this driver

Signed-off-by: Vitaly Andrianov <vitalya@ti.com>
Signed-off-by: Murali Karicheri <m-karicheri2@ti.com>
Acked-by: Heiko Schocher <hs@denx.de>
10 years agoi2c, davinci: move i2c_defs.h to the drivers/i2c directory
Karicheri, Muralidharan [Fri, 4 Apr 2014 17:16:51 +0000 (13:16 -0400)]
i2c, davinci: move i2c_defs.h to the drivers/i2c directory

This patch moves the davinci i2c_defs.h file to drivers.i2c directory.
It will allow to reuse the davinci_i2c driver for TI Keystone2 SOCs.

Not used "git mv" command to move the file because small part of
it with definitions specific for Davinci SOCs has to remain in the
arch/arm/include/asm/arch-davinci.

Signed-off-by: Vitaly Andrianov <vitalya@ti.com>
Signed-off-by: Murali Karicheri <m-karicheri2@ti.com>
Acked-by: Tom Rini <trini@ti.com>
10 years agoNAND: DaVinci: allow forced disable of subpage writes
Karicheri, Muralidharan [Fri, 4 Apr 2014 17:16:50 +0000 (13:16 -0400)]
NAND: DaVinci: allow forced disable of subpage writes

This patch introduces a configurable mechanism to disable
subpage writes in the DaVinci NAND driver.

Signed-off-by: Vitaly Andrianov <vitalya@ti.com>
Signed-off-by: Murali Karicheri <m-karicheri2@ti.com>
Acked-by: Tom Rini <trini@ti.com>
10 years agoarm: add support for arch timer
Vitaly Andrianov [Fri, 4 Apr 2014 17:16:49 +0000 (13:16 -0400)]
arm: add support for arch timer

This patch add basic support for the architecture timer found on recent
ARMv7 based SoCs.

Signed-off-by: Vitaly Andrianov <vitalya@ti.com>
Signed-off-by: Murali Karicheri <m-karicheri2@ti.com>
10 years agotools: mkimage: add support for gpimage format
Karicheri, Muralidharan [Fri, 4 Apr 2014 17:16:48 +0000 (13:16 -0400)]
tools: mkimage: add support for gpimage format

This patch add support for gpimage format as a preparatory
patch for porting u-boot for keystone2 devices and is
based on omapimage format. It re-uses gph header to store the
size and loadaddr as done in omapimage.c

Signed-off-by: Vitaly Andrianov <vitalya@ti.com>
Signed-off-by: Murali Karicheri <m-karicheri2@ti.com>
Acked-by: Tom Rini <trini@ti.com>
10 years agofdt: call ft_board_setup_ex() at the end of image_setup_libfdt()
Vitaly Andrianov [Fri, 4 Apr 2014 17:16:47 +0000 (13:16 -0400)]
fdt: call ft_board_setup_ex() at the end of image_setup_libfdt()

The keystone2 SOC requires to fix all 32 bit aliased addresses
to their 36 physical format. This has to happen after all fdt
nodes are added or modified.

Signed-off-by: Vitaly Andrianov <vitalya@ti.com>
Signed-off-by: Murali Karicheri <m-karicheri2@ti.com>
Acked-by: Tom Rini <trini@ti.com>
10 years agoTI:omap3: Convert omap3_beagle to ti_omap3_common.h
Tom Rini [Thu, 3 Apr 2014 19:17:15 +0000 (15:17 -0400)]
TI:omap3: Convert omap3_beagle to ti_omap3_common.h

Convert to using the common config files.  This requires a little more
flexibility in the common files than we had been using before.

Signed-off-by: Tom Rini <trini@ti.com>
10 years agoTI:armv7: Switch to CONFIG_SYS_BOARD_GENERIC
Tom Rini [Thu, 3 Apr 2014 19:17:14 +0000 (15:17 -0400)]
TI:armv7: Switch to CONFIG_SYS_BOARD_GENERIC

Tested on AM335x GP EVM, AM335x EVM SK, Beaglebone White, Beaglebone
Black, AM437xx GP EVM, OMAP5 uEVM, OMAP4 Pandaboard

Signed-off-by: Tom Rini <trini@ti.com>
10 years agodra7xx_evm: Add QSPI_4 support, qspiboot build target
Tom Rini [Thu, 3 Apr 2014 11:52:56 +0000 (07:52 -0400)]
dra7xx_evm: Add QSPI_4 support, qspiboot build target

We previously only supported QSPI_1 (single) support.  Add QSPI_4 (quad)
read support as well.  This means we can be given one of two boot device
values, but don't care which it is, so perform a fixup on the QSPI_4
value.  We add a qspiboot build target to better show how you would use
QSPI as a boot device in deployment.  When we boot from QSPI, we can
check the environment for 'boot_os' to control Falcon Mode.

Signed-off-by: Sourav Poddar <sourav.poddar@ti.com>
Signed-off-by: Tom Rini <trini@ti.com>
10 years agoSPL:SPI: Add Falcon Mode support
Tom Rini [Thu, 3 Apr 2014 11:52:55 +0000 (07:52 -0400)]
SPL:SPI: Add Falcon Mode support

Signed-off-by: Tom Rini <trini@ti.com>
10 years agoam335x_evm: Drop SPI SPL support from the default build
Tom Rini [Thu, 17 Apr 2014 21:23:25 +0000 (17:23 -0400)]
am335x_evm: Drop SPI SPL support from the default build

This is only useful with the _spiboot build target anyhow, so only
include it then.  Drop CONFIG_SPL_OS_BOOT support then as the flash is
small and didn't include a spot for the device tree already.

Signed-off-by: Tom Rini <trini@ti.com>
10 years agospi: ti_qspi: Add delay for successful bulk erase.
Poddar, Sourav [Thu, 3 Apr 2014 11:52:54 +0000 (07:52 -0400)]
spi: ti_qspi: Add delay for successful bulk erase.

Bulk erase is not happening properly on dra7 due to erase timing constraints,
add a delay so that erase timing constraints are properly met.

Signed-off-by: Sourav Poddar <sourav.poddar@ti.com>
Tested-by: Yebio Mesfin <ymesfin@ti.com>
10 years agoTI:armv7: Change Falcon Mode DT load address
Tom Rini [Thu, 3 Apr 2014 11:52:53 +0000 (07:52 -0400)]
TI:armv7: Change Falcon Mode DT load address

In general, we want to load the DT at base+128MB, so that we ahve
sufficient room for the kernel and a larger device tree.  In the case of
OMAP3, use 64MB instead as we have a number of boards with 128MB DDR.

Signed-off-by: Tom Rini <trini@ti.com>
10 years agoTI:omap5: Move CONFIG_ENV_SIZE to board config files
Tom Rini [Thu, 3 Apr 2014 11:52:52 +0000 (07:52 -0400)]
TI:omap5: Move CONFIG_ENV_SIZE to board config files

The size of the environment depends on the backing store, move this to
the board config files.

Signed-off-by: Tom Rini <trini@ti.com>
10 years agoam43xx_evm: Update the ramdisk args, we pass things in just fine via DT
Tom Rini [Fri, 28 Mar 2014 19:03:31 +0000 (15:03 -0400)]
am43xx_evm: Update the ramdisk args, we pass things in just fine via DT

Signed-off-by: Tom Rini <trini@ti.com>
10 years agoam335x_evm: Update the ramdisk args, we pass things in just fine via DT
Tom Rini [Fri, 28 Mar 2014 19:03:30 +0000 (15:03 -0400)]
am335x_evm: Update the ramdisk args, we pass things in just fine via DT

Signed-off-by: Tom Rini <trini@ti.com>
10 years agoTI: Add, use a DEFAULT_LINUX_BOOT_ENV environment string
Tom Rini [Fri, 28 Mar 2014 19:03:29 +0000 (15:03 -0400)]
TI: Add, use a DEFAULT_LINUX_BOOT_ENV environment string

To deal with a reoccurring problem properly we need to specify addresses
for the Linux kernel, Flatted Device Tree and ramdisk that obey the
constraints within the kernel's Documentation/arm/Booting file but also
make sure that we relocate things within a valid address range.

It is possible with these addresses to also set fdt_high and initrd_high
to the value of 0xffffffff.  We don't do this by default to allow for
the most likely success of people using custom addresses however.

Signed-off-by: Tom Rini <trini@ti.com>
10 years agospl_mmc/CONFIG_SPL_OS_BOOT: Allow environment to determine what to boot
Tom Rini [Fri, 28 Mar 2014 16:03:42 +0000 (12:03 -0400)]
spl_mmc/CONFIG_SPL_OS_BOOT: Allow environment to determine what to boot

We add two new environment variables, falcon_args_file and
falcon_image_file, which when set will override the compiled in default
values for falcon mode.

Signed-off-by: Tom Rini <trini@ti.com>
10 years agoa3m071: Make spl_start_uboot test like getenv_yesno does
Tom Rini [Fri, 28 Mar 2014 16:03:41 +0000 (12:03 -0400)]
a3m071: Make spl_start_uboot test like getenv_yesno does

This change makes the behaviour slightly more rebust and will match
other implementations which can use getenv_yesno directly.

Acked-by: Stefan Roese <sr@denx.de>
Signed-off-by: Tom Rini <trini@ti.com>
10 years agoREADME.falcon: Document environment variables for falcon mode
Tom Rini [Fri, 28 Mar 2014 16:03:40 +0000 (12:03 -0400)]
README.falcon: Document environment variables for falcon mode

Signed-off-by: Tom Rini <trini@ti.com>
10 years agoREADME: Add CONFIG_SPL_OS_BOOT to README
Tom Rini [Fri, 28 Mar 2014 16:03:39 +0000 (12:03 -0400)]
README: Add CONFIG_SPL_OS_BOOT to README

Signed-off-by: Tom Rini <trini@ti.com>
10 years agoam335x_evm: Make SPL_OS also check the boot_os variable for falcon mode
Tom Rini [Fri, 28 Mar 2014 16:03:38 +0000 (12:03 -0400)]
am335x_evm: Make SPL_OS also check the boot_os variable for falcon mode

We use the same variable as a3m071 in the environment to determine if we
should boot into Linux or U-Boot.  This is useful on boards like
Beaglebone Black or AM335x GP EVM where we have persistent storage for
the environment.

Signed-off-by: Tom Rini <trini@ti.com>
10 years agomtd: Build nand_util.o for CONFIG_ENV_IS_IN_NAND in SPL
Tom Rini [Fri, 28 Mar 2014 16:03:37 +0000 (12:03 -0400)]
mtd: Build nand_util.o for CONFIG_ENV_IS_IN_NAND in SPL

Acked-by: Scott Wood <scottwood@freescale.com>
Signed-off-by: Tom Rini <trini@ti.com>
10 years agomtd: Add a CONFIG_SPL_MTD_SUPPORT for a more full NAND subsystem in SPL
Tom Rini [Fri, 28 Mar 2014 16:03:36 +0000 (12:03 -0400)]
mtd: Add a CONFIG_SPL_MTD_SUPPORT for a more full NAND subsystem in SPL

This mainly converts the am335x_spl_bch driver to the "normal" format
which means a slight change to nand_info within the driver.

Acked-by: Scott Wood <scottwood@freescale.com>
Signed-off-by: Tom Rini <trini@ti.com>
10 years agoenv_mmc.c: Remove NULL check on tmp_env1/2
Tom Rini [Fri, 28 Mar 2014 16:03:35 +0000 (12:03 -0400)]
env_mmc.c: Remove NULL check on tmp_env1/2

With 452a272 we moved to allocating these variables on the stack.  So
they will never now be NULL so remove these checks.

Signed-off-by: Tom Rini <trini@ti.com>
10 years agoenv_mmc.c: Allow environment to be used within SPL
Tom Rini [Fri, 28 Mar 2014 16:03:34 +0000 (12:03 -0400)]
env_mmc.c: Allow environment to be used within SPL

Inside of SPL we only concern ourself with one MMC device, so instead of
being able to use CONFIG_SYS_MMC_ENV_DEV we need to use 0 in SPL.
Switch the code to use a 'dev' variable to facilitate this.

Signed-off-by: Tom Rini <trini@ti.com>
10 years agofw_env.c: Switch get_config to use '%ms' in sscanf
Tom Rini [Fri, 28 Mar 2014 16:03:33 +0000 (12:03 -0400)]
fw_env.c: Switch get_config to use '%ms' in sscanf

We currently limit ourself to 16 characters for the device name to read
the environment from.  This is insufficient for /dev/mmcblk0boot1 to
work for example.  Switch to '%ms' which gives us a dynamically
allocated buffer instead.  We're short lived enough to not bother
free()ing the buffer.

Signed-off-by: Tom Rini <trini@ti.com>
10 years agoOMAP3: beagle-xm: generate fake USB ethernet MAC address from dieid
Nishanth Menon [Fri, 28 Mar 2014 16:00:06 +0000 (11:00 -0500)]
OMAP3: beagle-xm: generate fake USB ethernet MAC address from dieid

Similar to OMAP5uEVM, PandaBoard, BeagleBoard-XM has a USB based
ethernet without MAC address embedded. So fake a MAC address following
the similar strategy used on OMAP5 and PandaBoard family.

Signed-off-by: Nishanth Menon <nm@ti.com>
10 years agoomap3/sys_info: provide interface to read die id
Nishanth Menon [Fri, 28 Mar 2014 16:00:05 +0000 (11:00 -0500)]
omap3/sys_info: provide interface to read die id

introduce get_die_id() function which allows generation of
information such as fake MAC address from the processor ID code.

Signed-off-by: Nishanth Menon <nm@ti.com>
10 years agoOMAP: common: consolidate fake USB ethernet MAC address creation
Nishanth Menon [Fri, 28 Mar 2014 16:00:04 +0000 (11:00 -0500)]
OMAP: common: consolidate fake USB ethernet MAC address creation

TI platforms such as OMAP5uevm, PandaBoard, use equivalent
logic to generate fake USB MAC address from device unique DIE ID.

Consolidate this to a generic location such that other TI platforms such
as BeagleBoard-XM can also use the same.

NOTE: at this point in time, I dont yet see a need for a generic dummy
ethernet MAC address creation function, but if there is a need in the
future, this can be further abstracted out.

Signed-off-by: Nishanth Menon <nm@ti.com>
10 years agoARM: OMAP: replace custom sr32() by standard I/O accessors
Wolfgang Denk [Tue, 25 Mar 2014 13:49:50 +0000 (14:49 +0100)]
ARM: OMAP: replace custom sr32() by standard I/O accessors

Replace the custom bit manipulation function sr32() by standard I/O
accessors.  A major motivation for this cleanup was the fact, that a
number of calls of that function resulted in 32 bit wide shift
operations on u32 data, which according to the C-ISO/IEC-9899-Standard
provokes undefined behaviour:

6.5.7 Bitwise shift operators
...
        If the value of the right operand is negative or is greater
        than or equal to the width of the promoted left operand, the
        behavior is undefined.

Signed-off-by: Wolfgang Denk <wd@denx.de>
Cc: Tom Rini <trini@ti.com>
Cc: Albert ARIBAUD <albert.u.boot@aribaud.net>
10 years agoARM: OMAP: hide custom bit manipulation function sr32()
Wolfgang Denk [Tue, 25 Mar 2014 13:49:49 +0000 (14:49 +0100)]
ARM: OMAP: hide custom bit manipulation function sr32()

The only remaining user of the custom bit manipulation function sr32()
is arch/arm/cpu/armv7/omap3/clock.c, so  make it a static function in
that file to prepare complete removal.

Signed-off-by: Wolfgang Denk <wd@denx.de>
Cc: Tom Rini <trini@ti.com>
Cc: Albert ARIBAUD <albert.u.boot@aribaud.net>
10 years agoARM: OMAP: remove sr32() from OMAP board code
Wolfgang Denk [Tue, 25 Mar 2014 13:49:48 +0000 (14:49 +0100)]
ARM: OMAP: remove sr32() from OMAP board code

Replace the custom sr32() bit manipulation function in
arch/arm/cpu/armv7/omap3/board.c and board/ti/panda/panda.c
by standard I/O accessors.

Signed-off-by: Wolfgang Denk <wd@denx.de>
Cc: Tom Rini <trini@ti.com>
Cc: Albert ARIBAUD <albert.u.boot@aribaud.net>
10 years agoboard:tricorder: fixup SPL OOB layout
Andreas Bießmann [Thu, 10 Apr 2014 10:52:52 +0000 (12:52 +0200)]
board:tricorder: fixup SPL OOB layout

Commit d016dc42cedbf6102e100fa9ecb58462edfb14f8 changed the layout of BCH8 SW
on omap3 boards. We need to adopt the ecc layout for the nand_spl_simle
driver to avoid wrong ecc errors.

Signed-off-by: Andreas Bießmann <andreas.biessmann@corscience.de>
Cc: Thomas Weber <thomas.weber@corscience.de>
Signed-off-by: Andreas Bießmann <andreas.devel@googlemail.com>
10 years agoboard:tricorder: enable omap_gpio clocks
Andreas Bießmann [Thu, 10 Apr 2014 10:52:51 +0000 (12:52 +0200)]
board:tricorder: enable omap_gpio clocks

Signed-off-by: Andreas Bießmann <andreas.biessmann@corscience.de>
Cc: Thomas Weber <thomas.weber@corscience.de>
Signed-off-by: Andreas Bießmann <andreas.devel@googlemail.com>
10 years agoboard:tricorder: always work with valid eeprom data
Andreas Bießmann [Thu, 10 Apr 2014 10:52:50 +0000 (12:52 +0200)]
board:tricorder: always work with valid eeprom data

Commit 890880583d84607e36b52a785a96b167728bbf73 introduced EEPROM parsing and
board detection but faild to return a valid tricorder_eeprom struct for backup
case.  When pressing S200 while reading EEPROM we ignore the value. We
returned falsely a tricorder_eeprom struct with uninitialized data which is
just garbage.
Initialize it by zeroing the whole structure.

Signed-off-by: Andreas Bießmann <andreas.biessmann@corscience.de>
Cc: Thomas Weber <thomas.weber@corscience.de>
Signed-off-by: Andreas Bießmann <andreas.devel@googlemail.com>
10 years agoarm:board:trats2:FIX: Clear INFORM4 and INFORM5 registers at correct boot
Łukasz Majewski [Wed, 9 Apr 2014 13:09:44 +0000 (15:09 +0200)]
arm:board:trats2:FIX: Clear INFORM4 and INFORM5 registers at correct boot

During switch to device tree, commit 1ecab0f has removed this code.

INFORM4 and INFORM5 registers are used by TRATS2 first stage bootloader for
providing recovery. For normal operation, those two must be cleared out.

This error emerges when one force reset from u-boot's command line for
three times.

Signed-off-by: Lukasz Majewski <l.majewski@samsung.com>
Cc: Minkyu Kang <mk7.kang@samsung.com>
Acked-by: Minkyu Kang <mk7.kang@samsung.com>
10 years agokbuild: fix a bug in regeneration of linker scripts
Masahiro Yamada [Wed, 9 Apr 2014 11:10:43 +0000 (20:10 +0900)]
kbuild: fix a bug in regeneration of linker scripts

In some use cases, SPL linker script was not updated even when
it should be.

For instance,

  $ make tricoder_config all
    [ build complete ]
  ... modify include/configs/tricoder.h
  $ make

spl/u-boot-spl.lds should be updated in this case, but it wasn't.

To fix this problem, linker scripts generation should be handled
by $(call if_changed_dep,...) rather than by $(call if_changed,...).

Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
Reported-by: Andreas Bießmann <andreas.devel@googlemail.com>
Tested-by: Andreas Bießmann <andreas.devel@googlemail.com>
10 years agoMerge branch 'u-boot/master' into 'u-boot-arm/master'
Albert ARIBAUD [Tue, 8 Apr 2014 07:25:08 +0000 (09:25 +0200)]
Merge branch 'u-boot/master' into 'u-boot-arm/master'

Conflicts:
arch/arm/cpu/arm926ejs/mxs/Makefile
include/configs/trats.h
include/configs/trats2.h
include/mmc.h

10 years agoarm64 patch: gicv3 support
David Feng [Fri, 14 Mar 2014 06:26:27 +0000 (14:26 +0800)]
arm64 patch: gicv3 support

This patch add gicv3 support to uboot armv8 platform.

Changes for v2:
  - rename arm/cpu/armv8/gic.S with arm/lib/gic_64.S
  - move smp_kick_all_cpus() from gic.S to start.S, it would be
    implementation dependent.
  - Each core initialize it's own ReDistributor instead of master
    initializeing all ReDistributors. This is advised by arnab.basu
    <arnab.basu@freescale.com>.

Signed-off-by: David Feng <fenghua@phytium.com.cn>
10 years agobootstage: arm: fix fdt stashing code
Mela Custodio [Wed, 19 Feb 2014 15:16:56 +0000 (00:16 +0900)]
bootstage: arm: fix fdt stashing code

The conditional is using a variable that is not defined.

Signed-off-by: Rommel G Custodio <sessyargc+u-boot@gmail.com>
10 years agoARMv8: fix bug for flush data cache by set/way
Leo Yan [Mon, 31 Mar 2014 01:50:35 +0000 (09:50 +0800)]
ARMv8: fix bug for flush data cache by set/way

When flush the d$ with set/way instruction, it need calculate the way's
offset = log2(Associativity); but in current uboot's code, it use below
formula to calculate the offset: log2(Associativity * 2 - 1), so finally
it cannot flush data cache properly.

Signed-off-by: Leo Yan <leoy@marvell.com>
10 years agoarmv8: Flush dcache before switching to EL2
York Sun [Mon, 31 Mar 2014 21:40:32 +0000 (14:40 -0700)]
armv8: Flush dcache before switching to EL2

For ARMv8, U-boot has been running at EL3 with cache and MMU enabled.
Without proper setup for EL2, cache and MMU are both disabled (out of
reset). Before switching, we need to flush the dcache to make sure the
data is in the main memory.

Signed-off-by: York Sun <yorksun@freescale.com>
Acked-by: David.Feng <fenghua@phytium.com.cn>
10 years agoarm: vf610: fix double iomux configuration for vf610twr board
Marcel Ziswiler [Tue, 11 Mar 2014 17:44:00 +0000 (18:44 +0100)]
arm: vf610: fix double iomux configuration for vf610twr board

Get rid of double VF610_PAD_DDR_A15__DDR_A_15 iomux configuration.

Signed-off-by: Marcel Ziswiler <marcel@ziswiler.com>
10 years agoarm: vf610: add enet1 support
Marcel Ziswiler [Tue, 11 Mar 2014 17:43:59 +0000 (18:43 +0100)]
arm: vf610: add enet1 support

This patch contains several changes required for second Ethernet
(enet1/RMII1) port on vf610
- ANADIG PLL5 control definitions required for Ethernet RMII1 clock
- Secondary Ethernet (enet1) MAC RMII1 base address definition
- RMII1 iomux definitions
- VF610_PAD_PTA6__RMII0_CLKOUT iomux definition required for
  internal (e.g. crystal-less) Ethernet clocking.

Signed-off-by: Marcel Ziswiler <marcel@ziswiler.com>
[stefan@agner.ch: regrouped patch]
Signed-off-by: Stefan Agner <stefan@agner.ch>
10 years agoarm: vf610: add uart0 clock/iomux definitions
Marcel Ziswiler [Tue, 11 Mar 2014 17:43:58 +0000 (18:43 +0100)]
arm: vf610: add uart0 clock/iomux definitions

Add CCM_CCGR0_UART0_CTRL_MASK clock definition and add TX/RX iomux
definitions for UART0 (aka. SCI0).

Signed-off-by: Marcel Ziswiler <marcel@ziswiler.com>
[stefan@agner.ch: regrouped patch]
Signed-off-by: Stefan Agner <stefan@agner.ch>
10 years agoarm: vf610: fix anadig register struct
Marcel Ziswiler [Tue, 11 Mar 2014 17:43:57 +0000 (18:43 +0100)]
arm: vf610: fix anadig register struct

The anadig_reg structure started at the wrong offset (fixed by adding
reserved_0x000[4]), was missing some reserved field required for
alignment purpose (reserved_0x094[3] between pll4_denom and pll6_ctrl)
and further contained a too short reserved field causing further miss-
alignment (reserved_0x0C4[7]). Also, rename all the reserved fields
and using a memory offset based scheme for.

Discovered and tested by temporarily putting the following debug
instrumentation into board_init():
    struct anadig_reg *anadig = (struct anadig_reg *)ANADIG_BASE_ADDR;
    printf("&anadig->pll3_ctrl=0x%p\n", &anadig->pll3_ctrl);
    printf("&anadig->pll5_ctrl=0x%p\n", &anadig->pll5_ctrl);

Signed-off-by: Marcel Ziswiler <marcel@ziswiler.com>
[stefan@agner.ch: regrouped patch]
Signed-off-by: Stefan Agner <stefan@agner.ch>
10 years agobuild:arm: Remove setting of CROSS_COMPILE environment variable
Łukasz Majewski [Tue, 18 Mar 2014 15:46:48 +0000 (16:46 +0100)]
build:arm: Remove setting of CROSS_COMPILE environment variable

After Kbuild introduction, the CROSS_COMPILE environment variable has been
set to some default value (prefix arm-linux-).

This shall be removed since it breaks building u-boot for native arm target
(like qemu ARM).
Moreover not all compilers have arm-linux- prefix.

Additionally the u-boot cross compiles with CROSS_COMPILE= set explicitly-
e.g.:
CROSS_COMPILE=/ .... /arm-v7a-linux-gnueabi- make

Signed-off-by: Lukasz Majewski <l.majewski@samsung.com>
Cc: Masahiro Yamada <yamada.m@jp.panasonic.com>
Acked-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
10 years agoMerge branch 'u-boot-imx/master' into 'u-boot-arm/master'
Albert ARIBAUD [Mon, 7 Apr 2014 17:13:42 +0000 (19:13 +0200)]
Merge branch 'u-boot-imx/master' into 'u-boot-arm/master'

10 years agoMX6: Enable ARM errata workaround 794072 and 761320
Nitin Garg [Wed, 2 Apr 2014 13:55:03 +0000 (08:55 -0500)]
MX6: Enable ARM errata workaround 794072 and 761320

Since MX6 is Cortex-A9 r2p10, enable software workaround
for errata 794072 and 761320.

Signed-off-by: Nitin Garg <nitin.garg@freescale.com>
10 years agoARM: Add workaround for Cortex-A9 errata 761320
Nitin Garg [Wed, 2 Apr 2014 13:55:02 +0000 (08:55 -0500)]
ARM: Add workaround for Cortex-A9 errata 761320

Full cache line writes to the same memory region from at least two
processors might deadlock the processor. Exists on r1, r2, r3
revisions.

Signed-off-by: Nitin Garg <nitin.garg@freescale.com>
Acked-by: Fabio Estevam <fabio.estevam@freescale.com>
10 years agoARM: Add workaround for Cortex-A9 errata 794072
Nitin Garg [Wed, 2 Apr 2014 13:55:01 +0000 (08:55 -0500)]
ARM: Add workaround for Cortex-A9 errata 794072

A short loop including a DMB instruction might cause a denial of
service on another processor which executes a CP15 broadcast operation.
Exists on r1, r2, r3, r4 revisions.

Signed-off-by: Nitin Garg <nitin.garg@freescale.com>
Acked-by: Dirk Behme <dirk.behme@de.bosch.com>
10 years agoarmv8/cache: Change cache invalidate and flush function
York Sun [Wed, 26 Feb 2014 21:26:04 +0000 (13:26 -0800)]
armv8/cache: Change cache invalidate and flush function

When SoC first boots up, we should invalidate the cache but not flush it.
We can use the same function for invalid and flush mostly, with a wrapper.

Invalidating large cache can ben slow on emulator, so we postpone doing
so until I-cache is enabled, and before enabling D-cache.

Signed-off-by: York Sun <yorksun@freescale.com>
CC: David Feng <fenghua@phytium.com.cn>
10 years agoarmv8/cache: Flush D-cache, invalidate I-cache for relocation
York Sun [Wed, 26 Feb 2014 21:26:03 +0000 (13:26 -0800)]
armv8/cache: Flush D-cache, invalidate I-cache for relocation

If D-cache is enabled, we need to flush it, and invalidate i-cache before
jumping to the new location. This should be done right after relocation.

Signed-off-by: York Sun <yorksun@freescale.com>
CC: David Feng <fenghua@phytium.com.cn>
10 years agoarmv8/cache: Consolidate setting for MAIR and TCR
York Sun [Wed, 26 Feb 2014 21:26:02 +0000 (13:26 -0800)]
armv8/cache: Consolidate setting for MAIR and TCR

Move setting for MAIR and TCR to cache_v8.c, to avoid conflict with
sub-architecture.

Signed-off-by: York Sun <yorksun@freescale.com>
CC: David Feng <fenghua@phytium.com.cn>
10 years agoarm: Handle .gnu.hash section in ldscripts
Andreas Färber [Mon, 27 Jan 2014 04:48:11 +0000 (05:48 +0100)]
arm: Handle .gnu.hash section in ldscripts

Avoids "could not find output section .gnu.hash" ld.bfd errors on openSUSE.

Cc: Albert Aribaud <albert.u.boot@aribaud.net>
Cc: Tom Rini <trini@ti.com>
Signed-off-by: Andreas Färber <afaerber@suse.de>
Acked-by: Simon Glass <sjg@chromium.org>
Tested-by: Simon Glass <sjg@chromium.org>
10 years agosocfpga: Adding Clock Manager driver
Chin Liang See [Wed, 5 Mar 2014 04:13:53 +0000 (22:13 -0600)]
socfpga: Adding Clock Manager driver

Clock Manager driver will be called to reconfigure all the
clocks setting based on user input. The input are passed to
Preloader through handoff files

Signed-off-by: Chin Liang See <clsee@altera.com>
Cc: Albert Aribaud <albert.u.boot@aribaud.net>
Cc: Tom Rini <trini@ti.com>
Cc: Wolfgang Denk <wd@denx.de>
CC: Pavel Machek <pavel@denx.de>
Cc: Dinh Nguyen <dinguyen@altera.com>
Acked-by: Pavel Machek <pavel@denx.de>
10 years agoRevert "Start the deprecation process for generic board"
Tom Rini [Fri, 4 Apr 2014 14:09:19 +0000 (10:09 -0400)]
Revert "Start the deprecation process for generic board"

We've run into a non-trivial conversion to CONFIG_SYS_GENERIC_BOARD so
we'll postpone this notice until right after v2014.04 is out.

This reverts commit 36c4b1d98059244c34ec3327d9cc9f3c552fd01b.

Signed-off-by: Tom Rini <trini@ti.com>
10 years agoarm: mxs: Add support for generating signed BootStream
Marek Vasut [Thu, 3 Apr 2014 17:12:21 +0000 (19:12 +0200)]
arm: mxs: Add support for generating signed BootStream

This patch adds the groundwork for generating signed BootStream, which
can be used by the HAB library in i.MX28. We are adding a new target,
u-boot-signed.sb , since the process for generating regular non-signed
BootStream is much easier. Moreover, the signed bootstream depends on
external _proprietary_ _binary-only_ tool from Freescale called 'cst',
which is available only under NDA.

To make things even uglier, the CST or HAB mandates a kind-of circular
dependency. The problem is, unlike the regular IVT, which is generated
by mxsimage, the IVT for signed boot must be generated by hand here due
to special demands of the CST. The U-Boot binary (or SPL binary) and IVT
are then signed by the CST as a one block. But here is the problem. The
size of the entire image (U-Boot, IVT, CST blocks) must be appended at
the end of IVT. But the size of the entire image is not known until the
CST has finished signing the U-Boot and IVT. We solve this by expecting
the CST block to be always 3904B (which it is in case two files, U-Boot
and the hand-made IVT, are signed in the CST block).

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Stefano Babic <sbabic@denx.de>
10 years agoMerge branch 'master' of git://git.denx.de/u-boot-arm into master
Stefano Babic [Fri, 4 Apr 2014 09:35:30 +0000 (11:35 +0200)]
Merge branch 'master' of git://git.denx.de/u-boot-arm into master

Conflicts:
arch/arm/cpu/arm926ejs/mxs/mxsimage.mx23.cfg
arch/arm/cpu/arm926ejs/mxs/mxsimage.mx28.cfg

Signed-off-by: Stefano Babic <sbabic@denx.de>
10 years agoRevert "arm: mxs: Add support for generating signed BootStream"
Stefano Babic [Fri, 4 Apr 2014 09:29:29 +0000 (11:29 +0200)]
Revert "arm: mxs: Add support for generating signed BootStream"

This reverts commit 53e6b14e037c9f72e6d03244c32d8d597e2e0234.

Patch does not merge anymore with u-boot-arm and must be rebased.

Signed-off-by: Stefano Babic <sbabic@denx.de>
10 years agotrats/trats2: enable CONFIG_RANDOM_UUID
Przemyslaw Marczak [Wed, 2 Apr 2014 08:20:07 +0000 (10:20 +0200)]
trats/trats2: enable CONFIG_RANDOM_UUID

This change enables automatically uuid generation by command gpt.
In case of updating partitions layout user don't need to care about
generate uuid manually.

Signed-off-by: Przemyslaw Marczak <p.marczak@samsung.com>
Cc: Minkyu Kang <mk7.kang@samsung.com>
Cc: Piotr Wilczek <p.wilczek@samsung.com>
Cc: Stephen Warren <swarren@nvidia.com>
Cc: Lukasz Majewski <l.majewski@samsung.com>
Cc: trini@ti.com
10 years agocmd:gpt: randomly generate each partition uuid if undefined
Przemyslaw Marczak [Wed, 2 Apr 2014 08:20:06 +0000 (10:20 +0200)]
cmd:gpt: randomly generate each partition uuid if undefined

Changes:
- randomly generate partition uuid if any is undefined and CONFIG_RAND_UUID
  is defined
- print debug info about set/unset/generated uuid
- update doc/README.gpt

Signed-off-by: Przemyslaw Marczak <p.marczak@samsung.com>
Acked-by: Lukasz Majewski <l.majewski@samsung.com>
Cc: Piotr Wilczek <p.wilczek@samsung.com>
Cc: Tom Rini <trini@ti.com>
Cc: Stephen Warren <swarren@nvidia.com>
Cc: Lukasz Majewski <l.majewski@samsung.com>
10 years agonew commands: uuid and guid - generate random unique identifier
Przemyslaw Marczak [Wed, 2 Apr 2014 08:20:05 +0000 (10:20 +0200)]
new commands: uuid and guid - generate random unique identifier

Those commands basis on implementation of random UUID generator version 4
which is described in RFC4122. The same algorithm is used for generation
both ids but string representation is different as below.

char:  0        9    14   19   24         36
       xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
UUID:     be     be   be   be       be
GUID:     le     le   le   be       be

Commands usage:
- uuid [<varname>]
- guid [<varname>]

The result is saved in environment as a "varname" variable if argument is given,
if not then it is printed.

New config:
- CONFIG_CMD_UUID

Signed-off-by: Przemyslaw Marczak <p.marczak@samsung.com>
Cc: Stephen Warren <swarren@nvidia.com>
Cc: Lukasz Majewski <l.majewski@samsung.com>
Cc: trini@ti.com
10 years agolib: uuid: add functions to generate UUID version 4
Przemyslaw Marczak [Wed, 2 Apr 2014 08:20:04 +0000 (10:20 +0200)]
lib: uuid: add functions to generate UUID version 4

This patch adds support to generate UUID (Universally Unique Identifier)
in version 4 based on RFC4122, which is randomly.

Source: https://www.ietf.org/rfc/rfc4122.txt

Changes:
- new configs:
  - CONFIG_LIB_UUID for compile lib/uuid.c
  - CONFIG_RANDOM_UUID for functions gen_rand_uuid() and gen_rand_uuid_str()
- add configs dependency to include/config_fallbacks.h for lib uuid.

lib/uuid.c:
- add gen_rand_uuid() - this function writes 16 bytes len binary representation
  of UUID v4 to the memory at given address.

- add gen_rand_uuid_str() - this function writes 37 bytes len hexadecimal
  ASCII string representation of UUID v4 to the memory at given address.

Signed-off-by: Przemyslaw Marczak <p.marczak@samsung.com>
Cc: Stephen Warren <swarren@nvidia.com>
Cc: Lukasz Majewski <l.majewski@samsung.com>
[trini: Add CONFIG_EFI_PARTITION to fallbacks]
Signed-off-by: Tom Rini <trini@ti.com>
10 years agolib: uuid: code refactor for proper maintain between uuid bin and string
Przemyslaw Marczak [Wed, 2 Apr 2014 08:20:03 +0000 (10:20 +0200)]
lib: uuid: code refactor for proper maintain between uuid bin and string

Changes in lib/uuid.c to:
- uuid_str_to_bin()
- uuid_bin_to_str()

New parameter is added to specify input/output string format in listed functions
This change allows easy recognize which UUID type is or should be stored in given
string array. Binary data of UUID and GUID is always stored in big endian, only
string representations are different as follows.

String byte: 0                                  36
String char: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
string UUID:    be     be   be   be       be
string GUID:    le     le   le   be       be

This patch also updates functions calls and declarations in a whole code.

Signed-off-by: Przemyslaw Marczak <p.marczak@samsung.com>
Cc: Stephen Warren <swarren@nvidia.com>
Cc: Lukasz Majewski <l.majewski@samsung.com>
Cc: trini@ti.com
10 years agopart_efi: move uuid<->string conversion functions into lib/uuid.c
Przemyslaw Marczak [Wed, 2 Apr 2014 08:20:02 +0000 (10:20 +0200)]
part_efi: move uuid<->string conversion functions into lib/uuid.c

This commit introduces cleanup for uuid library.
Changes:
- move uuid<->string conversion functions into lib/uuid.c so they can be
  used by code outside part_efi.c.
- rename uuid_string() to uuid_bin_to_str() for consistency with existing
  uuid_str_to_bin()
- add an error return code to uuid_str_to_bin()
- update existing code to the new library functions.

Signed-off-by: Przemyslaw Marczak <p.marczak@samsung.com>
Cc: Stephen Warren <swarren@nvidia.com>
Cc: Lukasz Majewski <l.majewski@samsung.com>
Cc: trini@ti.com
10 years agoahci: Fix data abort on multiple scsi resets.
Roger Quadros [Tue, 1 Apr 2014 14:26:40 +0000 (17:26 +0300)]
ahci: Fix data abort on multiple scsi resets.

Commit 2faf5fb82ed6 introduced a regression that causes a data
abort when running scsi init followed by scsi reset.

There are 2 problems with the original commit
1) ALLOC_CACHE_ALIGN_BUFFER() allocates memory on the stack but is
assigned to ataid[port] and used by other functions.
2) The function ata_scsiop_inquiry() tries to free memory which was
never allocated on the heap.

Fix these problems by using tmpid as a temporary cache aligned buffer.
Allocate memory separately for ataid[port] and re-use it if required.

Fixes: 2faf5fb82ed6 (ahci: Fix cache align error messages)

Reported-by: Eli Nidam <elini@marvell.com>
Signed-off-by: Roger Quadros <rogerq@ti.com>
10 years agoconfig:trats2: Change u-boot's TEXT_BASE from 0x78100000 to 0x43e00000
Łukasz Majewski [Wed, 19 Mar 2014 13:47:06 +0000 (14:47 +0100)]
config:trats2: Change u-boot's TEXT_BASE from 0x78100000 to 0x43e00000

The u-boot's image TEXT_BASE needs to be changed to 0x43e00000 from 0x78100000.

This change provides compatibility with other trats2 (RD_PQ) devices
(http://download.tizen.org/releases/system/).

Signed-off-by: Lukasz Majewski <l.majewski@samsung.com>
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
10 years agommc:eSDHC: Workaround for data timeout issue on Txxx SoC
Haijun.Zhang [Tue, 18 Mar 2014 09:04:23 +0000 (17:04 +0800)]
mmc:eSDHC: Workaround for data timeout issue on Txxx SoC

1. The Data timeout counter value in eSDHC_SYSCTL register is
not working as it should be, so add quirks to enable this
workaround to fix it to the max value 0xE.

2. Add CONFIG_SYS_FSL_ERRATUM_ESDHC111 to enable its workaround.

* Update of patch for change mmc interface by
Pantelis Antoniou <panto@antoniou-consulting.com>

Signed-off-by: Haijun Zhang <Haijun.Zhang@freescale.com>
Acked-by: Pantelis Antoniou <panto@antoniou-consulting.com>
10 years agommc: fsl_esdhc: add controller reset in case of data related errors too
Andrew Gabbasov [Mon, 24 Mar 2014 07:41:06 +0000 (02:41 -0500)]
mmc: fsl_esdhc: add controller reset in case of data related errors too

The controller reset is performed now if command error occurs.
This commit adds the reset for the case of data related errors too.

Signed-off-by: Andrew Gabbasov <andrew_gabbasov@mentor.com>
Acked-by: Pantelis Antoniou <panto@antoniou-consulting.com>
10 years agommc: fsl_esdhc: fix calculation of timeout for data transactions
Andrew Gabbasov [Mon, 24 Mar 2014 07:40:41 +0000 (02:40 -0500)]
mmc: fsl_esdhc: fix calculation of timeout for data transactions

Calculation of the timeout value should be based on actual clock value,
written to controller registers. Since mmc->tran_speed is either the
maximum allowed speed, or the preliminary value, that is be not yet
set to registers, the actual timeout, taken by the controller, based
on its clock settings, may be much longer than expected, based on
mmc->tran_speed value. In particular it happens at early initialization
stage, when typical value of mmc->tran_speed is 20MHz or 26MHz, while
actual clock setting, configured in the controller, is 400kHz.
It's more correct to use mmc->clock value for timeout calculation instead.

Signed-off-by: Andrew Gabbasov <andrew_gabbasov@mentor.com>
Acked-by: Pantelis Antoniou <panto@antoniou-consulting.com>
10 years agommc: Add 'mmc rst-function' sub-command
Tom Rini [Fri, 7 Feb 2014 19:15:20 +0000 (14:15 -0500)]
mmc: Add 'mmc rst-function' sub-command

Some eMMC chips may need the RST_n_FUNCTION bit set to a non-zero value
in order for warm reset of the system to work.  Details on this being
required will be part of the eMMC datasheet.  Also add using this
command to the dra7xx README.

* Whitespace fix by panto

Signed-off-by: Tom Rini <trini@ti.com>
Acked-by: Pantelis Antoniou <panto@antoniou-consulting.com>
10 years agommc: sh_mmcif: Fix warning by unused variable
Nobuhiro Iwamatsu [Mon, 31 Mar 2014 05:54:29 +0000 (14:54 +0900)]
mmc: sh_mmcif: Fix warning by unused variable

Signed-off-by: Nobuhiro Iwamatsu <nobuhiro.iwamatsu.yj@renesas.com>
Reported-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
Acked-by: Pantelis Antoniou <panto@antoniou-consulting.com>
10 years agommc: sh_mmcif: Fix compile error
Nobuhiro Iwamatsu [Mon, 31 Mar 2014 05:54:28 +0000 (14:54 +0900)]
mmc: sh_mmcif: Fix compile error

BY commit "mmc: Split mmc struct, rework mmc initialization (v2)",
sh_mmcif has compile error. This fixes compile error.

Signed-off-by: Nobuhiro Iwamatsu <nobuhiro.iwamatsu.yj@renesas.com>
CC: Pantelis Antoniou <panto@antoniou-consulting.com>
Reported-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
Acked-by: Pantelis Antoniou <panto@antoniou-consulting.com>
10 years agomx6: add example DTB for mx6qsabreauto
Stefano Babic [Mon, 31 Mar 2014 07:50:36 +0000 (09:50 +0200)]
mx6: add example DTB for mx6qsabreauto

Signed-off-by: Stefano Babic <sbabic@denx.de>
CC: Fabio Estevam <fabio.estevam@freescale.com>
10 years agoimx: add rules for U-Boot DTB support
Stefano Babic [Mon, 31 Mar 2014 07:50:35 +0000 (09:50 +0200)]
imx: add rules for U-Boot DTB support

Signed-off-by: Stefano Babic <sbabic@denx.de>
10 years agomxs: fix warning in SPL with console support
Stefano Babic [Wed, 2 Apr 2014 08:42:06 +0000 (10:42 +0200)]
mxs: fix warning in SPL with console support

Signed-off-by: Stefano Babic <sbabic@denx.de>
10 years agoMerge branch 'u-boot-ti/master' into 'u-boot-arm/master'
Albert ARIBAUD [Wed, 2 Apr 2014 04:43:09 +0000 (06:43 +0200)]
Merge branch 'u-boot-ti/master' into 'u-boot-arm/master'

10 years agoarm: mxs: Add serial console support into SPL
Marek Vasut [Wed, 19 Mar 2014 01:21:36 +0000 (02:21 +0100)]
arm: mxs: Add serial console support into SPL

Add support for serial console into the i.MX23/i.MX28 SPL. A full,
uncrippled serial console support comes very helpful when debugging
various spectacular hardware bringup issues early in the process.
Because we do not use SPL framework, but have our own minimalistic
SPL, which is compatible with the i.MX23/i.MX28 BootROM, we do not
use preloader_console_init(), but instead use a similar function to
start the console. Nonetheless, to avoid blowing up the size of the
SPL binary, this support is enabled only if CONFIG_SPL_SERIAL_SUPPORT
is defined, which is disabled by default.

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Stefano Babic <sbabic@denx.de>
10 years agoarm: mxs: Properly set GD pointer in SPL
Marek Vasut [Wed, 19 Mar 2014 01:21:35 +0000 (02:21 +0100)]
arm: mxs: Properly set GD pointer in SPL

Set the GD pointer in the SPL to a defined symbol so various
functions from U-Boot can be used without adverse side effects.

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Stefano Babic <sbabic@denx.de>
10 years agoPrepare v2014.04-rc3 v2014.04-rc3
Tom Rini [Mon, 31 Mar 2014 19:24:48 +0000 (15:24 -0400)]
Prepare v2014.04-rc3

Signed-off-by: Tom Rini <trini@ti.com>
10 years agoarm: mx5: Avoid hardcoding memory sizes on M53EVK
Marek Vasut [Fri, 28 Mar 2014 07:31:01 +0000 (08:31 +0100)]
arm: mx5: Avoid hardcoding memory sizes on M53EVK

The DRAM size can be easily detected at runtime on i.MX53. Implement
such detection on M53EVK and adjust the rest of the macros accordingly
to use the detected values.

An important thing to note here is that we had to override the function
for trimming the effective DRAM address, get_effective_memsize(). That
is because the function uses CONFIG_MAX_MEM_MAPPED as the upper bound of
the available DRAM and we don't have gd->bd->bi_dram[0].size set up at
the time the function is called, thus we cannot put this into the macro
CONFIG_MAX_MEM_MAPPED . Instead, we use custom override where we use the
size of the first DRAM block which we just detected.

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Fabio Estevam <fabio.estevam@freescale.com>
Cc: Stefano Babic <sbabic@denx.de>
Cc: Wolfgang Denk <wd@denx.de>
10 years agoarm: mx5: Fix memory slowness on M53EVK
Marek Vasut [Fri, 28 Mar 2014 07:31:00 +0000 (08:31 +0100)]
arm: mx5: Fix memory slowness on M53EVK

Fix memory access slowness on i.MX53 M53EVK board. Let us inspect the
issue: First of all, the i.MX53 CPU has two memory banks mapped at
0x7000_0000 and 0xb000_0000 and each of those can hold up to 1GiB of
DRAM memory. Notice that the memory area is not continuous. On M53EVK,
each of the banks contain 512MiB of DRAM, which makes a total of 1GiB
of memory available to the system.

The problem is how the relocation of U-Boot is treated on i.MX53 . The
U-Boot is placed at the ((start of first DRAM partition) + (gd->ram_size)) .
This in turn poses a problem, since in our case, the gd->ram_size is 1GiB,
the first DRAM bank starts at 0x7000_0000 and contains 512MiB of memory.
Thus, with this algorithm, U-Boot is placed at offset:

    0x7000_0000 + 1GiB - sizeof(u-boot and some small margin)

This is past the DRAM available in the first bank on M53EVK, but is still
within the address range of the first DRAM bank. Because of the memory
wrap-around, the data can still be read and written to this area, but the
access is much slower.

There were two ideas how to solve this problem, first was to map both of
the available DRAM chunks next to one another by using MMU, second was to
define CONFIG_VERY_BIG_RAM and CONFIG_MAX_MEM_MAPPED to size of the memory
in the first DRAM bank. We choose the later because it turns out the former
is not applicable afterall. The former cannot be used in case Linux kernel
was loaded into the second DRAM bank area, which would be remapped and one
would try booting the kernel, since at some point before the kernel is started,
the MMU would be turned off, which would destroy the mapping and hang the
system.

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Fabio Estevam <fabio.estevam@freescale.com>
Cc: Stefano Babic <sbabic@denx.de>
Cc: Wolfgang Denk <wd@denx.de>
10 years agoarm: mx5: Avoid hardcoding memory sizes on MX53QSB
Marek Vasut [Fri, 28 Mar 2014 07:30:59 +0000 (08:30 +0100)]
arm: mx5: Avoid hardcoding memory sizes on MX53QSB

The DRAM size can be easily detected at runtime on i.MX53. Implement
such detection on MX53QSB and adjust the rest of the macros accordingly
to use the detected values.

An important thing to note here is that we had to override the function
for trimming the effective DRAM address, get_effective_memsize(). That
is because the function uses CONFIG_MAX_MEM_MAPPED as the upper bound of
the available DRAM and we don't have gd->bd->bi_dram[0].size set up at
the time the function is called, thus we cannot put this into the macro
CONFIG_MAX_MEM_MAPPED . Instead, we use custom override where we use the
size of the first DRAM block which we just detected.

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Fabio Estevam <fabio.estevam@freescale.com>
Cc: Stefano Babic <sbabic@denx.de>
Cc: Wolfgang Denk <wd@denx.de>
10 years agoarm: mx5: Fix memory slowness on MX53QSB
Marek Vasut [Fri, 28 Mar 2014 07:30:58 +0000 (08:30 +0100)]
arm: mx5: Fix memory slowness on MX53QSB

Fix memory access slowness on i.MX53 MX53QSB board. Let us inspect the
issue: First of all, the i.MX53 CPU has two memory banks mapped at
0x7000_0000 and 0xb000_0000 and each of those can hold up to 1GiB of
DRAM memory. Notice that the memory area is not continuous. On MX53QSB,
each of the banks contain 512MiB of DRAM, which makes a total of 1GiB
of memory available to the system.

The problem is how the relocation of U-Boot is treated on i.MX53 . The
U-Boot is placed at the ((start of first DRAM partition) + (gd->ram_size)) .
This in turn poses a problem, since in our case, the gd->ram_size is 1GiB,
the first DRAM bank starts at 0x7000_0000 and contains 512MiB of memory.
Thus, with this algorithm, U-Boot is placed at offset:

    0x7000_0000 + 1GiB - sizeof(u-boot and some small margin)

This is past the DRAM available in the first bank on MX53QSB, but is still
within the address range of the first DRAM bank. Because of the memory
wrap-around, the data can still be read and written to this area, but the
access is much slower.

There were two ideas how to solve this problem, first was to map both of
the available DRAM chunks next to one another by using MMU, second was to
define CONFIG_VERY_BIG_RAM and CONFIG_MAX_MEM_MAPPED to size of the memory
in the first DRAM bank. We choose the later because it turns out the former
is not applicable afterall. The former cannot be used in case Linux kernel
was loaded into the second DRAM bank area, which would be remapped and one
would try booting the kernel, since at some point before the kernel is started,
the MMU would be turned off, which would destroy the mapping and hang the
system.

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Fabio Estevam <fabio.estevam@freescale.com>
Cc: Stefano Babic <sbabic@denx.de>
Cc: Wolfgang Denk <wd@denx.de>
10 years agoARM: mx6: Add PCIe on SabreSDP
Marek Vasut [Sun, 23 Mar 2014 21:45:41 +0000 (22:45 +0100)]
ARM: mx6: Add PCIe on SabreSDP

Add support for PCIe on MX6 SabreSDP board and enable the support
in the config file.

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Stefano Babic <sbabic@denx.de>
Cc: Fabio Estevam <fabio.estevam@freescale.com>
Cc: Liu Ying <Ying.Liu@freescale.com>
10 years agopci: mx6: Implement power callback
Marek Vasut [Sun, 23 Mar 2014 21:45:40 +0000 (22:45 +0100)]
pci: mx6: Implement power callback

Implement a callback to toggle the slot power supply. The callback
can be overriden in case some more complex power supply for the slot
was implemented in hardware, yet for the usual case, one can define
a GPIO which toggles the power to the slot.

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Stefano Babic <sbabic@denx.de>
Cc: Fabio Estevam <fabio.estevam@freescale.com>
Cc: Liu Ying <Ying.Liu@freescale.com>
10 years agoARM: mx6: Disable PCIe on SABRE Lite/Nitrogen6x
Eric Nelson [Sat, 22 Mar 2014 15:17:09 +0000 (08:17 -0700)]
ARM: mx6: Disable PCIe on SABRE Lite/Nitrogen6x

Use of PCIe on SABRE Lite and Nitrogen6x boards
is atypical and requires the use of custom daughter
boards.

Use in U-Boot is even rarer, so this patch removes it from
the standard configuration.

Signed-off-by: Eric Nelson <eric.nelson@boundarydevices.com>
Acked-by: Marek Vasut <marex@denx.de>
10 years agowoodburn_sd: Remove CONFIG_BOOT_INTERNAL
Fabio Estevam [Sun, 16 Mar 2014 21:20:09 +0000 (18:20 -0300)]
woodburn_sd: Remove CONFIG_BOOT_INTERNAL

CONFIG_BOOT_INTERNAL is not used anywhere, so let's remove it.

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Acked-by: Stefano Babic <sbabic@denx.de>
10 years agoARM: mxs: Add OCOTP driver
Marek Vasut [Thu, 6 Mar 2014 00:52:03 +0000 (01:52 +0100)]
ARM: mxs: Add OCOTP driver

Add yet another OCOTP driver for this i.MX family. This time, it's a driver for
the OCOTP variant found in the i.MX23 and i.MX28. This version of OCOTP is too
different from the i.MX6 one that I could not use the mxc_ocotp.c driver without
making it into a big pile of #ifdef . This driver implements the regular fuse
command interface, but due to the IP blocks' limitation, we support only READ
and PROG functions.

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Stefano Babic <sbabic@denx.de>
10 years agoarm: mxs: Add support for generating signed BootStream
Marek Vasut [Wed, 5 Mar 2014 19:01:14 +0000 (20:01 +0100)]
arm: mxs: Add support for generating signed BootStream

This patch adds the groundwork for generating signed BootStream, which
can be used by the HAB library in i.MX28. We are adding a new target,
u-boot-signed.sb , since the process for generating regular non-signed
BootStream is much easier. Moreover, the signed bootstream depends on
external _proprietary_ _binary-only_ tool from Freescale called 'cst',
which is available only under NDA.

To make things even uglier, the CST or HAB mandates a kind-of circular
dependency. The problem is, unlike the regular IVT, which is generated
by mxsimage, the IVT for signed boot must be generated by hand here due
to special demands of the CST. The U-Boot binary (or SPL binary) and IVT
are then signed by the CST as a one block. But here is the problem. The
size of the entire image (U-Boot, IVT, CST blocks) must be appended at
the end of IVT. But the size of the entire image is not known until the
CST has finished signing the U-Boot and IVT. We solve this by expecting
the CST block to be always 3904B (which it is in case two files, U-Boot
and the hand-made IVT, are signed in the CST block).

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Stefano Babic <sbabic@denx.de>
10 years agoarm: mxs: Adjust the load address of U-Boot and SPL for HAB
Marek Vasut [Wed, 5 Mar 2014 19:01:13 +0000 (20:01 +0100)]
arm: mxs: Adjust the load address of U-Boot and SPL for HAB

When using HAB, there are additional special requirements on the placement of
U-Boot and the U-Boot SPL in memory. To fullfill these, this patch moves the
U-Boot binary a little further from the begining of the DRAM, so the HAB CST
and IVT can be placed in front of the U-Boot binary. This is necessary, since
both the U-Boot and the IVT must be contained in single CST signature. To
make things worse, the IVT must be concatenated with one more entry at it's
end, that is the length of the entire CST signature, IVT and U-Boot binary
in memory. By placing the blocks in this order -- CST, IVT, U-Boot, we can
easily align them all and then produce the length field as needed.

As for the SPL, on i.MX23/i.MX28, the SPL size is limited to 32 KiB, thus
we place the IVT at 0x8000 offset, CST right past IVT and claim the size
is correct. The HAB library accepts this setup.

Finally, to make sure the vectoring in SPL still works even after moving
the SPL from 0x0 to 0x1000, we add a small function which copies the
vectoring code and tables to 0x0. This is fine, since the vectoring code
is position independent.

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Stefano Babic <sbabic@denx.de>