Commit Graph

144 Commits

Author SHA1 Message Date
Albert Aribaud
e42a7dff09 arm1176: bugfix: fix start.S for ELF relocation
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>
2010-11-26 21:22:43 +01:00
Albert Aribaud
3336ca60d4 arm: add ELF relocation support to rest of cpus
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>
2010-11-26 21:22:07 +01:00
Nishanth Menon
93e3568bd5 omap4: board: change global data pointer to file scope
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>
2010-11-19 16:27:41 -05:00
Sebastien Carlier
6d8962e814 Switch from archive libraries to partial linking
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>
2010-11-17 21:02:18 +01:00
Albert Aribaud
aaeb0a890a ARM: fix linker file for newer ld support
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>
2010-11-17 20:44:32 +01:00
Heiko Schocher
0fc43a417c armv7, beagle: Second SDRAM bank don;t work
since commit 3667cbeed5
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>
2010-11-04 16:05:25 -04:00
Wolfgang Denk
0c0892be0d Merge branch 'master' of git://git.denx.de/u-boot-marvell
Conflicts:
	include/configs/km_arm.h

Signed-off-by: Wolfgang Denk <wd@denx.de>
2010-10-29 22:03:00 +02:00
Wolfgang Denk
d75c2a3d7f Merge branch 'master' of git://git.denx.de/u-boot-imx 2010-10-29 21:50:24 +02:00
Wolfgang Denk
17dd883c5b Merge branch 'master' of git://git.denx.de/u-boot-samsung 2010-10-29 21:47:48 +02:00
Wolfgang Denk
1ecb758341 Merge branch 'for-wd-master' of git://git.denx.de/u-boot-pxa 2010-10-29 21:44:40 +02:00
Wolfgang Denk
e03f316974 Drop support for CONFIG_SKIP_RELOCATE_UBOOT
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>
2010-10-29 21:40:08 +02:00
Wolfgang Denk
a9aa392629 Drop support for CONFIG_SYS_ARM_WITHOUT_RELOC
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>
2010-10-29 21:39:59 +02:00
Tanmay Upadhyay
28e57108a6 Kirkwood: bugfix: DRAM size initialization
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>
2010-10-28 20:06:22 +05:30
Stefano Babic
9a0044183a MX51: remove warning in clock.c
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>
2010-10-28 11:08:52 +02:00
Matthias Weisser
81129d07a0 imx25: Fix reset
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>
2010-10-28 10:32:21 +02:00
Jason Liu
95707aaa9e MX5:use common u-boot.lds of cpu layer
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>
2010-10-28 10:32:20 +02:00
C Nauman
d9abba8254 Add generic support for samsung s3c2440
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>
2010-10-28 15:35:56 +09:00
Mikhail Kshevetskiy
9b8081a452 arm/pxa: remove unused arch-pxa/macro.h
Signed-off-by: Mikhail Kshevetskiy <mikhail.kshevetskiy@gmail.com>
2010-10-27 23:59:53 +02:00
Wolfgang Denk
071bc92330 Coding Style cleanup
Signed-off-by: Wolfgang Denk <wd@denx.de>
2010-10-27 22:48:30 +02:00
Wolfgang Denk
79e6313936 ARM: use the same branch insn on all architectures
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>
2010-10-26 21:19:19 +02:00
Darius Augulis
ea34c9d6ed arm1176: fix relocation
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>
2010-10-26 21:12:53 +02:00
Darius Augulis
123fb7deb2 ARM: fix address setup in start.S
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>
2010-10-26 21:11:58 +02:00
Wolfgang Denk
25ddd1fb0a Replace CONFIG_SYS_GBL_DATA_SIZE by auto-generated value
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>
2010-10-26 21:05:30 +02:00
Gray Remlin
8c0c2b9050 ARM: Use consistent assembler syntax
Signed-off-by: Gray Remlin <g_remlin@rocketmail.com>
Acked-by: Heiko Schocher <hs@denx.de>
2010-10-26 20:52:23 +02:00
Marek Vasut
4abf2f7a23 PXA: Use pxa-regs.h register definitions in start.S
Signed-off-by: Marek Vasut <marek.vasut@gmail.com>
2010-10-22 01:37:58 +02:00
Marek Vasut
6e96cf9a81 PXA: Implement ELF relocation
Based on patch by: Albert Aribaud <albert.aribaud@free.fr>

Signed-off-by: Marek Vasut <marek.vasut@gmail.com>
2010-10-22 01:37:58 +02:00
Stefano Babic
d078b7c2ec MX31: Removed warnings for iomux function
Removed warnings generated in the mx31_set_pad() function.

Signed-off-by: Stefano Babic <sbabic@denx.de>
2010-10-20 00:18:23 +02:00
Marek Vasut
2cad92fd67 PXA: Fix reloc, Push lowlevel init into C code
Firstly, this fixes relocation issues. I had to use part of Dcache as RAM for a
while. I also moved around the lowlevel init code. It turned out so most of the
lowlevel init code ended in cpu.c (and eventually was rewritten into C).

This will also allow easier operation with FDT, multi-CPU-model support etc. in
later releases.

NOTE: This breaks most of the PXA boards (actually, the reloc stuff did already,
this only finishes the doom).

Signed-off-by: Marek Vasut <marek.vasut@gmail.com>
2010-10-19 23:04:35 +02:00
Marek Vasut
8b71d2b710 PXA: pxafb: Marvell Littleton LCD definition
Signed-off-by: Marek Vasut <marek.vasut@gmail.com>
2010-10-19 22:46:56 +02:00
Marek Vasut
42222be43c PXA: pxafb: Add support for Sharp LQ038J7DH53
This LCD panel is found in Palm LifeDrive handheld

