platform/kernel/u-boot.git
13 years agoimx: fix coding style
Fabio Estevam [Thu, 13 Oct 2011 05:34:59 +0000 (05:34 +0000)]
imx: fix coding style

Fix checkpatch warning and errors in several i.MX related files.

While at it also address a checkpatch warning at arch/arm/cpu/armv7/mx5/soc.c
regarding the usage of extern in a C file.

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
13 years agomisc: pmic: drop old Freescale's pmic driver
Stefano Babic [Sat, 8 Oct 2011 09:35:14 +0000 (11:35 +0200)]
misc: pmic: drop old Freescale's pmic driver

Signed-off-by: Stefano Babic <sbabic@denx.de>
13 years agoMX31: mx31pdk: use new pmic driver
Stefano Babic [Sat, 8 Oct 2011 09:04:22 +0000 (11:04 +0200)]
MX31: mx31pdk: use new pmic driver

Switch to new pmic generic driver.

Signed-off-by: Stefano Babic <sbabic@denx.de>
CC: Fabio Estevam <fabio.estevam@freescale.com>
13 years agoMX31: mx31ads: use new pmic driver
Stefano Babic [Sat, 8 Oct 2011 09:02:53 +0000 (11:02 +0200)]
MX31: mx31ads: use new pmic driver

Switch to new pmic generic driver.

Signed-off-by: Stefano Babic <sbabic@denx.de>
CC: Fabio Estevam <fabio.estevam@freescale.com>
13 years agoMX31: mx31_litekit: use new pmic driver
Stefano Babic [Sat, 8 Oct 2011 09:01:52 +0000 (11:01 +0200)]
MX31: mx31_litekit: use new pmic driver

Switch to new pmic generic driver.

Signed-off-by: Stefano Babic <sbabic@denx.de>
13 years agoMX5: mx53evk: use new pmic driver
Stefano Babic [Sat, 8 Oct 2011 09:00:22 +0000 (11:00 +0200)]
MX5: mx53evk: use new pmic driver

Switch to new pmic generic driver.

Signed-off-by: Stefano Babic <sbabic@denx.de>
CC: Jason Liu <jason.hui@linaro.org>
Acked-by: Jason Liu <jason.hui@linaro.org>
13 years agoMX5: mx51evk: use new pmic driver
Stefano Babic [Sat, 8 Oct 2011 08:59:20 +0000 (10:59 +0200)]
MX5: mx51evk: use new pmic driver

Switch to new pmic generic driver.

Signed-off-by: Stefano Babic <sbabic@denx.de>
13 years agoMX35: mx35pdk: use new pmic driver
Stefano Babic [Thu, 6 Oct 2011 19:07:42 +0000 (21:07 +0200)]
MX35: mx35pdk: use new pmic driver

Switch to new pmic generic driver.

Signed-off-by: Stefano Babic <sbabic@denx.de>
13 years agomisc: pmic: addI2C support to pmic_fsl driver
Stefano Babic [Thu, 6 Oct 2011 19:06:39 +0000 (21:06 +0200)]
misc: pmic: addI2C  support to pmic_fsl driver

Signed-off-by: Stefano Babic <sbabic@denx.de>
13 years agomisc: pmic: use I2C_SET_BUS in pmic I2C
Stefano Babic [Tue, 11 Oct 2011 17:18:05 +0000 (19:18 +0200)]
misc: pmic: use I2C_SET_BUS in pmic I2C

Instead of using directly the i2c_set_bus() function,
the I2C_SET_BUS macro must be used to avoid build
errors for targets without multibus I2C.

Signed-off-by: Stefano Babic <sbabic@denx.de>
13 years agoMX5: efikamx/efikasb: use new pmic driver
Stefano Babic [Thu, 6 Oct 2011 09:44:26 +0000 (11:44 +0200)]
MX5: efikamx/efikasb: use new pmic driver

Switch to new pmic generic driver.

Signed-off-by: Stefano Babic <sbabic@denx.de>
CC: Marek Vasut <marek.vasut@gmail.com>
Acked-by: Marek Vasut <marek.vasut@gmail.com>
13 years agoMX3: qong: use new pmic driver
Stefano Babic [Thu, 6 Oct 2011 09:23:33 +0000 (11:23 +0200)]
MX3: qong: use new pmic driver

Switch to new pmic generic driver.

Signed-off-by: Stefano Babic <sbabic@denx.de>
13 years agoRTC: Switch mc13783 to generic pmic code
Stefano Babic [Sun, 2 Oct 2011 16:38:43 +0000 (18:38 +0200)]
RTC: Switch mc13783 to generic pmic code

Signed-off-by: Stefano Babic <sbabic@denx.de>
13 years agoMX5: vision2: use new pmic driver
Stefano Babic [Sun, 2 Oct 2011 10:58:03 +0000 (12:58 +0200)]
MX5: vision2: use new pmic driver

Switch to new pmic generic driver.

Signed-off-by: Stefano Babic <sbabic@denx.de>
13 years agomisc: pmic: Freescale PMIC switches to generic PMIC driver
Stefano Babic [Wed, 5 Oct 2011 10:38:27 +0000 (12:38 +0200)]
misc: pmic: Freescale PMIC switches to generic PMIC driver

Signed-off-by: Lukasz Majewski <l.majewski@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Cc: Stefano Babic <sbabic@denx.de>
13 years agomisc:pmic:samsung Enable PMIC driver at GONI target
Łukasz Majewski [Mon, 3 Oct 2011 19:45:51 +0000 (19:45 +0000)]
misc:pmic:samsung Enable PMIC driver at GONI target

Enable support for new PMIC driver at GONI reference target.

Signed-off-by: Lukasz Majewski <l.majewski@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Cc: Stefano Babic <sbabic@denx.de>
13 years agomisc:pmic:max8998 MAX8998 support at a new PMIC driver.
Łukasz Majewski [Mon, 3 Oct 2011 19:45:50 +0000 (19:45 +0000)]
misc:pmic:max8998 MAX8998 support at a new PMIC driver.

This commit adds support for MAX8998 PMIC driver.

