- Feb 26, 2014
-
-
Albert ARIBAUD authored
This prevents references to _end from generating absolute relocation records. This change is binary invariant for ARM targets. Signed-off-by:
Albert ARIBAUD <albert.u.boot@aribaud.net>
-
- Jan 14, 2014
-
-
Albert ARIBAUD authored
Some targets will build fine but not boot if sections .hash and .got.plt are not present in the binary. Add them back. Also, Exynos machines require .machine_param section in SPL. Add it. Signed-off-by:
Albert ARIBAUD <albert.u.boot@aribaud.net> Tested-by:
Rajeshwari S Shinde <rajeshwari.s@samsung.com>
-
- Dec 07, 2013
-
-
Albert ARIBAUD authored
Current LDS files /DISCARD/ a lot of sections when linking ELF files, causing diagnostic tools such as readelf or objdump to produce partial output. Keep all section at link stage, filter only at objcopy time so that .bin remains minimal. Signed-off-by:
Albert ARIBAUD <albert.u.boot@aribaud.net> Reviewed-by:
Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
-
- Sep 05, 2013
-
-
Michal Simek authored
Remove ARM eabi exception handling tables (for frame unwinding). AFAICT, u-boot stubs away the frame unwiding routines, so the tables will more or less just consume space. It should be OK to remove them. Signed-off-by:
Edgar E. Iglesias <edgar.iglesias@xilinx.com> Signed-off-by:
Michal Simek <michal.simek@xilinx.com>
-
- Jul 24, 2013
-
-
Wolfgang Denk authored
Signed-off-by:
Wolfgang Denk <wd@denx.de> [trini: Fixup common/cmd_io.c] Signed-off-by:
Tom Rini <trini@ti.com>
-
- Jun 21, 2013
-
-
Albert ARIBAUD authored
This change is only done where needed: some linker scripts may contain relocation symbols yet remain unchanged. __rel_dyn_start and __rel_dyn_end each requires its own output section; putting them in relocation sections changes their flags and breaks relocation. Signed-off-by:
Albert ARIBAUD <albert.u.boot@aribaud.net> Tested-by:
Lubomir Popov <lpopov@mm-sol.com> Tested-by:
Jeroen Hofstee <jeroen@myspectrum.nl> Reviewed-by:
Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
-
Albert ARIBAUD authored
This change is only done where needed: some linker scripts may contain __image_copy_{start,end} yet remain unchanged. Also, __image_copy_end needs its own section; putting it in relocation sections changes their flags and makes relocation break. Signed-off-by:
Albert ARIBAUD <albert.u.boot@aribaud.net> Tested-by:
Lubomir Popov <lpopov@mm-sol.com> Tested-by:
Jeroen Hofstee <jeroen@myspectrum.nl> Reviewed-by:
Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
-
Albert ARIBAUD authored
Discard all .dynsym sections from linker scripts Remove all __dynsym_start definitions from linker scripts Remove all __dynsym_start references from the codebase Note: this touches include/asm-generic/sections.h, which is not ARM-specific, but actual uses of __dynsym_start are only in ARM, so this patch can safely go through the ARM repository. Signed-off-by:
Albert ARIBAUD <albert.u.boot@aribaud.net> Tested-by:
Lubomir Popov <lpopov@mm-sol.com> Tested-by:
Jeroen Hofstee <jeroen@myspectrum.nl> Reviewed-by:
Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
-
- Apr 14, 2013
-
-
Albert ARIBAUD authored
Remove SPL-related ASSERT() in arch/arm/cpu/u-boot.lds as this file is never used for SPL builds. Rewrite the ASSERT() in arch/arm/cpu/u-boot-spl.lds to separately test image (text,data,rodata...) size, BSS size, and full footprint each against its own max, and make Tegra boards check full footprint. Also, output section mmutable is not used in SPL builds. Remove it. Finally, update README regarding the (now homogeneous) semantics of CONFIG_SPL_[BSS_]MAX_SIZE and add the new CONFIG_SPL_MAX_FOOTPRINT macro. Signed-off-by:
Albert ARIBAUD <albert.u.boot@aribaud.net> Reported-by:
Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
-
- Apr 13, 2013
-
-
Albert ARIBAUD authored
Commit 3ebd1cbc introduced compiler-generated __bss_start and __bss_end__ and commit c23561e7 rewrote all __bss_end__ as __bss_end. Their merge caused silent and harmless but potentially bug-inducing clashes between compiler- and linker- generated __bss_end symbols. Make __bss_end and __bss_start compiler-only, and create __bss_base and __bss_limit for linker-only use. Signed-off-by:
Albert ARIBAUD <albert.u.boot@aribaud.net> Reported-by:
Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
-
- Mar 15, 2013
-
-
Simon Glass authored
Note this is a tree-wide change affecting multiple architectures. At present we use __bss_start, but mostly __bss_end__. This seems inconsistent and in a number of places __bss_end is used instead. Change to use __bss_end for the BSS end symbol throughout U-Boot. This makes it possible to use the asm-generic/sections.h file on all archs. Signed-off-by:
Simon Glass <sjg@chromium.org>
-
- Mar 12, 2013
-
-
Albert ARIBAUD authored
Refactor linker-generated array code so that symbols which were previously linker-generated are now compiler- generated. This causes relocation records of type R_ARM_ABS32 to become R_ARM_RELATIVE, which makes code which uses LGA able to run before relocation as well as after. Note: this affects more than ARM targets, as linker- lists span possibly all target architectures, notably PowerPC. Conflicts: arch/arm/cpu/arm926ejs/mxs/u-boot-spl.lds arch/arm/cpu/arm926ejs/spear/u-boot-spl.lds arch/arm/cpu/armv7/omap-common/u-boot-spl.lds board/ait/cam_enc_4xx/u-boot-spl.lds board/davinci/da8xxevm/u-boot-spl-da850evm.lds board/davinci/da8xxevm/u-boot-spl-hawk.lds board/vpac270/u-boot-spl.lds Signed-off-by:
Albert ARIBAUD <albert.u.boot@aribaud.net>
-
Albert ARIBAUD authored
Turn __bss_start and __bss_end__ from linker-generated to compiler-generated symbols, causing relocations for these symbols to change type, from R_ARM_ABS32 to R_ARM_RELATIVE. This should have no functional impact, as it affects references to __bss_start and __bss_end__ only before relocation, and no such references are done. Signed-off-by:
Albert ARIBAUD <albert.u.boot@aribaud.net>
-
- Oct 29, 2012
-
-
Stephen Warren authored
Add an ASSERT() to u-boot.lds to detect an SPL that doesn't fit within SPL_TEXT_BASE..SPL_MAX_SIZE. Different .lds files implement this check in two possible ways: 1) An ASSERT() like this 2) Defining a MEMORY region of size SPL_MAX_SIZE, and re-directing all linker output into that region. Since u-boot.lds is used for both SPL and main U-Boot, this would entail only sometimes defining a MEMORY region, and only sometimes performing that redirection, and hence option (1) was deemed much simpler, and hence implemented. Note that this causes build failures at least for NVIDIA Tegra Seaboard and Ventana. However, these are legitimate; the SPL doesn't fit within the required space, and this does cause runtime issues. Signed-off-by:
Stephen Warren <swarren@nvidia.com> Acked-by:
Simon Glass <sjg@chromium.org> Acked-by:
Allen Martin <amartin@nvidia.com> Acked-by:
Tom Rini <trini@ti.com> Tested-by:
Simon Glass <sjg@chromium.org> Signed-off-by:
Tom Warren <twarren@nvidia.com>
-
- Oct 26, 2012
-
-
Stephen Warren authored
When -ffunction-sections or -fdata-section are used, symbols are placed into sections such as .data.eserial1_device and .bss.serial_current. Update the linker script to explicitly include these. Without this change (at least with my gcc-4.5.3 built using crosstool-ng), I see that the sections do end up being included, but __bss_end__ gets set to the same value as __bss_start. Signed-off-by:
Stephen Warren <swarren@nvidia.com> Acked-by:
Allen Martin <amartin@nvidia.com> Acked-by:
Simon Glass <sjg@chromium.org> Tested-by:
Simon Glass <sjg@chromium.org>
-
- Oct 22, 2012
-
-
Marek Vasut authored
The command declaration now uses the new LG-array method to generate list of commands. Thus the __u_boot_cmd section is now superseded and redundant and therefore can be removed. Also, remove externed symbols associated with this section from include/command.h . Signed-off-by:
Marek Vasut <marex@denx.de> Cc: Joe Hershberger <joe.hershberger@gmail.com> Cc: Mike Frysinger <vapier@gentoo.org>
-
Marek Vasut authored
Add section for the linker-generated lists into all possible linker files, so that everyone can easily use these lists. This is mostly a mechanical adjustment. Signed-off-by:
Marek Vasut <marex@denx.de> Cc: Joe Hershberger <joe.hershberger@gmail.com> Cc: Mike Frysinger <vapier@gentoo.org>
-
- Mar 30, 2012
-
-
Simon Glass authored
Most ARM CPUs use a very similar link script. This adds a basic script that can be used by most CPUs. Two new symbols are introduced which are intended to eventually be defined on all architectures to make things easier for generic relocation and reduce special-case code for each architecture: __image_copy_start is the start of the text area (equivalent to the existing _start on ARM). It marks the start of the region which must be copied to a new location during relocation. This symbol is called __text_start on x86 and microblaze. __image_copy_end is the end of the region which must be copied to a new location during relocation. It is normally equal to the start of the BSS region, but this can vary in some cases (SPL?). Making this an explicit symbol on its own removes any ambiguity and permits common code to always do the right thing. This new script makes use of CPUDIR, now defined by both Makefile and spl/Makefile, to find the directory containing the start.o object file, which is always placed first in the image. To permit MMU setup prior to relocation (as used by pxa) we add an area to the link script which contains space for this. This is taken from commit 7f4cfcf4. CPUs can put the contents in there using their start.S file. BTW, shouldn't that area be 16KB-aligned? Signed-off-by:
Simon Glass <sjg@chromium.org>
-
- Aug 03, 2011
-
-
Aneesh V authored
- Allow SPL to have .bss disjoint from rest of the image - Allow for .bss setup in CONFIG_SPL_BUILD case too. - Take care of the special case where relocation offset = 0. - Compile out exception handling code and install a simpler vector Signed-off-by:
Aneesh V <aneesh@ti.com> Signed-off-by:
Sandeep Paulraj <s-paulraj@ti.com>
-
- Mar 27, 2011
-
-
Po-Yu Chuang authored
Monitor protection region in FLASH did not cover .rel.dyn and .dynsym sections, because it uses __bss_start to compute monitor_flash_len. Use _end instead. Add _end to linker scripts for end of u-boot image Add _end_ofs to all the start.S. Signed-off-by:
Po-Yu Chuang <ratbert@faraday-tech.com>
-
Po-Yu Chuang authored
Currently, _end is used for end of BSS section. We want _end to mean end of u-boot image, so we rename _end to __bss_end__ first. Signed-off-by:
Po-Yu Chuang <ratbert@faraday-tech.com>
-
- Nov 17, 2010
-
-
Albert Aribaud authored
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>
-
- Oct 13, 2010
-
-
Heiko Schocher authored
Signed-off-by:
Heiko Schocher <hs@denx.de>
-
- Sep 19, 2010
-
-
Heiko Schocher authored
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>
-
- Jul 05, 2010
-
-
Steve Sakoman authored
The purpose of this patch is to prepare for adding the OMAP4 architecture, which is Cortex A9 Cortex A8 and A9 both belong to the armv7 architecture, hence the name change. The two architectures are similar enough that substantial code can be shared. Signed-off-by:
Aneesh V <aneesh@ti.com> Signed-off-by:
Steve Sakoman <steve@sakoman.com> Signed-off-by:
Sandeep Paulraj <s-paulraj@ti.com>
-
- Apr 13, 2010
-
-
Peter Tyser authored
Signed-off-by:
Peter Tyser <ptyser@xes-inc.com>
-
- Jun 12, 2009
-
-
Jean-Christophe PLAGNIOL-VILLARD authored
all arm boards except a few use the same cpu linker script so move it to cpu/$(CPU) that could be overwrite in following order SOC BOARD via the corresponding config.mk Signed-off-by:
Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
-
Tom Rix authored
The u-boot.lds file is common for all omap boards. Move a cleaned up version to the cpu layer and add makefile logic to use it. Signed-off-by:
Tom Rix <Tom.Rix@windriver.com>
-
- May 15, 2009
-
-
Detlev Zundel authored
Signed-off-by:
Detlev Zundel <dzu@denx.de>
-
- Mar 20, 2009
-
-
Trent Piepho authored
A recent gcc added a new unaligned rodata section called '.rodata.str1.1', which needs to be added the the linker script. Instead of just adding this one section, we use a wildcard ".rodata*" to get all rodata linker section gcc has now and might add in the future. However, '*(.rodata*)' by itself will result in sub-optimal section ordering. The sections will be sorted by object file, which causes extra padding between the unaligned rodata.str.1.1 of one object file and the aligned rodata of the next object file. This is easy to fix by using the SORT_BY_ALIGNMENT command. This patch has not be tested one most of the boards modified. Some boards have a linker script that looks something like this: *(.text) . = ALIGN(16); *(.rodata) *(.rodata.str1.4) *(.eh_frame) I change this to: *(.text) . = ALIGN(16); *(.eh_frame) *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*))) This means the start of rodata will no longer be 16 bytes aligned. However, the boundary between text and rodata/eh_frame is still aligned to 16 bytes, which is what I think the real purpose of the ALIGN call is. Signed-off-by:
Trent Piepho <xyzzy@speakeasy.org>
-
- Jan 28, 2009
-
-
Dirk Behme authored
Support for Zoom MDK with OMAP3430. Details of Zoom MDK available here: http://www.logicpd.com/products/devkit/ti/zoom_mobile_development_kit Signed-off-by:
Nishanth Menon <nm@ti.com> Signed-off-by:
Jason Kridner <jkridner@beagleboard.org>
-
Dirk Behme authored
Add BeagleBoard support, common power code and README. Signed-off-by:
Jason Kridner <jkridner@beagleboard.org> Signed-off-by:
Dirk Behme <dirk.behme@googlemail.com>
-
- Nov 18, 2008
-
-
Selvamuthukumar authored
Most of the bss initialization loop increments 4 bytes at a time. And the loop end is checked for an 'equal' condition. Make the bss end address aligned by 4, so that the loop will end as expected. Signed-off-by:
Selvamuthukumar <selva.muthukumar@e-coninfotech.com> Signed-off-by:
Wolfgang Denk <wd@denx.de>
-
- Jan 12, 2008
-
-
Wolfgang Denk authored
With recent toolchain versions, some boards would not build because or errors like this one (here for ocotea board when building with ELDK 4.2 beta): ppc_4xx-ld: section .bootpg [fffff000 -> fffff23b] overlaps section .bss [fffee900 -> fffff8ab] For many boards, the .bss section is big enough that it wraps around at the end of the address space (0xFFFFFFFF), so the problem will not be visible unless you use a 64 bit tool chain for development. On some boards however, changes to the code size (due to different optimizations) we bail out with section overlaps like above. The fix is to add the NOLOAD attribute to the .bss and .sbss sections, telling the linker that .bss does not consume any space in the image. Signed-off-by:
Wolfgang Denk <wd@denx.de>
-
- Nov 15, 2007
-
-
Peter Pearse authored
-
- Nov 09, 2007
-
-
Peter Pearse authored
Signed-off-by:
Kyungmin Park <kyungmin.park@samsung.com>
-
- Aug 31, 2005
-
-
Wolfgang Denk authored
Pointed out by Gerhard Jaeger, 31 Aug 2005; cf. http://sourceware.org/ml/binutils/2005-08/msg00412.html
-
- Jan 10, 2005
-
-
Wolfgang Denk authored
-
- Jan 09, 2005
-
-
Wolfgang Denk authored
add support for the TI OMAP2420 processor and its H4 reference board * Patch by Christian Pellegrin, 24 Sep 2004: Added support for NE2000 compatible (DP8390, DP83902) NICs.
-
- Jun 09, 2004
-
-
Wolfgang Denk authored
- Add support for the Logic Zoom LH7A40x based SDK board(s), specifically the LPD7A400. * Patches by Robert Schwebel, 15 May 2004: - call MAC address reading code also for SMSC91C111; - make SMSC91C111 timeout configurable, remove duplicate code - fix get_timer() for PXA - update doc/README.JFFS2 - use "bootfile" env variable also for jffs2
-