summaryrefslogtreecommitdiffstats
path: root/arch/arm/cpu/armv7
Commit message (Collapse)AuthorAgeFilesLines
* Merge branch 'master' of git://git.denx.de/u-boot-imxWolfgang Denk2010-12-091-0/+14
|\
| * imx: Get fec mac address from fuseLiu Hui-R643432010-11-211-0/+14
| | | | | | | | | | | | | | The patch is to support getting FEC MAC address from fuse bank. Signed-off-by: Jason Liu <r64343@freescale.com> Tested-by: Stefano Babic <sbabic@denx.de>
* | armv7: fix relocation skipAndreas Bießmann2010-12-091-2/+2
| | | | | | | | | | | | | | | | | | I doubt the stack_setup() was defective before: we load the current location of _start and compare against destination of relocate_code(). If we are already there we shoud skip the relocation and jump over to clear_bss. Before the clear_bss was also skipped. Signed-off-by: Andreas Bießmann <andreas.devel@googlemail.com>
* | arm: fixloop(): do not use r8 for relocationAndreas Bießmann2010-12-091-3/+3
| | | | | | | | | | | | | | | | | | 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-091-4/+4
| | | | | | | | | | | | | | | | | | 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-091-5/+5
| | | | | | | | | | | | | | | | | | 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-081-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | 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-081-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>
* | Merge branch 'master' of git://git.denx.de/u-boot-samsungWolfgang Denk2010-11-301-9/+9
|\ \
| * | ARMV7: S5P: timer: get the count_value from register when call udelayMinkyu Kang2010-11-301-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-291-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>
* | | omap4: board: change global data pointer to file scopeNishanth Menon2010-11-191-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-177-14/+14
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-172-45/+25
| | | | | | | | | | | | | | | | | | 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>
* | armv7, beagle: Second SDRAM bank don;t workHeiko Schocher2010-11-041-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>
* Merge branch 'master' of git://git.denx.de/u-boot-imxWolfgang Denk2010-10-292-74/+1
|\
| * MX51: remove warning in clock.cStefano Babic2010-10-281-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>
| * MX5:use common u-boot.lds of cpu layerJason Liu2010-10-281-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>
* | Drop support for CONFIG_SKIP_RELOCATE_UBOOTWolfgang Denk2010-10-291-4/+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-294-170/+0
|/ | | | | | | | | | | | | | | | 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>
* ARM: fix address setup in start.SDarius Augulis2010-10-261-2/+4
| | | | | | | | 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-261-4/+5
| | | | | | | | | | | | | | | | | | 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-261-5/+5
| | | | | Signed-off-by: Gray Remlin <g_remlin@rocketmail.com> Acked-by: Heiko Schocher <hs@denx.de>
* Merge branch 'elf_reloc'Wolfgang Denk2010-10-192-53/+85
|\ | | | | | | | | | | | | | | | | | | | | Conflicts: arch/arm/include/asm/config.h board/LaCie/edminiv2/config.mk board/karo/tx25/config.mk board/logicpd/imx27lite/config.mk doc/README.arm-relocation Signed-off-by: Wolfgang Denk <wd@denx.de>
| * armv7, beagle: add support for ELF relocationsHeiko Schocher2010-10-132-53/+85
| | | | | | | | Signed-off-by: Heiko Schocher <hs@denx.de>
* | Merge branch 'master' of git://git.denx.de/u-boot-imxWolfgang Denk2010-10-198-51/+43
|\ \ | | | | | | | | | | | | | | | | | | | | | Conflicts: board/logicpd/imx31_litekit/config.mk boards.cfg Signed-off-by: Wolfgang Denk <wd@denx.de>
| * | MX5: Remove dead code with ENABLE_IMPRECISE_ABORTJason Liu2010-10-191-14/+0
| | | | | | | | | | | | | | | | | | | | | This code section is dead due to we never define ENABLE_IMPRECISE_ABORT for MX5 Signed-off-by: Jason Liu <r64343@freescale.com>
| * | MX5: rename mx51 to mx5Jason Liu2010-10-188-37/+43
| | | | | | | | | | | | | | | | | | | | | Rename mx51 to mx5 in order to support more mx51 like-style SOCs such as MX53 and the followings. Signed-off-by: Jason Liu <r64343@freescale.com>
* | | Rename TEXT_BASE into CONFIG_SYS_TEXT_BASEWolfgang Denk2010-10-182-2/+2
|/ / | | | | | | | | | | | | | | | | | | | | | | The change is currently needed to be able to remove the board configuration scripting from the top level Makefile and replace it by a simple, table driven script. Moving this configuration setting into the "CONFIG_*" name space is also desirable because it is needed if we ever should move forward to a Kconfig driven configuration system. Signed-off-by: Wolfgang Denk <wd@denx.de>
* | ARMV7: OMAP4: Implement relocation for Panda and OMAP4430SDPSteve Sakoman2010-10-171-0/+5
| | | | | | | | | | | | | | This patch fixes the build breakage introduced by the recent relocation changes for ARMV7 Signed-off-by: Steve Sakoman <steve@sakoman.com>
* | ARMV7: OMAP3: Fix bug in get_sdr_cs_offset()Steve Sakoman2010-10-171-1/+1
|/ | | | | | | | | | | | | This patch fixes a typo in the routine to calculate the cs offset based upon the contents of the SDRC cs_cfg register. This function mistakenly shifts the CS1STARTLOW field 17 bits right instead of 17 bits left. This hasn't been an issue to date because all OMAP3 boards currently are configured to have zeros in this field. Reported-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Steve Sakoman <steve.sakoman@linaro.org>
* arm: bugfix: replace ble with blo in start.S filesAlbert Aribaud2010-10-111-4/+4
| | | | | | | | | | | Generalized misuse of ble within relocation and bss initialization loops caused one iteration too many. Instead of ble ('branch if lower or equal'), use blo ('branch if lower'). While we're at it, fix all 'addreee' typos. Signed-off-by: Albert Aribaud <albert.aribaud@free.fr>
* ARM: Use syslib functions for all CORTEXA8Stefano Babic2010-09-293-2/+2
| | | | | | | | The OMAP3 cpu directory contains a syslib file with some utilities that can be shared by all targets using arm cortexa8 processors, not only OMAP. Signed-off-by: Stefano Babic <sbabic@denx.de>
* Merge branch 'next' of /home/wd/git/u-boot/nextWolfgang Denk2010-09-286-6/+365
|\ | | | | | | | | | | | | Conflicts: include/ppc4xx.h Signed-off-by: Wolfgang Denk <wd@denx.de>
| * ARM: implement relocation for ARM V7 (OMAP)Heiko Schocher2010-09-195-6/+285
| | | | | | | | | | | | | | | | | | | | | | | | Change the implementation for ARM V7 to relocate the code to an arbitrary address in RAM. Adapt the Beagle board (Cortex A8) to test the changes. Portions of this work were supported by funding from the CE Linux Forum. Signed-off-by: Heiko Schocher <hs@denx.de>
| * ARM V7 (OMAP): add data cache support, test on Beagle boardHeiko Schocher2010-09-191-0/+80
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add data cache support for ARM V7 systems. Used cache flush functions from linux:arch/arm/mm/cache-v7.S developed from Catalin Marinas. Enable "cache" command on Beagle board and test performance. Test 1: Loading 127 MB of data from NAND flash into RAM: Instr. Cache off on on Data Cache off off on -------------------------------------------------- Beagle (Cortex A8) 116s 106s 30.3s = x 3.8 Test 2: uncompressing a gzipped image from RAM to RAM (size compressed: 6.5 MiB, uncompressed: 35 MiB): Instr. Cache off on on Data Cache off off on -------------------------------------------------- Beagle (Cortex A8) 1.84s 1.64s 0.12s = x 15.3 Portions of this work were supported by funding from the CE Linux Forum. Signed-off-by: Heiko Schocher <hs@denx.de> Reviewed-by: Ben Gardiner<bengardiner@nanometrics.ca>
* | ARMV7: OMAP4: Calculate SDRAM sizeAneesh V2010-09-281-1/+29
|/ | | | | | | | | | | Calculate the SDRAM size from DMM configuration registers instead of using hard-coded values. This gives correct values for all different boards. It's assumed that DMM sections do not overlap memory areas. Signed-off-by: Aneesh V <aneesh@ti.com> Tested-by: Steve Sakoman <steve@sakoman.com> Signed-off-by: Sandeep Paulraj <s-paulraj@ti.com>
* Prepare v2010.09-rc1Wolfgang Denk2010-09-105-5/+0
| | | | | | Coding style cleanup. Signed-off-by: Wolfgang Denk <wd@denx.de>
* Merge branch 'master' of git://git.denx.de/u-boot-tiWolfgang Denk2010-09-0910-288/+665
|\
| * ARMV7: OMAP3: Remove erroneous hard coded sdram setup for 128MB/bankSteve Sakoman2010-09-081-22/+21
| | | | | | | | | | | | | | | | | | Upcoming Beagle and Overo revisions use POP memory with 256MB or 512MB per bank. This patches uses the SDRC settings from x-load or the config header to set up timing properly. Signed-off-by: Steve Sakoman <steve@sakoman.com> Signed-off-by: Sandeep Paulraj <s-paulraj@ti.com>
| * ARMV7: OMAP3: Fix broken reset command on OMAP36XX/37XX and OMAP4Steve Sakoman2010-09-081-1/+3
| | | | | | | | | | | | | | | | Using the reset command on OMAP36XX/37XX and OMAP4 caused a hang. This patch uses the reset bit appropriate for each CPU architecture. Signed-off-by: Steve Sakoman <steve@sakoman.com> Signed-off-by: Sandeep Paulraj <s-paulraj@ti.com>
| * ARMV7: OMAP3: Apply Cortex-A8 errata workarounds only on affected revisionsMans Rullgard2010-09-081-3/+10
| | | | | | | | | | | | | | | | | | | | The workarounds for errata 621766 and 725233 should only be applied on affected Cortex-A8 revisions. Recent chips use r3px cores where these have been fixed. Signed-off-by: Mans Rullgard <mans@mansr.com> Signed-off-by: Steve Sakoman <steve@sakoman.com> Signed-off-by: Sandeep Paulraj <s-paulraj@ti.com>
| * ARMV7: OMAP3: Convert setup_auxcr() to pure asmMans Rullgard2010-09-082-35/+19
| | | | | | | | | | | | | | | | | | | | | | This function consists entirely of inline asm statements, so writing it directly in a .S file is simpler. Additionally, the inline asm is not safe as is, since registers are not guaranteed to be preserved between asm() statements. Signed-off-by: Mans Rullgard <mans@mansr.com> Signed-off-by: Steve Sakoman <steve@sakoman.com> Signed-off-by: Sandeep Paulraj <s-paulraj@ti.com>
| * ARMV7: OMAP3: Fix and clean up L2 cache enable/disable functionsMans Rullgard2010-09-081-54/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | On OMAP34xx ES1.0, the L2 enable bit can only be set in secure mode, so an SMC call to the ROM monitor is required. On later versions, and on newer devices, this bit is banked and we can set it directly. The code checked only the ES revision of the chip, and hence incorrectly used the ROM call on ES1.0 versions of other devices. This patch adds a check for chip family as well as revision, and also removes some code duplication between the enable and disable functions. Signed-off-by: Mans Rullgard <mans@mansr.com> Signed-off-by: Steve Sakoman <steve@sakoman.com> Signed-off-by: Sandeep Paulraj <s-paulraj@ti.com>
| * ARMV7: OMAP3: Add clock setup for OMAP36XX/37XXSteve Sakoman2010-09-082-147/+471
| | | | | | | | | | | | | | | | This patch configures clocks properly when a 36XX/37XX processor is detected. Signed-off-by: Steve Sakoman <steve@sakoman.com> Signed-off-by: Sandeep Paulraj <s-paulraj@ti.com>
| * ARMV7: OMAP3: Update CPU type detection for AM35XX/OMAP36XX/37XXSteve Sakoman2010-09-081-26/+121
| | | | | | | | | | | | | | | | TI has added new processors to the OMAP3 family. This patch enhances the code in sysinfo.c to detect which family member is present. Signed-off-by: Steve Sakoman <steve@sakoman.com> Signed-off-by: Sandeep Paulraj <s-paulraj@ti.com>
| * ARMV7: OMAP: Move syslib.c to omap-common since it can be shared by OMAP3 ↵Steve Sakoman2010-09-083-3/+2
| | | | | | | | | | | | | | | | | | | | and OMAP4 The functions in syslib.c can be shared, so this patch moves it from cpu/omap3 to cpu/omap-common Signed-off-by: Steve Sakoman <steve@sakoman.com> Signed-off-by: Sandeep Paulraj <s-paulraj@ti.com>
* | Merge branch 'master' of git://git.denx.de/u-boot-samsungWolfgang Denk2010-09-087-40/+103
|\ \ | |/ |/|
| * ARMV7: S5P: separate the peripheral clocksMinkyu Kang2010-08-302-5/+24
| | | | | | | | | | | | | | | | | | | | Because of peripheral devices can select clock sources, separate the peripheral clocks. (pwm, uart and so on) It just return the pclk at s5pc1xx SoC, but s5pc210 SoC must be calculated by own clock register setting. Signed-off-by: Minkyu Kang <mk7.kang@samsung.com> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
| * ARMV7: S5P: rename from s5pc1xx to s5pMinkyu Kang2010-08-233-15/+14
| | | | | | | | | | | | | | | | Because of these are common files around s5p Socs, rename from s5pc1xx to s5p. And getting cpu_id is SoC specific, so move to SoC's header file. Signed-off-by: Minkyu Kang <mk7.kang@samsung.com> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>