Signed-off-by: Lukasz Majewski <l.majewski@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Cc: Stefano Babic <sbabic@denx.de>
13 years agomisc:pmic:core New generic PMIC driver
Łukasz Majewski [Thu, 6 Oct 2011 02:37:34 +0000 (02:37 +0000)]
misc:pmic:core New generic PMIC driver

I2C or SPI PMIC devices can be accessed.
Separate files: pmic_i2c.c and pmic_spi.c are responsible
for handling transmission over I2C or SPI bus.

New flags:
CONFIG_PMIC - enable PMIC general device.
CONFIG_PMIC_I2C/SPI - specify the interface to be used.

Signed-off-by: Lukasz Majewski <l.majewski@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Cc: Stefano Babic <sbabic@denx.de>
13 years agomx31pdk: Remove unneeded config
Fabio Estevam [Mon, 12 Sep 2011 06:32:34 +0000 (06:32 +0000)]
mx31pdk: Remove unneeded config

Currently there are two config options for building a U-boot binary for MX31PDK:

make mx31pdk_config

or,

make mx31pdk_nand_config

mx31pdk_config was developed first when no NAND SPL support was available for
MX31 and it requires that the U-boot binary is loaded into RAM via JTAG and it
forces SKIP_LOWLEVEL_INIT.

mx31pdk_nand_config was added later and it allows booting from NAND Flash.

Leave just one config option called mx31pdk so that it produces a binary that can boot from NAND Flash.

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Acked-by: Stefano Babic <sbabic@denx.de>
13 years agomx31: provide readable WEIM CS accessor
Helmut Raiger [Thu, 29 Sep 2011 05:45:03 +0000 (05:45 +0000)]
mx31: provide readable WEIM CS accessor

setup_weimcs() and some macros are added to support the setup
for i.MX31 WEIM chip selects. As a compromise between verbosity
and readability an ASCII-art'ish bit comment is used instead of
bitfields.
All i.MX31 boards have been patched to use this approach using a
helper program to verify the changes.

Signed-off-by: Helmut Raiger <helmut.raiger@hale.at>
Acked-by: Stefano Babic <sbabic@denx.de>
13 years agoMX51: vision2: Set global macros
Stefano Babic [Fri, 21 Jan 2011 16:39:03 +0000 (17:39 +0100)]
MX51: vision2: Set global macros

Adapt vision2 to the current u-boot version. Drop
own macros to set global data and use the common ones.

Signed-off-by: Stefano Babic <sbabic@denx.de>
13 years agoI2C: Add i2c_get/set_speed() to mxc_i2c.c
Marek Vasut [Tue, 27 Sep 2011 06:34:11 +0000 (06:34 +0000)]
I2C: Add i2c_get/set_speed() to mxc_i2c.c

Signed-off-by: Marek Vasut <marek.vasut@gmail.com>
Cc: Stefano Babic <sbabic@denx.de>
Cc: Heiko Schocher <hs@denx.de>
Acked-by: Heiko Schocher <hs@denx.de>
13 years agoARM: Update mach-types
Marek Vasut [Sun, 11 Sep 2011 17:54:52 +0000 (17:54 +0000)]
ARM: Update mach-types

This commit updates the mach-types based on the latest in Linus's head

Signed-off-by: Marek Vasut <marek.vasut@gmail.com>
Cc: Stefano Babic <sbabic@denx.de>
Cc: Wolfgang Denk <wd@denx.de>
Cc: Detlev Zundel <dzu@denx.de>
13 years agodevkit8000: Add config to enable SPL MMC boot
Simon Schwarz [Fri, 30 Sep 2011 00:41:34 +0000 (00:41 +0000)]
devkit8000: Add config to enable SPL MMC boot

Add MMC boot configs to devkit8000 config.

Signed-off-by: Simon Schwarz <simonschwarzcor@gmail.com>
13 years agodevkit8000: protect board_mmc_init
Simon Schwarz [Fri, 30 Sep 2011 00:41:33 +0000 (00:41 +0000)]
devkit8000: protect board_mmc_init

This function is also defined in omap-common/spl_mmc.de so the implementation
in devkit8000.c was protected by a ifdef.

Signed-off-by: Simon Schwarz <simonschwarzcor@gmail.com>
13 years agoarm, post: add missing post_time_ms for arm
Heiko Schocher [Wed, 14 Sep 2011 19:34:33 +0000 (19:34 +0000)]
arm, post: add missing post_time_ms for arm

Signed-off-by: Heiko Schocher <hs@denx.de>
Cc: Albert ARIBAUD <albert.u.boot@aribaud.net>
13 years agocosmetic, post: Codingstyle cleanup
Heiko Schocher [Wed, 12 Oct 2011 01:18:05 +0000 (01:18 +0000)]
cosmetic, post: Codingstyle cleanup

Signed-off-by: Heiko Schocher <hs@denx.de>
13 years agoarm, logbuffer: make it compileclean
Heiko Schocher [Wed, 12 Oct 2011 01:13:38 +0000 (01:13 +0000)]
arm, logbuffer: make it compileclean

Signed-off-by: Heiko Schocher <hs@denx.de>
Cc: Albert ARIBAUD <albert.u.boot@aribaud.net>
13 years agotegra2: Enable MMC for Seaboard
Tom Warren [Wed, 21 Sep 2011 12:40:07 +0000 (12:40 +0000)]
tegra2: Enable MMC for Seaboard

This adds the required GPIO and pinmux configuration to make eMMC / SD work
on Seaboard.

Signed-off-by: Simon Glass <sjg@chromium.org>
Tested-by: Tom Warren <twarren@nvidia.com>
13 years agotegra2: Add more pinmux functions
Simon Glass [Wed, 21 Sep 2011 12:40:06 +0000 (12:40 +0000)]
tegra2: Add more pinmux functions

This adds support for changing pinmux functions of pin groups. This is done
by defining a PMUX_FUNC_... enum which can be used to select the function for
each group using pinmux_set_func(). It is also possible to enable
pullup/pulldown, and the existing tristate functionality is retained.

Also provided is a means of configuring a list of pingroups by providing a
configuration table to pinmux_config_table().

