summaryrefslogtreecommitdiff
path: root/arch/arm
Commit message (Collapse)AuthorAgeLines
* arm: fixloop(): do not use r8 for relocationAndreas Bießmann2010-12-09-42/+42
| | | | | | | | | r8 is used for global_data and should therefore be left alone! For C code the compiler flag --fixed-r8 does the job, but in assembler we need to be aware of that fact. Signed-off-by: Andreas Bießmann <andreas.devel@googlemail.com>
* arm: relocate_code(): do not set register uselessAndreas Bießmann2010-12-09-30/+30
| | | | | | | | | In case we are still at relocation target address before relocation we do not need to load the registers needed for relocation. We should instead skip the whole relocation part and jump over to clear_bss immediately. Signed-off-by: Andreas Bießmann <andreas.devel@googlemail.com>
* arm: copy_loop(): use scratch registerAndreas Bießmann2010-12-09-70/+70
| | | | | | | | | This patch uses r1 as scratch register for copy_loop(). Therefore we do not longer need r7 for the storage of relocate_code()'s 'addr_moni' (the destination address of relocation). Therefore r7 can be used later on for other purposes. Signed-off-by: Andreas Bießmann <andreas.devel@googlemail.com>
* arm: add 8-byte alignment for ABI compliance before board_init_fHeiko Schocher2010-12-08-1/+15
| | | | | | | | | | | | | suggested from Daniel Hobi<daniel.hobi@schmid-telecom.ch> Tested on following boards: arm1136: qong armv7: omap3_beagle arm926ejs: magnesium, tx25 Signed-off-by: Heiko Schocher <hs@denx.de> cc: Daniel Hobi <daniel.hobi@schmid-telecom.ch> cc: Albert ARIBAUD <albert.aribaud@free.fr>
* ARMV7: Vexpress: fix build errorsMatt Waddel2010-12-08-1/+0
| | | | | | | | | This patch fixes build errors in the vexpress system: - Removed sys_proto.h requirement from syslib.c. - Switched vexpress to the default armv7 linker script. - Renamed TEXT_BASE to CONFIG_SYS_TEXT_BASE. Signed-off-by: Matt Waddel <matt.waddel@linaro.org>
* arm920t/at91/timer: replace bss variables by gdAndreas Bießmann2010-12-07-15/+15
| | | | | | | | | | Reuse the gd->tbl value for timestamp and add gd->lastinc for lastinc bss values in arm920t/at91/timer driver. The usage of bss values in driver before initialisation of bss is forbidden. In that special case some data in .rel.dyn gets corrupted by the arm920t/at91/timer driver. Signed-off-by: Andreas Bießmann <andreas.devel@googlemail.com>
* arm920t/at91/reset: board_reset: define weak symbolAndreas Bießmann2010-12-07-3/+5
| | | | Signed-off-by: Andreas Bießmann <biessmann@corscience.de>
* AT91: fix EMAC gpio init in at91sam9260_devices.cReinhard Meyer2010-12-07-0/+5
| | | | | | | The AT91SAM9G20 BOOT ROM apparently initializes PA23 and PA24 to multi drive (open drain). Revert this, if those pins are going to be used for MII. Signed-off-by: Reinhard Meyer <u-boot@emk-elektronik.de>
* Merge branch 'master' of git://git.denx.de/u-boot-samsungWolfgang Denk2010-11-30-9/+9
|\
| * ARMV7: S5P: timer: get the count_value from register when call udelayMinkyu Kang2010-11-30-9/+9
| | | | | | | | | | | | | | Because of count_value is set to tcnb4 register, should be get from this register when call udelay function. Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
* | AM3517:EMIF4: fix SDRAM size to 256MbVaibhav Hiremath2010-11-29-2/+3
| | | | | | | | | | | | | | | | | | | | With addition of "dram_init_banksize()" function from Heiko,Schocher (commit ID: 561142af20f1fd7b425d9425730014e656defb91), the DRAM size is getting configured wrongly to 512Mb (CS0 & CS1). So fix it to 256Mb. Signed-off-by: Vaibhav Hiremath <hvaibhav@ti.com> Signed-off-by: Sandeep Paulraj <s-paulraj@ti.com>
* | arm1176: bugfix: fix start.S for ELF relocationAlbert Aribaud2010-11-26-34/+13
| | | | | | | | | | | | | | The start.S file was only half-rewritten for ELF relocations. This bugfix completes the rewrite. Signed-off-by: Albert Aribaud <albert.aribaud@free.fr>
* | arm: add ELF relocation support to rest of cpusAlbert Aribaud2010-11-26-666/+785
| | | | | | | | | | | | | | | | bulk addition of ELF relocation support to ARM cpus arm946es, arm720t,arm920t, arm925t, arm_intcm, ixp, lh7a40x, s3c44b0, and sa1100. Signed-off-by: Albert Aribaud <albert.aribaud@free.fr>
* | omap4: board: change global data pointer to file scopeNishanth Menon2010-11-19-1/+2
| | | | | | | | | | | | | | | | | | | | DECLARE_GLOBAL_DATA_PTR is currently defined within the scope of function while it is a global pointer. Change the scope of definition to replicate it's global scope. This seems to help gcc 4.5 optimizations as well. Signed-off-by: Nishanth Menon <nm@ti.com> Signed-off-by: Sandeep Paulraj <s-paulraj@ti.com>
* | Switch from archive libraries to partial linkingSebastien Carlier2010-11-17-95/+95
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | Before this commit, weak symbols were not overridden by non-weak symbols found in archive libraries when linking with recent versions of binutils. As stated in the System V ABI, "the link editor does not extract archive members to resolve undefined weak symbols". This commit changes all Makefiles to use partial linking (ld -r) instead of creating library archives, which forces all symbols to participate in linking, allowing non-weak symbols to override weak symbols as intended. This approach is also used by Linux, from which the gmake function cmd_link_o_target (defined in config.mk and used in all Makefiles) is inspired. The name of each former library archive is preserved except for extensions which change from ".a" to ".o". This commit updates references accordingly where needed, in particular in some linker scripts. This commit reveals board configurations that exclude some features but include source files that depend these disabled features in the build, resulting in undefined symbols. Known such cases include: - disabling CMD_NET but not CMD_NFS; - enabling CONFIG_OF_LIBFDT but not CONFIG_QE. Signed-off-by: Sebastien Carlier <sebastien.carlier@gmail.com>
* ARM: fix linker file for newer ld supportAlbert Aribaud2010-11-17-121/+105
| | | | | | | | | older ld emitted all ELF relocations in input sections named .rel.dyn, whereas newer ld uses names of the form .rel*. The linker script only collected .rel.dyn input sections. Rewrite to collect all .rel* input sections. Signed-off-by: Albert Aribaud <albert.aribaud@free.fr>
* Merge branch 'master' of git://git.denx.de/u-boot-tiWolfgang Denk2010-11-13-1/+8
|\
| * armv7, beagle: Second SDRAM bank don;t workHeiko Schocher2010-11-04-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | since commit 3667cbeed5e3c4067e624e52a916b1ebb02c8f05 on beagle board the second sdram bank didn;t longer work. Since this patch sdram settings just get copied from bank a, but CMD_NOP, CMD_PRECHARGE, CMD_AUTOREFRESH are not executed and after that mr register is also not updated. This patch adds this for the bank b. Signed-off-by: Heiko Schocher <hs@denx.de> cc: Steve Sakoman <steve@sakoman.com> cc: Sandeep Paulraj <s-paulraj@ti.com> cc: Wolfgang Denk <wd@denx.de> Signed-off-by: Sandeep Paulraj <s-paulraj@ti.com>
| * ARMV7: Fix build for non-OMAP3 boardsSteve Sakoman2010-11-04-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Commit c3d3a54 uses CONFIG_ARMV7 to determine whether to call the v7_flush_cache_all function. This breaks the build for all non-OMAP3 boards (like Panda and OMAP4430SDP) since there is only a v7_flush_cache_all implementation for OMAP3. This patch uses CONFIG_OMAP3XXX instead of CONFIG_ARMV7 so that only boards with a v7_flush_cache_all will make the call. Tested on Beagle, Overo, Panda, and OMAP4430SDP Signed-off-by: Steve Sakoman <steve.sakoman@linaro.org> Signed-off-by: Sandeep Paulraj <s-paulraj@ti.com>
* | AT91: add header file for the Shutdown ControllerReinhard Meyer2010-11-02-0/+39
| | | | | | | | | | | | and SHDWN address entry in at91sam9260.h Signed-off-by: Reinhard Meyer <u-boot@emk-elektronik.de>
* | AT91: add 2nd SPI to 9260/9XE/9G20Reinhard Meyer2010-10-30-0/+2
|/ | | | Signed-off-by: Reinhard Meyer <u-boot@emk-elektronik.de>
* Merge branch 'master' of git://git.denx.de/u-boot-marvellWolfgang Denk2010-10-29-0/+10
|\ | | | | | | | | | | | | Conflicts: include/configs/km_arm.h Signed-off-by: Wolfgang Denk <wd@denx.de>
| * Kirkwood: bugfix: DRAM size initializationTanmay Upadhyay2010-10-28-0/+10
| | | | | | | | | | | | | | | | | | If start of any DRAM bank is greater than total DDR size, remaining DDR banks' start address & size were left un-initialized in dram_init function. This could break other functions who uses array 'gd->bd->bi_dram'. Kirkwood network driver is one example. This also stops Linux kernel from booting. v2 - Set start address also to 0. Without this Linux kernel couldn't boot up Signed-off-by: Tanmay Upadhyay <tanmay.upadhyay@einfochips.com>
* | Merge branch 'master' of git://git.denx.de/u-boot-imxWolfgang Denk2010-10-29-85/+15
|\ \
| * | mx51evk: support new relocation schemeShawn Guo2010-10-28-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch is to fix build breakage and support new relocation scheme for mx51evk. - Correct IRAM base address and add size definition The IRAM starts from 0x1FFE0000 on final revsion i.mx51 than 0x1FFE8000 which is for older revision. - Include imx-regs.h in mx51evk.h Definitions like CSD0_BASE_ADDR and IRAM_BASE_ADDR can be referred to. - Define CONFIG_SYS_INIT_RAM_ADDR and CONFIG_SYS_INIT_RAM_SIZE They are used to define init RAM layout. - Remove comment for CONFIG_SYS_GBL_DATA_SIZE which has been buried by Wolfgang's commit below 25ddd1fb: Replace CONFIG_SYS_GBL_DATA_SIZE by auto-generated value Signed-off-by: Shawn Guo <shawn.gsc@gmail.com>
| * | MX51: remove warning in clock.cStefano Babic2010-10-28-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The patch removes the warning: clock.c:291: warning: initialization from incompatible pointer type after constification of args[] Signed-off-by: Stefano Babic <sbabic@denx.de>
| * | imx25: Fix resetMatthias Weisser2010-10-28-10/+12
| | | | | | | | | | | | | | | | | | | | | | | | This patch fixes the reset command on imx25. The watchdog registers are 16 bits in size and not 32. This patch also adds the service register codes as constants. Signed-off-by: Matthias Weisser <weisserm@arcor.de>
| * | MX5:use common u-boot.lds of cpu layerJason Liu2010-10-28-73/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Remove u-boot.lds from mx5 and use the common u-boot.lds of cpu layer. This patch also fix the building errors: arch/arm/cpu/armv7/start.o: In function `_rel_dyn_start_ofs': arch/arm/cpu/armv7/start.S:283: undefined reference to `__rel_dyn_start' arch/arm/cpu/armv7/start.o: In function `_rel_dyn_end_ofs': arch/arm/cpu/armv7/start.S:283: undefined reference to `__rel_dyn_end' arch/arm/cpu/armv7/start.o: In function `_dynsym_start_ofs': arch/arm/cpu/armv7/start.S:283: undefined reference to `__dynsym_start' Signed-off-by: Jason Liu <r64343@freescale.com>
* | | Merge branch 'master' of git://git.denx.de/u-boot-samsungWolfgang Denk2010-10-29-328/+598
|\ \ \
| * | | Add generic support for samsung s3c2440C Nauman2010-10-28-324/+586
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds generic support for the Samsung s3c2440 processor. Global s3c24x0 changes to struct members converting from upper case to lower case. Signed-off-by: Craig Nauman <cnauman@diagraph.com> Cc: kevin.morfitt@fearnside-systems.co.uk Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
| * | | ARMV7: S5P: serial: support the s5pc210Minkyu Kang2010-10-19-3/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch is for s5pc210 support. Due to the resigter of baudrate is changed from slot to value, add both of them to uart structure. Signed-off-by: Minkyu Kang <mk7.kang@samsung.com> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
| * | | s5p_mmc: support 8-bit bus widthJaehoon Chung2010-10-19-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This Patch do support 8-bit bus width for s5p So we add parameter for bus_width (in s5p_mmc_init(), s5p_mmc_initialize()) If want to use 8-bit bus width, only change (0, 8) instead of (0, 4). Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com> Signed-off-by: Minkyu Kang <mk7.kang@samsung.com> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
* | | | Merge branch 'for-wd-master' of git://git.denx.de/u-boot-pxaWolfgang Denk2010-10-29-329/+0
|\ \ \ \
| * | | | arm/pxa: remove unused arch-pxa/macro.hMikhail Kshevetskiy2010-10-27-329/+0
| | |/ / | |/| | | | | | | | | | Signed-off-by: Mikhail Kshevetskiy <mikhail.kshevetskiy@gmail.com>
* | | | Drop support for CONFIG_SKIP_RELOCATE_UBOOTWolfgang Denk2010-10-29-38/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For ARM systems, before ELF relocation was introduced, CONFIG_SKIP_RELOCATE_UBOOT coul be used to prevent *COPYING* the U-Boot image from whereever it was loaded to it's link address (CONFIG_SYS_TEXT_BASE). The name was badly chosen, as no relocation was performed at all, it was just a memcpy(). With ELF relocation, this does not work like that any more, and related boards need to be fixed anyway. So don't keep this relict any longer. Signed-off-by: Wolfgang Denk <wd@denx.de> Tested-by: Heiko Schocher <hs@denx.de> Tested-by: Reinhard Meyer <u-boot@emk-elektronik.de>
* | | | Drop support for CONFIG_SYS_ARM_WITHOUT_RELOCWolfgang Denk2010-10-29-1939/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When this define was introduced, the idea was to provide a soft migration path for ARM boards to get adapted to the new relocation support. However, other recent changes led to a different implementation (ELF relocation), where this no longer works. By now CONFIG_SYS_ARM_WITHOUT_RELOC does not only not help any more, but it actually hurts because it obfuscates the actual code by sprinkling it with lots of dead and non-working debris. So let's make a clean cut and drop CONFIG_SYS_ARM_WITHOUT_RELOC. Signed-off-by: Wolfgang Denk <wd@denx.de> Tested-by: Heiko Schocher <hs@denx.de> Tested-by: Reinhard Meyer <u-boot@emk-elektronik.de>
* | | | Replace CONFIG_RELOC_FIXUP_WORKS by CONFIG_NEEDS_MANUAL_RELOCWolfgang Denk2010-10-29-35/+0
|/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | By now, the majority of architectures have working relocation support, so the few remaining architectures have become exceptions. To make this more obvious, we make working relocation now the default case, and flag the remaining cases with CONFIG_NEEDS_MANUAL_RELOC. Signed-off-by: Wolfgang Denk <wd@denx.de> Tested-by: Heiko Schocher <hs@denx.de> Tested-by: Reinhard Meyer <u-boot@emk-elektronik.de>
* | | Coding Style cleanupWolfgang Denk2010-10-27-2/+1
| | | | | | | | | | | | Signed-off-by: Wolfgang Denk <wd@denx.de>
* | | ARM: use the same branch insn on all architecturesWolfgang Denk2010-10-26-10/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For the "fixloop" implementation in start.S a number of different instructions was used. Unify code so all architectures use "blo" here because it is more robust in case of incorrect alignments. Signed-off-by: Wolfgang Denk <wd@denx.de> Cc: Albert ARIBAUD <albert.aribaud@free.fr> Cc: Minkyu Kang <mk7.kang@samsung.com> Cc: Sandeep Paulraj <s-paulraj@ti.com> Cc: Prafulla Wadaskar <prafulla@marvell.com> Cc: Stefano Babic <sbabic@denx.de> Cc: Marek Vasut <marek.vasut@gmail.com> Acked-by: Heiko Schocher <hs@denx.de>
* | | arm, bootm: Fix compile warningHeiko Schocher2010-10-26-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix warning: bootm.c: In function 'bootm_linux_fdt': bootm.c:181: warning: unused variable 's' bootm.c:180: warning: unused variable 'bd' Signed-off-by: Heiko Schocher <hs@denx.de>
* | | arm1176: fix relocationDarius Augulis2010-10-26-61/+97
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix relocation code for arm1176, do it like other ARM CPU's are doing. Tested only with CONFIG_SKIP_RELOCATE_UBOOT defined and using nand_spl (booting from nand). Test done on s3c6410 based board (not yet supported in main line). Signed-off-by: Darius Augulis <augulis.darius@gmail.com>
* | | ARM: fix address setup in start.SDarius Augulis2010-10-26-8/+16
| | | | | | | | | | | | | | | | | | | | | | | | Fix address setup bug for ARM. This bug stops u-boot booting if CONFIG_SKIP_RELOCATE_UBOOT is defined. Signed-off-by: Darius Augulis <augulis.darius@gmail.com>
* | | Replace CONFIG_SYS_GBL_DATA_SIZE by auto-generated valueWolfgang Denk2010-10-26-55/+58
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | CONFIG_SYS_GBL_DATA_SIZE has always been just a bad workarond for not being able to use "sizeof(struct global_data)" in assembler files. Recent experience has shown that manual synchronization is not reliable enough. This patch renames CONFIG_SYS_GBL_DATA_SIZE into GENERATED_GBL_DATA_SIZE which gets automatically generated by the asm-offsets tool. In the result, all definitions of this value can be deleted from the board config files. We have to make sure that all files that reference such data include the new <asm-offsets.h> file. No other changes have been done yet, but it is obvious that similar changes / simplifications can be done for other, related macro definitions as well. Signed-off-by: Wolfgang Denk <wd@denx.de> Acked-by: Kumar Gala <galak@kernel.crashing.org>
* | | ARM: Use consistent assembler syntaxGray Remlin2010-10-26-15/+15
| | | | | | | | | | | | | | | Signed-off-by: Gray Remlin <g_remlin@rocketmail.com> Acked-by: Heiko Schocher <hs@denx.de>
* | | ARM: fix relocation support for onenand device.Enric Balletbo i Serra2010-10-23-0/+3
| | | | | | | | | | | | | | | | | | | | | We also have to relocate the onenand command table manually, otherwise onenand command don't work. Signed-off-by: Enric Balletbo i Serra <eballetbo@iseebcn.com>
* | | Merge branch 'for-wd-master' of git://git.denx.de/u-boot-pxaWolfgang Denk2010-10-23-88/+80
|\ \ \
| * | | PXA: Use pxa-regs.h register definitions in start.SMarek Vasut2010-10-22-12/+8
| | | | | | | | | | | | | | | | Signed-off-by: Marek Vasut <marek.vasut@gmail.com>
| * | | PXA: Implement ELF relocationMarek Vasut2010-10-22-76/+72
| | |/ | |/| | | | | | | | | | | | | Based on patch by: Albert Aribaud <albert.aribaud@free.fr> Signed-off-by: Marek Vasut <marek.vasut@gmail.com>
* | | MX51: Add IPU driver for video supportStefano Babic2010-10-22-0/+11
|/ / | | | | | | | | | | | | | | | | | | | | | | The patch is a porting of the IPU Linux driver developed by Freescale to have framebuffer functionalities in u-boot. The port is based on kernel 2.6.31 commit cc4fe714041805997b601fe8e5dd585d8a99297f, as delivered by Freescale [i.MX BSP]. Most features are dropped from the original driver and only LCD support is the goal of this porting. Signed-off-by: Stefano Babic <sbabic@denx.de>
* | MX31: Removed warnings for iomux functionStefano Babic2010-10-20-4/+4
| | | | | | | | | | | | Removed warnings generated in the mx31_set_pad() function. Signed-off-by: Stefano Babic <sbabic@denx.de>