summaryrefslogtreecommitdiff
path: root/include
Commit message (Collapse)AuthorAgeLines
...
* | | | ahci: add defines for PORT_SCR_STAT register bitsRob Herring2013-09-06-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Replace hard-coded register values with proper defines for PORT_SCR_STAT register. Signed-off-by: Rob Herring <rob.herring@calxeda.com>
* | | | compiler_gcc: do not redefine __gnu_attributesJeroen Hofstee2013-09-06-4/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | gcc allows extensions to be non compiler specific by defining __* macros for the attributes supported by gcc. Having a different definition causes many warnings during the build (cdefs.h on FreeBSD uses __attribute((__pure__)) where u-boot uses __attribute__((pure)) for example). Do not redefine these macros to suppress these warnings. This patch ignores the checkpatch warning: WARNING: __packed is preferred over __attribute__((packed)) Signed-off-by: Jeroen Hofstee <jeroen@myspectrum.nl>
* | | | am335x_evm.h: Add back the actual load of the kernel imageRobert P. J. Day2013-09-06-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Somewhere along the line of refactoring the am335x header files, the kernel image load was lost, so put it back in. Signed-off-by: Robert P. J. Day <rpjday@crashcourse.ca>
* | | | sandbox: add compression testsKees Cook2013-09-03-0/+5
|/ / / | | | | | | | | | | | | | | | | | | | | | | | | This adds the "test_compression" command when building the sandbox. This tests the existing compression and decompression routines for simple sanity and for buffer overflow conditions. Signed-off-by: Kees Cook <keescook@chromium.org> Acked-by: Simon Glass <sjg@chromium.org>
* | | omap5: Correct include order, drop CONFIG_SYS_PROMPT defineTom Rini2013-08-27-5/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | With the new include structure for TI platforms, we need to not define our own CONFIG_SYS_PROMPT and also need to include <configs/omap5_common.h> much sooner, so do both of these. Also drop the unused CONFIG_NET_MULTI Signed-off-by: Tom Rini <trini@ti.com>
* | | dfu, nand, ubi: add partubi alt settings for updating ubi partitionHeiko Schocher2013-08-26-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | updating an ubi partition needs a completely erased mtd partition, see: http://lists.infradead.org/pipermail/linux-mtd/2011-May/035416.html So, add partubi alt setting for the dfu_alt_info environment variable to mark this partition as an ubi partition. In case we update an ubi partition, we erase after flashing the image into the partition, the remaining sektors. Signed-off-by: Heiko Schocher <hs@denx.de> Cc: Pantelis Antoniou <panto@antoniou-consulting.com> Cc: Tom Rini <trini@ti.com> Cc: Lukasz Majewski <l.majewski@samsung.com> Cc: Kyungmin Park <kyungmin.park@samsung.com> Cc: Marek Vasut <marex@denx.de> Cc: Wolfgang Denk <wd@denx.de> Cc: Scott Wood <scottwood@freescale.com>
* | | ARM: OMAP5-uevm: Add USB ehci support for the uEVMDan Murphy2013-08-26-0/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add the USB ehci support for the OMAP5 uEVM. Configure the uEVM mux data Add the flags to build the appropriate modules Add the usb call backs to initialize the EHCI controller Signed-off-by: Dan Murphy <dmurphy@ti.com>
* | | Merge branch 'master' of git://git.denx.de/u-boot-mpc85xxTom Rini2013-08-21-43/+148
|\ \ \
| * | | powerpc: Fix CamelCase checkpatch warningsPrabhakar Kushwaha2013-08-20-11/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 85xx, 86xx PowerPC folders have code variables with CamelCase naming conventions. because of this code checkpatch script generates "WARNING: Avoid CamelCase". Convert variables name to normal naming convention and modify board, driver files with updated the new structure. Signed-off-by: Prabhakar Kushwaha <prabhakar@freescale.com> Acked-by: York Sun <yorksun@freescale.com>
| * | | powerpc: p1022ds: add TPL for p1022ds nand bootYing Zhang2013-08-20-16/+61
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | TPL is introduced in the patch "NAND: TPL : introduce the TPL based on the SPL", here enable TPL for p1022ds nand boot. Signed-off-by: Ying Zhang <b40530@freescale.com> Acked-by: York Sun <yorksun@freescale.com>
| * | | powerpc : p1022ds : Enable p1022ds to start from eSPI with SPLYing Zhang2013-08-20-7/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Enable p1022ds to start from eSPI with SPL. Signed-off-by: Ying Zhang <b40530@freescale.com> Acked-by: York Sun <yorksun@freescale.com>
| * | | powerpc: p1022ds: Enable P1022DS to boot from SD Card with SPLYing Zhang2013-08-20-7/+47
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Enable p1022ds to start from eSDHC with SPL. Signed-off-by: Ying Zhang <b40530@freescale.com> Acked-by: York Sun <yorksun@freescale.com>
| * | | powerpc: mpc85xx: Support booting from SD Card with SPLYing Zhang2013-08-20-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The code from the internal on-chip ROM. It loads the final uboot image into DDR, then jump to it to begin execution. The SPL's size is sizeable, the maximum size must not exceed the size of L2 SRAM. It initializes the DDR through SPD code, and copys final uboot image to DDR. So there are two stage uboot images: * spl_boot, 96KB size. The env variables are copied to L2 SRAM, so that ddr spd code can get the interleaving mode setting in env. It loads final uboot image from offset 96KB. * final uboot image, size is variable depends on the functions enabled. Signed-off-by: Ying Zhang <b40530@freescale.com> Acked-by: York Sun <yorksun@freescale.com>
| * | | powerpc: deleted unused symbol CONFIG_SPL_NAND_MINIMAL and enabled some ↵Ying Zhang2013-08-20-3/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | functionality for common SPL 1. The symbol CONFIG_SPL_NAND_MINIMAL is unused, so deleted it. 2. Some functions were unused in the minimal SPL, but it is useful in the common SPL. So, enabled some functionality for common SPL. Signed-off-by: Ying Zhang <b40530@freescale.com> Acked-by: York Sun <yorksun@freescale.com>
* | | | ppc4xx: Remove support for PPC405CR CPUsMatthias Fuchs2013-08-20-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch removes support for the APM 405CR CPU. This CPU is EOL and no board uses this chip. Signed-off-by: Matthias Fuchs <matthias.fuchs@esd.eu>
* | | | ppc4xx: Remove CANBT boardMatthias Fuchs2013-08-20-215/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This board and especially the CPU (PPC405CR) is EOL. Signed-off-by: Matthias Fuchs <matthias.fuchs@esd.eu> Acked-by: Wolfgang Denk <wd@denx.de>
* | | | i2c:samsung: Adjust Trats, GONI and Universal_c210 boards to work with new ↵Łukasz Majewski2013-08-20-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I2C framework New I2C framework, introduced after v2013.07 final release, imposed I2C code adjustment for some Samsung boards - namely Trats, GONI and Universal_c210. Those boards were using schematic based I2C enumeration (I2C_5, I2C_9). However, new I2C framework imposes usage of logical I2C adapters numbering (e.g. I2C_0, I2C_1, etc). Additionally, I2C_GET_* macros were replaced with i2c_*_bus_num() functions. Trats board gained definition of second soft I2C adapter. Signed-off-by: Lukasz Majewski <l.majewski@samsung.com> Cc: Minkyu Kang <mk7.kang@samsung.com> Cc: Heiko Schocher <hs@denx.de>
* | | | i2c:multibus:fix: Correct I2C_MULTI_BUS value when support for many buses is ↵Łukasz Majewski2013-08-20-1/+1
|/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | enabled The I2C_MULTI_BUS needs to be defined for correct I2C operation with many software emulated I2C controllers. This fix restores correct value of the I2C_MULTI_BUS changed by following commit: SHA1: 385c9ef5a7215b2b0c22836fee6c692dfc8559d7 i2c: add i2c_core and prepare for new multibus support Signed-off-by: Lukasz Majewski <l.majewski@samsung.com> Cc: Heiko Schocher <hs@denx.de>
* | | SPDX-License-Identifier: convert BSD-3-Clause filesWolfgang Denk2013-08-19-21/+1
| | | | | | | | | | | | | | | | | | Signed-off-by: Wolfgang Denk <wd@denx.de> [trini Don't remove some copyrights by accident] Signed-off-by: Tom Rini <trini@ti.com>
* | | SPDX-License-Identifier: convert PIBS licensed filesWolfgang Denk2013-08-19-24/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit adapts the files that were derived from PIBS (PowerPC Initialization and Boot Software) codeto using SPDX License Identifiers. So far, SPDX has not assigned an official License ID for the PIBS license yet, so this should be considered preliminary. Note that the following files contained incorrect license information: arch/powerpc/cpu/ppc4xx/4xx_uart.c arch/powerpc/cpu/ppc4xx/start.S arch/powerpc/include/asm/ppc440.h These files included, in addition to the GPL-2.0 / ibm-pibs dual license as inherited from PIBS, a GPL-2.0+ license header which was obviously incorrect. This has been removed. Signed-off-by: Wolfgang Denk <wd@denx.de> Cc: Stefan Roese <sr@denx.de> Signed-off-by: Wolfgang Denk <wd@denx.de> Conflicts: Licenses/README Acked-by: Stefan Roese <sr@denx.de>
* | | SPDX-License-Identifier: convert GPL-2.0+ / BSD-2-Clause dual-licensed filesWolfgang Denk2013-08-19-44/+1
| | | | | | | | | | | | Signed-off-by: Wolfgang Denk <wd@denx.de>
* | | net.h: don't use the reserved name __unusedJeroen Hofstee2013-08-19-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | The __* keywords are reserved. On FreeBSD __unused evaluates to the attribute unused, causing a compilation failure. Just use unused instead. Signed-off-by: Jeroen Hofstee <jeroen@myspectrum.nl> cc: joe.hershberger@gmail.com
* | | linkstation_HGLAN: Convert from unused CONFIG_BOOTP_MASK to specific listTom Rini2013-08-19-1/+11
| | | | | | | | | | | | Signed-off-by: Tom Rini <trini@ti.com>
* | | galaxy5200: Convert from unused CONFIG_BOOTP_MASK to specific listTom Rini2013-08-19-4/+3
| | | | | | | | | | | | Signed-off-by: Tom Rini <trini@ti.com>
* | | configs: Remove unused CONFIG_BOOTP_DEFAULTTom Rini2013-08-19-18/+0
| | | | | | | | | | | | Signed-off-by: Tom Rini <trini@ti.com>
* | | powerpc/ppc4xx: Fix dlvision-10g reset gpioDirk Eibach2013-08-19-2/+2
| | | | | | | | | | | | | | | Signed-off-by: Dirk Eibach <dirk.eibach@gdsys.cc> Signed-off-by: Stefan Roese <sr@denx.de>
* | | Merge branch 'master' of git://88.191.163.10/u-boot-armTom Rini2013-08-18-1537/+1818
|\ \ \ | |/ / | | | | | | | | | | | | | | | | | | | | | | | | Fixup an easy conflict over adding the clk_get prototype and USB_OTG defines for am33xx having moved. Conflicts: arch/arm/include/asm/arch-am33xx/hardware.h Signed-off-by: Tom Rini <trini@ti.com>
| * | Merge branch 'u-boot-imx/master' into 'u-boot-arm/master'Albert ARIBAUD2013-08-17-1018/+443
| |\ \ | | |/
| | * Merge git://git.denx.de/u-boot-armStefano Babic2013-07-31-14767/+3405
| | |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: board/freescale/mx6qsabrelite/Makefile board/freescale/mx6qsabrelite/mx6qsabrelite.c include/configs/mx6qsabrelite.h Signed-off-by: Stefano Babic <sbabic@denx.de>
| | * | mx6qsabresd: Add splash screen support via HDMIPardeep Kumar Singla2013-07-27-1/+21
| | | | | | | | | | | | | | | | Signed-off-by: Pardeep Kumar Singla <b45784@freescale.com>
| | * | mx6: Factor out common HDMI setup codePardeep Kumar Singla2013-07-27-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Instead of duplicating HDMI setup code for every mx6 board, factor out the common code Signed-off-by: Pardeep Kumar Singla <b45784@freescale.com> Acked-By: Eric Nelson <eric.nelson@boundarydevices.com>
| | * | mx6qsabrelite: Remove mx6qsabrelite code in favor of nitrogen6xFabio Estevam2013-07-26-298/+79
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | mx6qsabrelite and nitrogen6q boards are hardware compatible, so let's avoid the code duplication and only use the nitrogen6x source code to make board code maintainance easier. Tested booting a mainline device tree kernel on a mx6qsabrelite board. Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
| | * | wandboard: Use splash image at screen center by defaultOtavio Salvador2013-07-24-0/+1
| | | | | | | | | | | | | | | | | | | | Signed-off-by: Otavio Salvador <otavio@ossystems.com.br> Acked-by: Fabio Estevam <fabio.estevam@freescale.com>
| | * | ARM: mxs: Consolidate configuration optionsMarek Vasut2013-07-24-732/+340
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Pull all the duplicate configuration options into configs/mxs.h from the board configuration files. This reduces the files greatly and makes them somewhat more readable. Besides, we do no longer have such a horrible duplication of code. Note that the mx23evk grew in size slightly. This is due to the CONFIG_SYS_CBSIZE now being set to 1024 as it is on the rest of MXS systems. This patch also fixes the OCRAM size for i.MX23. The i.MX23 has only 32kB of OCRAM, while i.MX28 has 128kB of OCRAM. I verified the configuration didn't change for each of the boards, but I didn't boot-test it on the boards I do not have. I configured U-Boot for each board using the "make ... <board>_config" command and then ran "cpp -I include -dM include/config.h" , which dumped all the configuration options. I did this both before and after this patch and finally compared the results for each MXS board. Actually, the results do differ slightly, since the configs/mxs.h file now properly includes the correct iomux-mx23.h or iomux-mx28.h , so while comparing, I had to ignore these new defines. These have no impact on U-Boot configuration though. Signed-off-by: Marek Vasut <marex@denx.de> Cc: Fabio Estevam <fabio.estevam@freescale.com> Cc: Lauri Hintsala <lauri.hintsala@bluegiga.com> Cc: Otavio Salvador <otavio@ossystems.com.br> Cc: Stefano Babic <sbabic@denx.de>
| * | | Add TI816X evm board supportTENART Antoine2013-08-15-0/+180
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Antoine Tenart <atenart@adeneo-embedded.com> [trini: Change to SPDX, fix a few compiler warnings, adapt to CONFIG_OMAP_COMMON] Signed-off-by: Tom Rini <trini@ti.com>
| * | | arm, da850: add ipam390 board supportHeiko Schocher2013-08-15-0/+331
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | add the am1808 based ipam390 board from Barix. - 128MByte, DDR2, synchronous RAM 16bit databus to SDRAM interface - 128MByte, NAND Flash, 8bit databus to the NANDFlash Interface - Ethernet PHY Micrel KSZ8051R via RMII - Console on UART 0 - booting fron nand flash - spl falcon bootmode Signed-off-by: Heiko Schocher <hs@denx.de> Cc: Tom Rini <trini@ti.com>
| * | | bootstage: get more BOOTSTAGE_ID* in show_boot_progress()Heiko Schocher2013-08-15-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In case CONFIG_BOOTSTAGE is not defined, call from bootstage_mark_name() show_boot_progress(), so get more BOOTSTAGE_ID* ids in show_boot_progress() if CONFIG_BOOTSTAGE is not defined. Signed-off-by: Heiko Schocher <hs@denx.de> Cc: Simon Glass <sjg@chromium.org> Cc: Tom Rini <trini@ti.com> Cc: Albert Aribaud <albert.u.boot@aribaud.net> Acked-by: Simon Glass <sjg@chromium.org>
| * | | TI:armv7: Enable CONFIG_CMD_GPIOTom Rini2013-08-15-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Add the generic "poke a GPIO" command, with the GPIO related defines. Acked-by: Dan Murphy <dmurphy@ti.com> Signed-off-by: Tom Rini <trini@ti.com>
| * | | TI:armv7: Enable CONFIG_CMD_SPITom Rini2013-08-15-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add the generic "poke the SPI bus" command, with the SPI related defines. Acked-by: Dan Murphy <dmurphy@ti.com> Signed-off-by: Tom Rini <trini@ti.com>
| * | | TI:omap5/dra7xx: Convert to ti_armv7_common.hTom Rini2013-08-15-177/+34
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Update omap5_common.h to use ti_armv7_common.h, and in turn update dra7xx_evm.h and omap5_uevm.h slightly. The biggest changes here are that IP blocks which exist on the platform, and had clocks enabled, now have the drivers being built as well. Signed-off-by: Tom Rini <trini@ti.com>
| * | | TI:am33xx: Create common config files for TI ARMv7 platforms, and AM33xxTom Rini2013-08-15-218/+326
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We create two new files, include/configs/ti_armv7_common.h for all of the common IP blocks and related features / commands we share in virtually all of our platforms. We then create include/configs/ti_am335x_common.h for everything common to the am335x SoC leaving just the board specific parts to include/configs/ti_am335x_common.h. Signed-off-by: Tom Rini <trini@ti.com>
| * | | am335x_evm: Bring in 'boot_fdt' logic from i.MXTom Rini2013-08-15-5/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Bring in the 'boot_fdt' environment variable that i.MX boards use to try and load a device tree when booting. Signed-off-by: Tom Rini <trini@ti.com>
| * | | am335x_evm: Use default baud rate tableTom Rini2013-08-15-2/+0
| | | | | | | | | | | | | | | | Signed-off-by: Tom Rini <trini@ti.com>
| * | | am33xx: Stop using PHYS_DRAM_1 defineTom Rini2013-08-15-8/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We defined PHYS_DRAM_1 to 0x80000000 (start of DRAM) and then used this for CONFIG_SYS_SDRAM_BASE. But then we kept on referencing PHYS_DRAM_1 in other places. Change to directly setting CONFIG_SYS_DRAM_BASE and then using that name in code. Signed-off-by: Tom Rini <trini@ti.com>
| * | | am33xx: CONFIG_DMA_COHERENT defines are unused, removeTom Rini2013-08-15-10/+0
| | | | | | | | | | | | | | | | | | | | Acked-by: Dan Murphy <dmurphy@ti.com> Signed-off-by: Tom Rini <trini@ti.com>
| * | | OMAP3: igep00x0: allow booting with a FDT from MMCJavier Martinez Canillas2013-08-15-1/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | IGEP boards now have Device Tree support in the mainline kernel. To boot an IGEP board using a DT, a uEnv.txt plain text file could be used to define a custom uenvcmd that will be run by the default boot command. It is more convenient to change the default boot command to allow loading a FDT if it is stored in the boot dir of the rootfs uSD/MMC partition. If no FDT is found then the defaul command tries to boot a zImage without a DT using legacy boot. Signed-off-by: Javier Martinez Canillas <javier.martinez@collabora.co.uk>
| * | | ARM: igep00x0.h: Enable the use of CMD_EXT4, CMD_FS_GENERIC and zImage.Enric Balletbo i Serra2013-08-15-6/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Able to load the kernel from some form of ext[234] or FAT. Also, with v3.9 and later of the Linux Kernel, uImage isn't builtable anymore by default, so we should switch to use the bootz command. Signed-off-by: Enric Balletbo i Serra <eballetbo@gmail.com>
| * | | ARM: IGEP0033: Remove duplicate / unused #defines.Enric Balletbo i Serra2013-08-15-7/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As config was originally based on am335x_evm.h we have also some duplicate / unnused #defines. Commit 15191c91 removed these #defines on various AM335x boards but not for IGEP COM AQUILA. This patch simply removes them for this board. Signed-off-by: Enric Balletbo i Serra <eballetbo@iseebcn.com> Reviewed-by: Javier Martinez Canillas <javier@dowhile0.org>
| * | | ARM: IGEP0033: Add support to boot from NAND.Enric Balletbo i Serra2013-08-15-5/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add to the default environment the possibily to boot from NAND using a ubi rootfs. Also the partition scheme is set as follows: Start Size SPL : 0x00000000 0x00080000 (512KiB) U-Boot : 0x00080000 0x00100000 (1MiB) U-Boot Env : 0x00180000 0x00020000 (128KiB) File System : 0x001C0000 - The ubiboot script gets the kernel and the dtb file from the boot directory of the File System. Signed-off-by: Enric Balletbo i Serra <eballetbo@iseebcn.com> Reviewed-by: Javier Martinez Canillas <javier@dowhile0.org>
| * | | ARM: IGEP0033: Add support for Flattened Device Tree.Enric Balletbò i Serra2013-08-15-20/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Now, the default kernel to boot the IGEP COM AQUILA is device tree based. As old kernel is deprecated we should adapt the boot commands to use DTB files. Also, with v3.9 and later of the Linux Kernel, uImage isn't builtable anymore by default, so we should switch to use the bootz command. Signed-off-by: Enric Balletbo i Serra <eballetbo@iseebcn.com> Reviewed-by: Javier Martinez Canillas <javier@dowhile0.org>