Signed-off-by: Simon Glass <sjg@chromium.org>
Tested-by: Tom Warren <twarren@nvidia.com>
13 years agotegra2: Rename PIN_ to PINGRP_
Simon Glass [Wed, 21 Sep 2011 12:40:05 +0000 (12:40 +0000)]
tegra2: Rename PIN_ to PINGRP_

The pin groupings are better named PINGRP, since on Tegra2 they refer to
multiple pins.

Sorry about this, but better to get it right now when there is only a small
amount of code affected.

Signed-off-by: Simon Glass <sjg@chromium.org>
Tested-by: Tom Warren <twarren@nvidia.com>
13 years agotegra2: Add more clock functions
Simon Glass [Wed, 21 Sep 2011 12:40:04 +0000 (12:40 +0000)]
tegra2: Add more clock functions

This adds most of the clock functions required by board and driver code:

-query and adjust peripheral clocks
-query and adjust PLLs
-reset and enable control

These functions are plumbed in as required.

Signed-off-by: Simon Glass <sjg@chromium.org>
Tested-by: Tom Warren <twarren@nvidia.com>
13 years agotegra2: Clean up board code a little
Simon Glass [Wed, 21 Sep 2011 12:40:03 +0000 (12:40 +0000)]
tegra2: Clean up board code a little

This removes clock_init() and pinmux_init() which are names better suited
to those respective modules. By moving board_init_f() to the bottom of the
file we can remove the need for so many functions in the board.h header file.

The only clock/pinmux/gpio init we need to do prior to relocation is
for the UART.

Signed-off-by: Simon Glass <sjg@chromium.org>
Tested-by: Tom Warren <twarren@nvidia.com>
13 years agotegra2: Rename CLOCK_PLL_ID to CLOCK_ID
Simon Glass [Wed, 21 Sep 2011 12:40:02 +0000 (12:40 +0000)]
tegra2: Rename CLOCK_PLL_ID to CLOCK_ID

Rename CLOCK_PLL_ID to CLOCK_ID which takes account of the fact that the
code now deals with both PLL clocks and source clocks.

This also tidied up the assert() to match the one sent upstream, and fixes
an error in the PWM id.

Signed-off-by: Simon Glass <sjg@chromium.org>
Tested-by: Tom Warren <twarren@nvidia.com>
13 years agoFAT: Add FAT write feature
Donggeun Kim [Mon, 24 Oct 2011 21:15:28 +0000 (21:15 +0000)]
FAT: Add FAT write feature

In some cases, saving data in RAM as a file with FAT format is required.
This patch allows the file to be written in FAT formatted partition.

The usage is similar with reading a file.
First, fat_register_device function is called before file_fat_write function
in order to set target partition.
Then, file_fat_write function is invoked with desired file name,
start ram address for writing data, and file size.

Signed-off-by: Donggeun Kim <dg77.kim@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
13 years agofdt: ARM: Add fdtcontroladdr to set device tree address in environment
Simon Glass [Mon, 24 Oct 2011 19:15:34 +0000 (19:15 +0000)]
fdt: ARM: Add fdtcontroladdr to set device tree address in environment

This adds support for a new environment variable called 'fdtcontroladdr'. If
defined, the hex address is used as the address of the control fdt for U-Boot.

Note: I have not changed CONFIG_PRAM section as I already have an
outstanding patch on that.

Signed-off-by: Simon Glass <sjg@chromium.org>
13 years agofdt: ARM: Implement and verify embedded and separate device tree
Simon Glass [Mon, 24 Oct 2011 19:15:33 +0000 (19:15 +0000)]
fdt: ARM: Implement and verify embedded and separate device tree

This locates the device tree either embedded within U-Boot or attached to the
end as a separate binary.

When CONFIG_OF_CONTROL is defined, U-Boot requires a valid fdt. A check is
provided for this early in initialisation.

Signed-off-by: Simon Glass <sjg@chromium.org>
13 years agofdt: add decode helper library
Simon Glass [Mon, 24 Oct 2011 19:15:32 +0000 (19:15 +0000)]
fdt: add decode helper library

This library provides useful functions to drivers which want to use
the fdt to control their operation. Functions are provided to:

- look up and enumerate a device type (for example assigning i2c bus 0,
     i2c bus 1, etc.)
- decode basic types from the fdt, like addresses and integers

While this library is not strictly necessary, it helps to minimise the
changes to a driver, in order to make it work under fdt control. Less
code is required, and so the barrier to switch drivers over is lower.

Additional functions to read arrays and GPIOs could be made available
here also.

Signed-off-by: Simon Glass <sjg@chromium.org>
13 years agofdt: Add support for a separate device tree (CONFIG_OF_SEPARATE)
Simon Glass [Mon, 24 Oct 2011 19:15:31 +0000 (19:15 +0000)]
fdt: Add support for a separate device tree (CONFIG_OF_SEPARATE)

This adds support for an FDT to be build as a separate binary file called
u-boot.dtb. This can be concatenated with the U-Boot binary to provide a
device tree located at run-time by U-Boot. The Makefile is modified to
provide this file in u-boot-dtb.bin.

Signed-off-by: Simon Glass <sjg@chromium.org>
13 years agofdt: Add support for embedded device tree (CONFIG_OF_EMBED)
Simon Glass [Sat, 15 Oct 2011 05:48:21 +0000 (05:48 +0000)]
fdt: Add support for embedded device tree (CONFIG_OF_EMBED)

This new option allows U-Boot to embed a binary device tree into its image
to allow run-time control of peripherals. This device tree is for U-Boot's
own use and is not necessarily the same one as is passed to the kernel.

The device tree compiler output should be placed in the $(obj)
rooted tree. Since $(OBJCOPY) insists on adding the path to the
generated symbol names, to ensure consistency it should be
invoked from the directory where the .dtb file is located and
given the input file name without the path.

This commit contains my entry for the ugliest Makefile / shell interaction
competition.

