summaryrefslogtreecommitdiff
path: root/arch
Commit message (Collapse)AuthorAgeLines
* ARM: make timer variables in gt_t available for all ARM platformsPrafulla Wadaskar2010-12-09-1/+3
| | | | | | | | | | | | | | All code that attemots to access variables in BSS before relocation (for example directly or indirectly by board_init_f()) needs to be fixed. Especially timer.c needs to fix on most of the ARM platforms. This patch makes timer related variables in gd_t available for all ARM implementations. Signed-off-by: Prafulla Wadaskar <prafulla@marvell.com> Edited commit message. Signed-off-by: Wolfgang Denk <wd@denx.de>
* armv7: fix relocation skipAndreas Bießmann2010-12-09-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-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>
* Merge branch 'master' of git://git.denx.de/u-boot-armWolfgang Denk2010-12-08-18/+25
|\
| * 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>
* | powerpc/85xx: do not reloc l2srbar if CONFIG_FLASH_BASE is not definedHaiying Wang2010-12-01-1/+1
| | | | | | | | | | | | | | | | This fixes the compiling error for the board which doesn't have NOR flash (so CONFIG_FLASH_BASE is not defined) Signed-off-by: Haiying Wang <Haiying.Wang@freescale.com> Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
* | Merge branch 'master' of /home/wd/git/u-boot/custodiansWolfgang Denk2010-11-30-11/+12
|\ \
| * \ Merge branch 'master' of git://git.denx.de/u-boot-armWolfgang Denk2010-11-30-11/+12
| |\ \ | | |/
| | * 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>
* | | | powerpc/85xx: Introduce CONFIG_SYS_EXTRA_ENV_RELOCKumar Gala2010-11-30-0/+11
|/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some systems need to relocate the env_addr pointer early because the location it points to will get invalidated before env_relocate is called. One example is on systems that might use a L2 or L3 cache in SRAM mode and initialize that cache from SRAM mode back to being a cache in cpu_init_r. We set this on the 85xx boards that have support for NAND, SPI, or SDHC/MMC boot support as they use a secondary cache in SRAM mode and need the env_addr pointer relocated since we change from SRAM to normal cache mode in cpu_init_r. Also removed CONFIG_SYS_SPL as its not used anywhere. Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
* | | Merge branch 'master' of git://git.denx.de/u-boot-shWolfgang Denk2010-11-30-13/+13
|\ \ \
| * | | sh: Fix build in start.SNobuhiro Iwamatsu2010-11-30-13/+13
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | By commit 6d8962e814c15807dd6ac5757904be2a02d187b8, label of _start was not usable in start.S and build fail. This change label from _start to _sh_start. ---- arch/sh/cpu/sh4/libsh4.o: In function `_start': (.text+0x204): multiple definition of `_start' arch/sh/cpu/sh4/start.o:(.text+0x0): first defined here ---- Signed-off-by: Nobuhiro Iwamatsu <nobuhiro.iwamatsu.yj@renesas.com>
* | | mpc83xx: Make it boot againJoakim Tjernlund2010-11-30-0/+8
|/ / | | | | | | | | | | | | | | | | | | | | | | | | After the removal of COLD/WARM start flags my mpc8321 board didn't boot anymore. Trial and error suggests that map/remap_flash_by_xxx needs to wait after updating LBLAWAR1 to make sure the the change has reached the HW before continuing with the code that depends on it. Final fix suggested by Scott Wood. Signed-off-by: Joakim Tjernlund <Joakim.Tjernlund@transmode.se> Acked-by: Scott Wood <scottwood@freescale.com> Signed-off-by: Kim Phillips <kim.phillips@freescale.com>
* | ppc4xx: Flush complete dcache in relocate_code()Stefan Roese2010-11-28-6/+7
| | | | | | | | | | | | | | | | | | When the cache is enabled in SDRAM we need to flush not only the global data area but also the bd_info struct in relocate_code. This patch now flushed the complete dcache (all dcache lines) via flush_dcache() instead of adding a flush_dcache_range() call for bd_info since this is faster. Signed-off-by: Stefan Roese <sr@denx.de>
* | powerpc: cmd_ecctest: Use return value of cmd_usageThomas Weber2010-11-27-4/+2
| | | | | | | | | | | | | | | | Use the return value of cmd_usage instead of ignoring this and returning a 1. Signed-off-by: Thomas Weber <weber@corscience.de> Acked-by: Mike Frysinger <vapier@gentoo.org>
* | 74xx_7xx: Cleanup for partial linking and --gc-sectionsWolfgang Denk2010-11-27-0/+91
| | | | | | | | | | Signed-off-by: Wolfgang Denk <wd@denx.de> Acked-by: Stefan Roese <sr@denx.de>
* | 8260: Cleanup for partial linking and --gc-sectionsWolfgang Denk2010-11-27-45/+11
| | | | | | | | | | Signed-off-by: Wolfgang Denk <wd@denx.de> Acked-by: Stefan Roese <sr@denx.de>
* | 824x: Cleanup for partial linking and --gc-sectionsWolfgang Denk2010-11-27-43/+10
| | | | | | | | | | Signed-off-by: Wolfgang Denk <wd@denx.de> Acked-by: Stefan Roese <sr@denx.de>
* | 8220: Cleanup for partial linking and --gc-sectionsWolfgang Denk2010-11-27-45/+11
| | | | | | | | | | Signed-off-by: Wolfgang Denk <wd@denx.de> Acked-by: Stefan Roese <sr@denx.de>
* | 5xxx: Cleanup for partial linking and --gc-sectionsWolfgang Denk2010-11-27-102/+43
| | | | | | | | | | Signed-off-by: Wolfgang Denk <wd@denx.de> Acked-by: Stefan Roese <sr@denx.de>
* | 512x: Cleanup for partial linking and --gc-sectionsWolfgang Denk2010-11-27-44/+10
| | | | | | | | | | | | | | Signed-off-by: Wolfgang Denk <wd@denx.de> Cc: Anatolij Gustschin <agust@denx.de> Cc: Timur Tabi <timur@freescale.com> Acked-by: Stefan Roese <sr@denx.de>
* | 5xx: Cleanup for partial linking and --gc-sectionsWolfgang Denk2010-11-27-53/+16
| | | | | | | | | | Signed-off-by: Wolfgang Denk <wd@denx.de> Acked-by: Stefan Roese <sr@denx.de>
* | 8xx: Cleanup for partial linking and --gc-sectionsWolfgang Denk2010-11-27-6/+6
| | | | | | | | | | Signed-off-by: Wolfgang Denk <wd@denx.de> Acked-by: Stefan Roese <sr@denx.de>
* | 86xx: Cleanup for partial linking and --gc-sectionsWolfgang Denk2010-11-27-36/+6
| | | | | | | | | | | | Signed-off-by: Wolfgang Denk <wd@denx.de> Cc: Kumar Gala <galak@kernel.crashing.org> Acked-by: Stefan Roese <sr@denx.de>
* | 83xx: Cleanup for partial linking and --gc-sectionsWolfgang Denk2010-11-27-43/+10
| | | | | | | | | | | | Signed-off-by: Wolfgang Denk <wd@denx.de> Cc: Kim Phillips <kim.phillips@freescale.com> Cc: Haiying Wang <r54964@freescale.com>
* | ppc4xx: Cleanup for partial linking and --gc-sectionsWolfgang Denk2010-11-27-43/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit adapts 4xx boards for partial linking with --gc-sections. Signed-off-by: Stefan Roese <sr@denx.de> Signed-off-by: Wolfgang Denk <wd@denx.de> Cc: Stefan Roese <sr@denx.de> Cc: Tirumala Marri <tmarri@apm.com> Cc: David Updegraff <dave@cray.com> Cc: Matthias Fuchs <matthias.fuchs@esd-electronics.com> Cc: Dirk Eibach <eibach@gdsys.de> Cc: Larry Johnson <lrj@acm.org> Cc: Peter De Schrijver <p2@mind.be> Cc: Niklaus Giger <niklaus.giger@netstal.com> Cc: Daniel Poirot <dan.poirot@windriver.com> Acked-by: Stefan Roese <sr@denx.de>
* | POWERPC: enable --gc-sections and -ffunction-sections -fdata-sectionsWolfgang Denk2010-11-27-6/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The switch from archive libraries to partial linking has introduced a number of problems, that are non-trivial to solve. For example, it is no longer possible to include individual object files in the linker script as we did before for example in the case of boards with embedded environment to fill up the gap caused by the need to align the environment on flash erase block boundaries. The best (but unfortunately not easiest) approach to address this problem is to enable -ffunction-sections (and -fdata-sections) so we can again (and even in much finer granularity) place certain code where we want it. When doing this step, it seems only consequent to also add --gc-sections which has the added benefit of reducing the memory footprint of the U-Boot image (both in flash and in RAM). Unfortunately, this requires changes to a lot of linker scripts. Signed-off-by: Wolfgang Denk <wd@denx.de> Cc: Stefan Roese <sr@denx.de> Cc: Kim Phillips <kim.phillips@freescale.com> Cc: Andy Fleming <afleming@gmail.com> Cc: Kumar Gala <galak@kernel.crashing.org> Acked-by: Stefan Roese <sr@denx.de>
* | arch/powerpc/*/config.mk: make CONFIG_SYS_LDSCRIPT settings workWolfgang Denk2010-11-26-50/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As we try to get rid of board specific config.mk files we must provide a way for board specific settings of the LDSCRIPT variable (path to the linker script) where needed. We now implement the following hierarchy: - Highest priority has a "#define CONFIG_SYS_LDCONFIG" in the board config file. - If CONFIG_SYS_LDCONFIG is not set, and the system is booting from NAND (CONFIG_NAND_SPL is set), then a board specific linker script board/$(BOARDDIR)/u-boot-nand.lds gets used. - If we are not booting from NAND, we test if a processor specific linker script arch/powerpc/cpu/$(CPU)/u-boot.lds exists; if so we use that. - As default, arch/powerpc/config.mk gets used. Signed-off-by: Wolfgang Denk <wd@denx.de> Cc: Stefan Roese <sr@denx.de> Cc: Kim Phillips <kim.phillips@freescale.com> Cc: Kumar Gala <kumar.gala@freescale.com> Cc: Andy Fleming <afleming@gmail.com> Acked-by: Stefan Roese <sr@denx.de>
* | cpu/ppc4xx/Makefile: build only needed object filesWolfgang Denk2010-11-26-22/+10
| | | | | | | | | | | | Signed-off-by: Wolfgang Denk <wd@denx.de> Cc: Stefan Roese <sr@denx.de> Acked-by: Stefan Roese <sr@denx.de>
* | WINBOND_83C553: enable only on boards that actually use it.Wolfgang Denk2010-11-26-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | So far, only the BAB7xx board would call the initialise_w83c553f() function for the WINBOND 83C553 chip, even though some other boards (HIDDEN_DRAGON, Sandpoint8240, Sandpoint8245) enabled it in their board configuration. These boards were also missing other config settings needed for that, which resulted in build errors like this: drivers/pci/libpci.o:(.got2+0x84): undefined reference to `ide_bus_offset' Switch arch/powerpc/lib/board.c to call initialise_w83c553f() not on a per-board base, but when a WINBOND_83C553 in enabled in a configuration (like BAB7xx), and disable it in the boards that had this set so far. Signed-off-by: Wolfgang Denk <wd@denx.de> Cc: Yusdi Santoso <yusdi_santoso@adaptec.com> Cc: Jim Thompson <jim@musenki.com> Acked-by: Stefan Roese <sr@denx.de>
* | Merge branch 'master' of git://git.denx.de/u-boot-armWolfgang Denk2010-11-26-701/+800
|\ \
| * | 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>
* | | Blackfin: drop initcode.o from combined objectMike Frysinger2010-11-19-4/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | We explicitly link in the initcode.o in the Blackfin linker script, so there is no need to merge it into the main common object for the linker to pull in itself. This also fixes duplicate symbol errors with the new partial linking logic. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
* | | Merge branch 'master' of git://git.denx.de/u-boot-i2cWolfgang Denk2010-11-19-0/+43
|\ \ \
| * | | i2c, mpc5xxx: add multibus supportHeiko Schocher2010-11-17-0/+43
| | | | | | | | | | | | | | | | | | | | | | | | Tested on upcoming hydra (mpc5200 based) board. Signed-off-by: Heiko Schocher <hs@denx.de>
* | | | Blackfin: make sure bss len is multiple of 4 bytesMike Frysinger2010-11-18-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The Blackfin on-chip BootROM requires that fill operations (which is used for the bss) be aligned to 4 bytes (base addr and total len). Plus, the Blackfin early init asm code assumes the same thing. So rather than making things work for no real gain, make sure the bss len is padded to 4 bytes in the linker script. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
* | | | Blackfin: stick ins/outs funcs into their own .text sectionMike Frysinger2010-11-18-0/+5
| |/ / |/| | | | | | | | | | | | | | | | | This lets the linker garbage collect these functions when they aren't actually used by placing them into the standard .text.<func> section. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
* | | Switch from archive libraries to partial linkingSebastien Carlier2010-11-17-181/+181
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | | Merge branch 'master' of git://git.denx.de/u-boot-armWolfgang Denk2010-11-17-122/+154
|\ \ \ | |/ / |/| / | |/
| * 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>