Signed-off-by: Marek Vasut <marek.vasut@gmail.com>
2010-10-19 22:46:52 +02:00
Marek Vasut
f7d58d9166 PXA: pxafb: Add ACX517AKN support
ACX517AKN LCD panel is found in Palm Tungsten|C

Signed-off-by: Marek Vasut <marek.vasut@gmail.com>
2010-10-19 22:46:43 +02:00
Marek Vasut
3ba8bf7c6d PXA: pxa-regs.h cleanup
Signed-off-by: Marek Vasut <marek.vasut@gmail.com>
2010-10-19 22:46:22 +02:00
Marek Vasut
9f80a20e05 PXA: pxafb: Fix indent problems
Also change the initializer style

Signed-off-by: Marek Vasut <marek.vasut@gmail.com>
2010-10-19 22:46:18 +02:00
Wolfgang Denk
1ed3b710d0 Merge branch 'at91' of git://git.denx.de/u-boot-atmel 2010-10-19 22:10:47 +02:00
Wolfgang Denk
6d8d4ef994 Merge branch 'elf_reloc'
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>
2010-10-19 21:07:52 +02:00
Wolfgang Denk
083d506937 Merge branch 'master' of git://git.denx.de/u-boot-imx
Conflicts:
	board/logicpd/imx31_litekit/config.mk
	boards.cfg

Signed-off-by: Wolfgang Denk <wd@denx.de>
2010-10-19 20:58:16 +02:00
Reinhard Meyer
5dca710a3d AT91 clock/timer: move static data to global_data struct
clock.c / timer.c used static data and are called before relocation.
Move all static variables into global_data structure. Also cleanup
timer.c from unused stubs and make it truly use 64 bit tick values.

Signed-off-by: Reinhard Meyer <u-boot@emk-elektronik.de>
2010-10-19 15:12:29 +02:00
Jason Liu
65e62d6941 MX5: Remove dead code with ENABLE_IMPRECISE_ABORT
This code section is dead due to we never define
ENABLE_IMPRECISE_ABORT for MX5

Signed-off-by: Jason Liu <r64343@freescale.com>
2010-10-19 12:28:08 +02:00
Wolfgang Denk
14d0a02a16 Rename TEXT_BASE into CONFIG_SYS_TEXT_BASE
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>
2010-10-18 22:07:10 +02:00
Jason Liu
ff9f475d5d MX5: rename mx51 to mx5
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>
2010-10-18 10:43:19 +02:00
Steve Sakoman
57b512b2ec ARMV7: OMAP4: Implement relocation for Panda and OMAP4430SDP
This patch fixes the build breakage introduced by the recent relocation
changes for ARMV7

Signed-off-by: Steve Sakoman <steve@sakoman.com>
2010-10-17 20:14:30 +02:00
Steve Sakoman
136c69ad79 ARMV7: OMAP3: Fix bug in get_sdr_cs_offset()
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>
2010-10-17 20:14:28 +02:00
Wolfgang Denk
6ca803750e Merge branch 'master' of git://git.denx.de/u-boot-imx 2010-10-17 19:57:38 +02:00
Stefano Babic
f76888c294 MX31: add support for setting pin pads
The patch adds a utility function and defines
to set the pad as it is done in linux.

Signed-off-by: Stefano Babic <sbabic@denx.de>
2010-10-13 18:11:30 +02:00
Heiko Schocher
bafe7437a4 arm1136, qong: add support for ELF relocations
Signed-off-by: Wolfgang Denk <wd@denx.de>
Signed-off-by: Heiko Schocher <hs@denx.de>
cc: Albert ARIBAUD <albert.aribaud@free.fr>
2010-10-13 10:12:52 +02:00
Heiko Schocher
c3d3a5418d armv7, beagle: add support for ELF relocations
Signed-off-by: Heiko Schocher <hs@denx.de>
2010-10-13 10:12:25 +02:00
Heiko Schocher
9710504d20 arm926ejs, tx25: add support for ELF relocations
Signed-off-by: Heiko Schocher <hs@denx.de>
2010-10-13 10:12:01 +02:00
Albert Aribaud
92d5ecba47 arm: implement ELF relocations
ELF relocation tables generated with linker option -pie can
be used to fixup code and data in a single loop at relocation,
removing the need for manual fixups anywhere else in the code.

Signed-off-by: Albert Aribaud <albert.aribaud@free.fr>
2010-10-13 10:10:21 +02:00
Prafulla Wadaskar
beeb258976 Kirkwood: dram_init is moved to dram.c
For all Kirkwood boards so far dram_init function is duplicated
dram_init function is moved to dram.c and relevant code from all
board specific files removed

If any board needs specific dram init handling than standard one,
then, a macro CONFIG_SYS_BOARD_DRAM_INIT should be defined in
board config header file and the dram_init function can be put
in board specific source file
For ex. keymile boards

Signed-off-by: Prafulla Wadaskar <prafulla@marvell.com>
2010-10-13 09:36:07 +02:00
Albert Aribaud
500f2ff52a orion5x: optimize window size computation
Signed-off-by: Chris Moore <moore@free.fr>
Signed-off-by: Albert Aribaud <albert.aribaud@free.fr>
2010-10-13 09:36:02 +02:00