Signed-off-by: Simon Glass <sjg@chromium.org>
13 years agofdt: ARM: Add device tree control of U-Boot (CONFIG_OF_CONTROL)
Simon Glass [Sat, 15 Oct 2011 05:48:20 +0000 (05:48 +0000)]
fdt: ARM: Add device tree control of U-Boot (CONFIG_OF_CONTROL)

This adds a device tree pointer to the global data. It can be set by
board code. A later commit will add support for making a device
tree binary blob available to U-Boot for run-time configuration.

Signed-off-by: Simon Glass <sjg@chromium.org>
13 years agonet: tftpput: add tftpput command
Simon Glass [Mon, 24 Oct 2011 18:00:08 +0000 (18:00 +0000)]
net: tftpput: add tftpput command

This adds the tftpput command to U-Boot.

Signed-off-by: Simon Glass <sjg@chromium.org>
13 years agonet: tftpput: implement tftp logic
Simon Glass [Mon, 24 Oct 2011 18:00:07 +0000 (18:00 +0000)]
net: tftpput: implement tftp logic

This adds logic to tftp.c to implement the tftp 'put' command, and
updates the README.

Signed-off-by: Simon Glass <sjg@chromium.org>
13 years agotftpput: add save_addr and save_size global variables
Simon Glass [Fri, 21 Oct 2011 18:51:38 +0000 (18:51 +0000)]
tftpput: add save_addr and save_size global variables

We need something akin to load_addr to handle saving data.

Signed-off-by: Simon Glass <sjg@chromium.org>
13 years agonet: tftpput: Support selecting get/put for tftp
Simon Glass [Mon, 24 Oct 2011 18:00:05 +0000 (18:00 +0000)]
net: tftpput: Support selecting get/put for tftp

TftpStart should support starting either a get or a put.

Signed-off-by: Simon Glass <sjg@chromium.org>
13 years agonet: tftpput: Factor out start, restart and next block functions
Simon Glass [Mon, 24 Oct 2011 18:00:04 +0000 (18:00 +0000)]
net: tftpput: Factor out start, restart and next block functions

This code is required for tftpput, so move it into separate functions.

Signed-off-by: Simon Glass <sjg@chromium.org>
13 years agonet: tftpput: move common code into separate functions
Simon Glass [Mon, 24 Oct 2011 18:00:03 +0000 (18:00 +0000)]
net: tftpput: move common code into separate functions

We want to show block markers on completion of get and put, so
move this common code into separate functions.

Signed-off-by: Simon Glass <sjg@chromium.org>
13 years agonet: tftpput: Rename TFTP to TFTPGET
Simon Glass [Mon, 24 Oct 2011 18:00:02 +0000 (18:00 +0000)]
net: tftpput: Rename TFTP to TFTPGET

This is a better name for this protocol. Also remove the typedef to keep
checkpatch happy, and move zeroing of NetBootFileXferSize a little
earlier since TFTPPUT will need to change this.

Signed-off-by: Simon Glass <sjg@chromium.org>
13 years agonet: tftpput: Add support for receiving ICMP packets
Simon Glass [Mon, 24 Oct 2011 18:00:01 +0000 (18:00 +0000)]
net: tftpput: Add support for receiving ICMP packets

ICMP packets can tell you when there is no server at the other end. It
is useful for tftp to figure this out, so that a quick error can be
displayed, rather than pointlessly retrying.

This adds an ICMP packet handler to the net interface.

Signed-off-by: Simon Glass <sjg@chromium.org>
13 years agonet: tftpput: Move ICMP code into its own function
Simon Glass [Mon, 24 Oct 2011 18:00:00 +0000 (18:00 +0000)]
net: tftpput: Move ICMP code into its own function

NetReceive() is a very long function with a lot of indent. Before adding
code to the ICMP bit, split it out.

Signed-off-by: Simon Glass <sjg@chromium.org>
13 years agoAdd setenv_ulong() and setenv_addr()
Simon Glass [Mon, 24 Oct 2011 17:59:59 +0000 (17:59 +0000)]
Add setenv_ulong() and setenv_addr()

It seems we put numbers and addresses into environment variables a lot.
We should have some functions to do this.

Signed-off-by: Simon Glass <sjg@chromium.org>
13 years agoMove simple_itoa to vsprintf
Simon Glass [Fri, 21 Oct 2011 18:51:33 +0000 (18:51 +0000)]
Move simple_itoa to vsprintf

This function is generally useful and shouldn't hide away in hush. It
has been moved as is.

Signed-off-by: Simon Glass <sjg@chromium.org>
13 years agoaltera_tse: Fix return of eth_device's recv() callback
Joachim Foerster [Mon, 17 Oct 2011 05:24:46 +0000 (05:24 +0000)]
altera_tse: Fix return of eth_device's recv() callback

It seems to be good practice to return the number of received bytes in the
eth_device's recv() callback, here: tse_eth_rx().

Signed-off-by: Joachim Foerster <joachim.foerster@missinglinkelectronics.com>
13 years agoaltera_tse: m88e1111s: Honor device flags regarding PHY interface mode
Joachim Foerster [Tue, 25 Oct 2011 22:39:57 +0000 (22:39 +0000)]
altera_tse: m88e1111s: Honor device flags regarding PHY interface mode

Note: This is kind of guess work. The current code is preserved for
all RGMII related modes. It is different for flags=0 (GMII) and flags=5
(SGMII). The last case, SGMII, is successfully tested on
Altera's Terasic DE4.

Signed-off-by: Joachim Foerster <joachim.foerster@missinglinkelectronics.com>
13 years agoaltera_tse: Add support for dedicated descriptor memory
Joachim Foerster [Mon, 17 Oct 2011 05:24:44 +0000 (05:24 +0000)]
altera_tse: Add support for dedicated descriptor memory

Signed-off-by: Joachim Foerster <joachim.foerster@missinglinkelectronics.com>
13 years agoaltera_tse: Fix SGDMA reset triggering
Joachim Foerster [Mon, 17 Oct 2011 05:24:43 +0000 (05:24 +0000)]
altera_tse: Fix SGDMA reset triggering

The SW_RESET needs to be set instead of being masked out!

Signed-off-by: Joachim Foerster <joachim.foerster@missinglinkelectronics.com>
13 years agoaltera_tse: Clear SGDMA's RUN bit in async transfer, like in sync case
Joachim Foerster [Tue, 25 Oct 2011 22:39:54 +0000 (22:39 +0000)]
altera_tse: Clear SGDMA's RUN bit in async transfer, like in sync case

Signed-off-by: Joachim Foerster <joachim.foerster@missinglinkelectronics.com>
13 years agopart_efi: dcache: allocate cacheline aligned buffers
Anton staaf [Wed, 12 Oct 2011 13:56:04 +0000 (13:56 +0000)]
part_efi: dcache: allocate cacheline aligned buffers

Currently part_efi.c allocates buffers for the gpt_header, the
legacy_mbr, and the pte (partition table entry) that may be
incorrectly aligned for DMA operations.

This patch uses ALLOC_CACHE_ALIGN_BUFFER for the stack allocated
buffers and memalign to replace the malloc of the pte.

Signed-off-by: Anton Staaf <robotboy@chromium.org>
Cc: Lukasz Majewski <l.majewski@samsung.com>
Cc: Mike Frysinger <vapier@gentoo.org>
Cc: Albert ARIBAUD <albert.u.boot@aribaud.net>
Acked-by: Mike Frysinger <vapier@gentoo.org>
13 years agommc: dcache: allocate cache aligned buffers for ext_csd
Anton staaf [Tue, 4 Oct 2011 11:24:50 +0000 (11:24 +0000)]
mmc: dcache: allocate cache aligned buffers for ext_csd

Currently the mmc_change_freq and mmc_startup functions allocates
buffers on the stack that are passed down to the MMC device driver.
These buffers could be unaligned to the L1 dcache line size.  This
causes problems when using DMA and with caches enabled.

This patch correctly cache alignes the buffers used for reading the
ext_csd data from an MMC device.

Signed-off-by: Anton Staaf <robotboy@chromium.org>
Cc: Lukasz Majewski <l.majewski@samsung.com>
Cc: Mike Frysinger <vapier@gentoo.org>
Cc: Albert ARIBAUD <albert.u.boot@aribaud.net>
13 years agoext2: Cache line aligned partial sector bounce buffer
Anton staaf [Mon, 3 Oct 2011 13:55:00 +0000 (13:55 +0000)]
ext2: Cache line aligned partial sector bounce buffer

Currently, if a device read request is done that does not begin or end
on a sector boundary a stack allocated bounce buffer is used to perform
the read, and then just the part of the sector that is needed is copied
into the users buffer.  This stack allocation can mean that the bounce
buffer will not be aligned to the dcache line size.  This is a problem
when caches are enabled because unaligned cache invalidates are not
safe.

This patch uses ALLOC_CACHE_ALIGN_BUFFER to create a stack allocated
cache line size aligned bounce buffer.

Signed-off-by: Anton Staaf <robotboy@chromium.org>
Cc: Lukasz Majewski <l.majewski@samsung.com>
Cc: Mike Frysinger <vapier@gentoo.org>
Cc: Dave Liu <r63238@freescale.com>
Cc: Andy Fleming <afleming@gmail.com>
Cc: Albert ARIBAUD <albert.u.boot@aribaud.net>
Change-Id: I32e1594d90ef039137bb219b0f7ced55768744ff
Acked-by: Mike Frysinger <vapier@gentoo.org>
13 years agommc: dcache: allocate cache aligned buffer for scr and switch_status
Anton staaf [Mon, 3 Oct 2011 13:54:59 +0000 (13:54 +0000)]
mmc: dcache: allocate cache aligned buffer for scr and switch_status

Currently the sd_change_freq function allocates two buffers on the
stack that it passes down to the MMC device driver.  These buffers
could be unaligned to the L1 dcache line size.  This causes problems
when using DMA and with caches enabled.

This patch correctly cache alignes the buffers used for reading the
scr register and switch status values from an MMC device.

Change-Id: Ifa8414f572ef907681bd2d5ff3950285a215357d
Signed-off-by: Anton Staaf <robotboy@chromium.org>
Cc: Lukasz Majewski <l.majewski@samsung.com>
Cc: Mike Frysinger <vapier@gentoo.org>
Cc: Albert ARIBAUD <albert.u.boot@aribaud.net>
Acked-by: Mike Frysinger <vapier@gentoo.org>
13 years agotegra: define CONFIG_SYS_CACHELINE_SIZE for tegra
Anton staaf [Mon, 3 Oct 2011 13:54:58 +0000 (13:54 +0000)]
tegra: define CONFIG_SYS_CACHELINE_SIZE for tegra

Signed-off-by: Anton Staaf <robotboy@chromium.org>
Cc: Tom Warren <twarren.nvidia@gmail.com>
Cc: Simon Glass <sjg@chromium.org>
Cc: Mike Frysinger <vapier@gentoo.org>
Cc: Albert ARIBAUD <albert.u.boot@aribaud.net>
Change-Id: I5c4bcfc0bfe59158ff249fe3be6640eec6d3cc76
Acked-by: Mike Frysinger <vapier@gentoo.org>
13 years agocache: add ALLOC_CACHE_ALIGN_BUFFER macro
Anton staaf [Wed, 12 Oct 2011 13:55:59 +0000 (13:55 +0000)]
cache: add ALLOC_CACHE_ALIGN_BUFFER macro

This macro is used to allocate cache line size aligned stack
buffers for use with DMA hardware.

Signed-off-by: Anton Staaf <robotboy@chromium.org>
Cc: Lukasz Majewski <l.majewski@samsung.com>
Cc: Kyungmin Park <kyungmin.park@samsung.com>
Cc: Mike Frysinger <vapier@gentoo.org>
Cc: Aneesh V <aneesh@ti.com>
Cc: Albert ARIBAUD <albert.u.boot@aribaud.net>
Cc: Wolfgang Denk <wd@denx.de>
13 years agoRevert "km_arm: enable POST for these boards"
Wolfgang Denk [Mon, 24 Oct 2011 19:14:42 +0000 (21:14 +0200)]
Revert "km_arm: enable POST for these boards"

This reverts commit a2da616311151ecfab8b8fcc510686fc3c0c9a21.
THis was applied by accident - a more recent version of this change
was already present, see commit
9400f8f   2011-10-05 22:03:11 +0200   km_arm: enable POST for these boards

Signed-off-by: Wolfgang Denk <wd@denx.de>
13 years agoarm: Correct build error introduced by getenv_ulong() patch
Simon Glass [Sun, 23 Oct 2011 17:44:35 +0000 (17:44 +0000)]
arm: Correct build error introduced by getenv_ulong() patch

Commit dc8bbea removed a local variable that is used in most ARM boards.

Since we want to avoid an 'unused variable' warning with later compilers,
and the #ifdef logic of whether this variable is required is bit painful,
this declares the variable local to the block of code that needs it.

Signed-off-by: Simon Glass <sjg@chromium.org>
13 years agopowerpc: Correct build warning introduced by getenv_ulong() patch
Simon Glass [Sun, 23 Oct 2011 17:41:54 +0000 (17:41 +0000)]
powerpc: Correct build warning introduced by getenv_ulong() patch

Commit 1272592 introduced a warning since the variable 's' is no longer
always used, depending on the CONFIG options.

Signed-off-by: Simon Glass <sjg@chromium.org>
13 years agomkimage: adding support for Davinci AIS image
Stefano Babic [Mon, 17 Oct 2011 00:07:43 +0000 (00:07 +0000)]
mkimage: adding support for Davinci AIS image

Some Davinci processors supports the Application
Image Script (AIS) boot process. The patch adds the generation
of the AIS image inside the mkimage tool to make possible
to generate a bootable U-boot without external tools
(TI Davinci AIS Generator).

Signed-off-by: Stefano Babic <sbabic@denx.de>
CC: Wolfgang Denk <wd@denx.de>
13 years agonet: xilinx_enet: drop unused !NET_MULTI driver
Mike Frysinger [Sun, 16 Oct 2011 20:04:13 +0000 (16:04 -0400)]
net: xilinx_enet: drop unused !NET_MULTI driver

This driver doesn't support the NET_MULTI framework, and I can't find
any boards/configs/files that reference this subdir, so punt it all.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
13 years agonet: sc589: drop unused !NET_MULTI driver
Mike Frysinger [Sun, 16 Oct 2011 10:04:12 +0000 (10:04 +0000)]
net: sc589: drop unused !NET_MULTI driver

No boards appear to use this driver, and it doesn't support NET_MULTI,
so punt the old driver.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
13 years agonet: s3c4510b_eth: drop unused !NET_MULTI driver
Mike Frysinger [Sun, 16 Oct 2011 10:04:11 +0000 (10:04 +0000)]
net: s3c4510b_eth: drop unused !NET_MULTI driver

No boards appear to use this driver, and it doesn't support NET_MULTI,
so punt the old driver.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
13 years agonet: ns9750: drop !NET_MULTI driver
Mike Frysinger [Sun, 16 Oct 2011 10:04:10 +0000 (10:04 +0000)]
net: ns9750: drop !NET_MULTI driver

Only one board uses this driver (ns9750dev), but the board doesn't seem
to have an entry to actually build it in the Makefile/boards.cfg, so just
delete net support from its board config.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
13 years agonet: enc28j60_lpc2292: drop unused !NET_MULTI driver
Mike Frysinger [Sun, 16 Oct 2011 20:04:09 +0000 (16:04 -0400)]
net: enc28j60_lpc2292: drop unused !NET_MULTI driver

Everyone seems to have converted to the new enc28j60 driver, so drop
this older one which isn't used and doesn't support NET_MULTI.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
13 years agopowerpc/lib/board.c: Call run_post(POST_ROM) before relocating
Bernhard Kaindl [Sun, 16 Oct 2011 00:07:08 +0000 (00:07 +0000)]
powerpc/lib/board.c: Call run_post(POST_ROM) before relocating

The call to run_post(POST_ROM) which can run the POST memory test
is currently called too late when gd has already been copied to DRAM.

This results in failure to boot Linux after a POST_ROM memory test
tested all RAM while gd was already relocated to DRAM due to gd being
overwritten by the POST_ROM memory test.

Support this by moving the call to run_post(POST_ROM) to run earlier,
before U-Boot has started to move data to DRAM (from late board_init_f
to early board_init_f) where DRAM is initialized, but not used yet.

This allows that an POST memory test can test the whole DRAM,
including the area where the board info struct is located.

Signed-off-by: Bernhard Kaindl <bernhard.kaindl@thalesgroup.com>
Cc: Pieter Voorthuijsen <pieter.voorthuijsen@prodrive.nl>
13 years agonet/dns.c: Fix endian conversion for big-endian in dns command
Bernhard Kaindl [Sat, 15 Oct 2011 23:59:22 +0000 (23:59 +0000)]
net/dns.c: Fix endian conversion for big-endian in dns command

net/dns.c used endian conversion macros wrongly (shorts in reply
were put swapped into CPU, and then ntohs() was used to swap it
back, which broke on big-endian).

Fix this by using the correct linux conversion macro for reading
a unaligned short in network byte order: get_unaligned_be16()
Thanks to Mike Frysinger pointing at the best macro to use.

Tested on big and little endian qemu boards (mips and versatile)

Signed-off-by: Bernhard Kaindl <bernhard.kaindl@thalesgroup.com>
Cc: Pieter Voorthuijsen <pieter.voorthuijsen@prodrive.nl>
Cc: Robin Getz <rgetz@blackfin.uclinux.org>
Acked-by: Mike Frysinger <vapier@gentoo.org>
13 years agox86: Use getenv_ulong() in place of getenv(), strtoul
Simon Glass [Thu, 13 Oct 2011 14:43:14 +0000 (14:43 +0000)]
x86: Use getenv_ulong() in place of getenv(), strtoul

This changes the board code to use the new getenv_ulong() function.

Signed-off-by: Simon Glass <sjg@chromium.org>
13 years agosparc: Use getenv_ulong() in place of getenv(), strtoul
Simon Glass [Thu, 13 Oct 2011 14:43:13 +0000 (14:43 +0000)]
sparc: Use getenv_ulong() in place of getenv(), strtoul

This changes the board code to use the new getenv_ulong() function.

Signed-off-by: Simon Glass <sjg@chromium.org>
13 years agopowerpc: Use getenv_ulong() in place of getenv(), strtoul
Simon Glass [Thu, 13 Oct 2011 14:43:12 +0000 (14:43 +0000)]
powerpc: Use getenv_ulong() in place of getenv(), strtoul

This changes the board code to use the new getenv_ulong() function.

Signed-off-by: Simon Glass <sjg@chromium.org>
Acked-by: Stefan Roese <sr@denx.de>
13 years agomips: Use getenv_ulong() in place of getenv(), strtoul
Simon Glass [Thu, 13 Oct 2011 14:43:11 +0000 (14:43 +0000)]
mips: Use getenv_ulong() in place of getenv(), strtoul

This changes the board code to use the new getenv_ulong() function.

Signed-off-by: Simon Glass <sjg@chromium.org>
13 years agomicroblaze: Use getenv_ulong() in place of getenv(), strtoul
Simon Glass [Thu, 13 Oct 2011 14:43:10 +0000 (14:43 +0000)]
microblaze: Use getenv_ulong() in place of getenv(), strtoul

This changes the board code to use the new getenv_ulong() function.

Signed-off-by: Simon Glass <sjg@chromium.org>
13 years agom68k: Use getenv_ulong() in place of getenv(), strtoul
Simon Glass [Thu, 13 Oct 2011 14:43:09 +0000 (14:43 +0000)]
m68k: Use getenv_ulong() in place of getenv(), strtoul

This changes the board code to use the new getenv_ulong() function.

Signed-off-by: Simon Glass <sjg@chromium.org>
13 years agoblackfin: Use getenv_ulong() in place of getenv(), strtoul
Simon Glass [Thu, 13 Oct 2011 14:43:08 +0000 (14:43 +0000)]
blackfin: Use getenv_ulong() in place of getenv(), strtoul

This changes the board code to use the new getenv_ulong() function.

Signed-off-by: Simon Glass <sjg@chromium.org>
Acked-by: Mike Frysinger <vapier@gentoo.org>
13 years agoavr32: Use getenv_ulong() in place of getenv(), strtoul
Simon Glass [Thu, 13 Oct 2011 14:43:07 +0000 (14:43 +0000)]
avr32: Use getenv_ulong() in place of getenv(), strtoul

This changes the board code to use the new getenv_ulong() function.

Signed-off-by: Simon Glass <sjg@chromium.org>
13 years agoarm: Use getenv_ulong() in place of getenv(), strtoul
Simon Glass [Thu, 13 Oct 2011 14:43:06 +0000 (14:43 +0000)]
arm: Use getenv_ulong() in place of getenv(), strtoul

This changes the board code to use the new getenv_ulong() function.

Signed-off-by: Simon Glass <sjg@chromium.org>
13 years agoAdd getenv_ulong() to read an integer from an environment variable
Simon Glass [Fri, 14 Oct 2011 13:25:18 +0000 (13:25 +0000)]
Add getenv_ulong() to read an integer from an environment variable

This is not an uncommon operation in U-Boot, so let's put it in a common
function.

Signed-off-by: Simon Glass <sjg@chromium.org>
Acked-by: Mike Frysinger <vapier@gentoo.org>
13 years agocommon: fix missing function pointer relocation in fixup_cmdtable()
Daniel Schwierzeck [Tue, 18 Oct 2011 11:12:22 +0000 (11:12 +0000)]
common: fix missing function pointer relocation in fixup_cmdtable()

In commit fa28bd2eef588ec2048ccafedb2b384d5a355858 patch v1 was applied
instead of v2. This is an incremental patch to update that commit
to version 2.

Signed-off-by: Daniel Schwierzeck <daniel.schwierzeck@googlemail.com>
13 years agonet: emaclite: Move RX/TX ping pong initialization to
Michal Simek [Wed, 12 Oct 2011 23:23:22 +0000 (23:23 +0000)]
net: emaclite: Move RX/TX ping pong initialization to

Init RX/TX ping pong directly from board not in the driver.

Signed-off-by: Michal Simek <monstr@monstr.eu>
13 years agonet: emaclite: Use unsigned long for baseaddr
Michal Simek [Wed, 12 Oct 2011 23:23:21 +0000 (23:23 +0000)]
net: emaclite: Use unsigned long for baseaddr

Baseaddr should be unsigned long.

Signed-off-by: Michal Simek <monstr@monstr.eu>
13 years agoarm, post, memory: fix bug if sdram base != 0x00000000
Heiko Schocher [Thu, 6 Oct 2011 20:40:00 +0000 (20:40 +0000)]
arm, post, memory: fix bug if sdram base != 0x00000000

commit 8d3fcb5e60b6c8e1d530dbc2e2e33ec6a44670da breaks post
memory support for sdram base != 0x00000000. Fix this.

Signed-off-by: Heiko Schocher <hs@denx.de>
Cc: Valentin Longchamp <valentin.longchamp@keymile.com>
Cc: Holger Brunck <holger.brunck@keymile.com>
Acked-by: Mike Frysinger <vapier@gentoo.org>
13 years agospi/eon: add support for new EON spi flash EN25Q32B
Shaohui Xie [Tue, 27 Sep 2011 01:21:34 +0000 (01:21 +0000)]
spi/eon: add support for new EON spi flash EN25Q32B

Signed-off-by: Shaohui Xie <Shaohui.Xie@freescale.com>
13 years agocache: include asm/cache.h for ARCH_DMA_MINALIGN definition
Anton Staaf [Mon, 17 Oct 2011 23:46:13 +0000 (16:46 -0700)]
cache: include asm/cache.h for ARCH_DMA_MINALIGN definition

ARCH_DMA_MINALIGN will be used to allocate DMA buffers that are
aligned correctly.  In all current cases this means that the DMA
buffer will be aligned to at least the L1 data cache line size of
the configured architecture.  If the board configuration file
does not specify the architecture L1 data cache line size then the
maximum line size of the architecture is used to align DMA buffers.

Signed-off-by: Anton Staaf <robotboy@chromium.org>
Cc: Mike Frysinger <vapier@gentoo.org>
Cc: Lukasz Majewski <l.majewski@samsung.com>
Cc: Wolfgang Denk <wd@denx.de>
Cc: Stefano Babic <sbabic@denx.de>
Cc: Ilya Yanok <yanok@emcraft.com>
Cc: Laurence Withers <lwithers@guralp.com>
13 years agox86: cache: define ARCH_DMA_MINALIGN for DMA buffer alignment
Anton Staaf [Mon, 17 Oct 2011 23:46:12 +0000 (16:46 -0700)]
x86: cache: define ARCH_DMA_MINALIGN for DMA buffer alignment

Signed-off-by: Anton Staaf <robotboy@chromium.org>
Cc: Mike Frysinger <vapier@gentoo.org>
Cc: Lukasz Majewski <l.majewski@samsung.com>
Cc: Graeme Russ <graeme.russ@gmail.com>
13 years agomips: cache: define ARCH_DMA_MINALIGN for DMA buffer alignment
Anton Staaf [Mon, 17 Oct 2011 23:46:11 +0000 (16:46 -0700)]
mips: cache: define ARCH_DMA_MINALIGN for DMA buffer alignment

Signed-off-by: Anton Staaf <robotboy@chromium.org>
Cc: Mike Frysinger <vapier@gentoo.org>
Cc: Lukasz Majewski <l.majewski@samsung.com>
Cc: Shinya Kuribayashi <skuribay@pobox.com>
13 years agomicroblaze: cache: define ARCH_DMA_MINALIGN for DMA buffer alignment
Anton Staaf [Mon, 17 Oct 2011 23:46:10 +0000 (16:46 -0700)]
microblaze: cache: define ARCH_DMA_MINALIGN for DMA buffer alignment

Signed-off-by: Anton Staaf <robotboy@chromium.org>
Cc: Mike Frysinger <vapier@gentoo.org>
Cc: Lukasz Majewski <l.majewski@samsung.com>
Cc: Michal Simek <monstr@monstr.eu>
13 years agoavr32: cache: define ARCH_DMA_MINALIGN for DMA buffer alignment
Anton Staaf [Mon, 17 Oct 2011 23:46:09 +0000 (16:46 -0700)]
avr32: cache: define ARCH_DMA_MINALIGN for DMA buffer alignment

Signed-off-by: Anton Staaf <robotboy@chromium.org>
Cc: Mike Frysinger <vapier@gentoo.org>
Cc: Lukasz Majewski <l.majewski@samsung.com>
Cc: Reinhard Meyer <u-boot@emk-elektronik.de>
13 years agosparc: cache: define ARCH_DMA_MINALIGN for DMA buffer alignment
Anton Staaf [Mon, 17 Oct 2011 23:46:08 +0000 (16:46 -0700)]
sparc: cache: define ARCH_DMA_MINALIGN for DMA buffer alignment

Signed-off-by: Anton Staaf <robotboy@chromium.org>
Cc: Mike Frysinger <vapier@gentoo.org>
Cc: Lukasz Majewski <l.majewski@samsung.com>
Cc: Daniel Hellstrom <daniel@gaisler.com>
13 years agosh: cache: define ARCH_DMA_MINALIGN for DMA buffer alignment
Anton Staaf [Mon, 17 Oct 2011 23:46:07 +0000 (16:46 -0700)]
sh: cache: define ARCH_DMA_MINALIGN for DMA buffer alignment

Signed-off-by: Anton Staaf <robotboy@chromium.org>
Cc: Mike Frysinger <vapier@gentoo.org>
Cc: Lukasz Majewski <l.majewski@samsung.com>
Cc: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
13 years agopowerpc: cache: define ARCH_DMA_MINALIGN for DMA buffer alignment
Anton Staaf [Mon, 17 Oct 2011 23:46:06 +0000 (16:46 -0700)]
powerpc: cache: define ARCH_DMA_MINALIGN for DMA buffer alignment

Signed-off-by: Anton Staaf <robotboy@chromium.org>
Acked-by: Stefan Roese <sr@denx.de>
Cc: Mike Frysinger <vapier@gentoo.org>
Cc: Lukasz Majewski <l.majewski@samsung.com>
Cc: Wolfgang Denk <wd@denx.de>
Cc: Stefan Roese <sr@denx.de>
13 years agonios2: cache: define ARCH_DMA_MINALIGN for DMA buffer alignment
Anton Staaf [Mon, 17 Oct 2011 23:46:05 +0000 (16:46 -0700)]
nios2: cache: define ARCH_DMA_MINALIGN for DMA buffer alignment

Signed-off-by: Anton Staaf <robotboy@chromium.org>
Cc: Mike Frysinger <vapier@gentoo.org>
Cc: Lukasz Majewski <l.majewski@samsung.com>
Cc: Scott McNutt <smcnutt@psyent.com>
13 years agom68k: cache: define ARCH_DMA_MINALIGN for DMA buffer alignment
Anton Staaf [Mon, 17 Oct 2011 23:46:04 +0000 (16:46 -0700)]
m68k: cache: define ARCH_DMA_MINALIGN for DMA buffer alignment

Signed-off-by: Anton Staaf <robotboy@chromium.org>
Cc: Mike Frysinger <vapier@gentoo.org>
Cc: Lukasz Majewski <l.majewski@samsung.com>
Cc: Jason Jin <jason.jin@freescale.com>
13 years agoarm: cache: define ARCH_DMA_MINALIGN for DMA buffer alignment
Anton Staaf [Mon, 17 Oct 2011 23:46:03 +0000 (16:46 -0700)]
arm: cache: define ARCH_DMA_MINALIGN for DMA buffer alignment

Signed-off-by: Anton Staaf <robotboy@chromium.org>
Cc: Mike Frysinger <vapier@gentoo.org>
Cc: Lukasz Majewski <l.majewski@samsung.com>
Cc: Albert ARIBAUD <albert.u.boot@aribaud.net>