public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
* [U-Boot] [PATCH 0/5] Optimize ARM relocation
@ 2013-05-14 20:02 Albert ARIBAUD
  2013-05-14 20:02 ` [U-Boot] [PATCH 1/5] arm: generalize lib/bss.c into lib/sections.c Albert ARIBAUD
                   ` (2 more replies)
  0 siblings, 3 replies; 46+ messages in thread
From: Albert ARIBAUD @ 2013-05-14 20:02 UTC (permalink / raw)
  To: u-boot

*** NOTE: this series applies over the 'Factorize
ARM relocate_code instances' series.

This series optimizes relocation by ensuring ARM
binaries only use one type of relocation record,
R_ARM_RELATIVE., then optimizing relocation code
accordingly.

The only known case where relocation records other
than R_ARM_RELATIVE are generated is when a reference
is made to a symbol defined in the linker script, e.g.
__image_copy_start, __image_copy_end, __rel_dyn_start,
__rel_dyn_end, and __dynsym_start.

Moving the definition of these symbols from the linker
scripts into a C module causes their references' types
to become R_ARM_RELATIVE.

First, arch/arm/lib/bss.c is replaced by a more generic
arch/arm/lib/sections.c where all section symbols will
be defined.

Second, __image_copy_start and __image_copy_end symbols
are moved from linker scripts to arch/arm/lib/sections.c

Third, __rel_dyn_start, __rel_dyn_end and __synsym_start
are moved from linker scripts into arch/arm/lib/sections.c

Fourth, a check is added to the build system to ensure
that ELF U-Boot binaries only use R_ARM_RELATIVE records.

Last, relocate_code is optimized


Albert ARIBAUD (5):
  arm: generalize lib/bss.c into lib/sections.c
  arm: make __image_copy_{start,end} compiler-generated
  arm: make relocation symbols compiler-generated
  arm: ensure u-boot only uses relative relocations
  arm: optimize relocate_code routine

 Makefile                               |    7 ++++
 arch/arm/config.mk                     |    5 +++
 arch/arm/cpu/arm920t/ep93xx/u-boot.lds |    6 ++-
 arch/arm/cpu/ixp/u-boot.lds            |   24 ++++++++++--
 arch/arm/cpu/u-boot.lds                |   25 ++++++++++---
 arch/arm/lib/Makefile                  |    2 +-
 arch/arm/lib/relocate.S                |   64 +++++++++-----------------------
 arch/arm/lib/{bss.c => sections.c}     |    9 ++++-
 board/actux1/u-boot.lds                |   24 ++++++++++--
 board/actux2/u-boot.lds                |   24 ++++++++++--
 board/actux3/u-boot.lds                |   24 ++++++++++--
 board/dvlhost/u-boot.lds               |   24 ++++++++++--
 board/freescale/mx31ads/u-boot.lds     |   24 ++++++++++--
 13 files changed, 183 insertions(+), 79 deletions(-)
 rename arch/arm/lib/{bss.c => sections.c} (77%)

-- 
1.7.10.4

^ permalink raw reply	[flat|nested] 46+ messages in thread

end of thread, other threads:[~2013-06-21 21:07 UTC | newest]

Thread overview: 46+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-05-14 20:02 [U-Boot] [PATCH 0/5] Optimize ARM relocation Albert ARIBAUD
2013-05-14 20:02 ` [U-Boot] [PATCH 1/5] arm: generalize lib/bss.c into lib/sections.c Albert ARIBAUD
2013-05-14 20:02   ` [U-Boot] [PATCH 2/5] arm: make __image_copy_{start, end} compiler-generated Albert ARIBAUD
2013-05-14 20:02     ` [U-Boot] [PATCH 3/5] arm: make relocation symbols compiler-generated Albert ARIBAUD
2013-05-14 20:02       ` [U-Boot] [PATCH 4/5] arm: ensure u-boot only uses relative relocations Albert ARIBAUD
2013-05-14 20:03         ` [U-Boot] [PATCH 5/5] arm: optimize relocate_code routine Albert ARIBAUD
2013-05-14 23:54           ` Benoît Thébaudeau
2013-05-15  7:32             ` Albert ARIBAUD
2013-05-14 22:12         ` [U-Boot] [PATCH 4/5] arm: ensure u-boot only uses relative relocations Benoît Thébaudeau
2013-05-15  7:46           ` Albert ARIBAUD
2013-05-15  9:38             ` Albert ARIBAUD
2013-05-15 13:49               ` Benoît Thébaudeau
2013-05-15 15:01                 ` Albert ARIBAUD
2013-05-14 22:09       ` [U-Boot] [PATCH 3/5] arm: make relocation symbols compiler-generated Benoît Thébaudeau
2013-05-15  6:39         ` Albert ARIBAUD
2013-05-15  6:41           ` Albert ARIBAUD
2013-05-14 20:16 ` [U-Boot] [PATCH 0/5] Optimize ARM relocation Albert ARIBAUD
2013-05-14 23:58   ` Benoît Thébaudeau
2013-05-15  7:49     ` Albert ARIBAUD
2013-05-28  7:01 ` [U-Boot] [PATCH v2 0/6] " Albert ARIBAUD
2013-05-28  7:01   ` [U-Boot] [PATCH v2 1/6] arm: ensure u-boot only uses relative relocations Albert ARIBAUD
2013-05-28  7:01     ` [U-Boot] [PATCH v2 2/6] remove all references to .dynsym Albert ARIBAUD
2013-05-28  7:01       ` [U-Boot] [PATCH v2 3/6] arm: generalize lib/bss.c into lib/sections.c Albert ARIBAUD
2013-05-28  7:01         ` [U-Boot] [PATCH v2 4/6] arm: make __image_copy_{start, end} compiler-generated Albert ARIBAUD
2013-05-28  7:01           ` [U-Boot] [PATCH v2 5/6] arm: make __rel_dyn_{start, " Albert ARIBAUD
2013-05-28  7:01             ` [U-Boot] [PATCH v2 6/6] arm: optimize relocate_code routine Albert ARIBAUD
2013-05-28 17:11           ` [U-Boot] [PATCH v2 4/6] arm: make __image_copy_{start, end} compiler-generated Benoît Thébaudeau
2013-05-28 17:04     ` [U-Boot] [PATCH v2 1/6] arm: ensure u-boot only uses relative relocations Benoît Thébaudeau
2013-05-28 17:31       ` Albert ARIBAUD
2013-06-11 12:17   ` [U-Boot] [PATCH v3 0/6] Optimize ARM relocation Albert ARIBAUD
2013-06-11 12:17     ` [U-Boot] [PATCH v3 1/6] arm: ensure u-boot only uses relative relocations Albert ARIBAUD
2013-06-11 12:17       ` [U-Boot] [PATCH v3 2/6] remove all references to .dynsym Albert ARIBAUD
2013-06-11 12:17         ` [U-Boot] [PATCH v3 3/6] arm: generalize lib/bss.c into lib/sections.c Albert ARIBAUD
2013-06-11 12:17           ` [U-Boot] [PATCH v3 4/6] arm: make __image_copy_{start, end} compiler-generated Albert ARIBAUD
2013-06-11 12:17             ` [U-Boot] [PATCH v3 5/6] arm: make __rel_dyn_{start, " Albert ARIBAUD
2013-06-11 12:17               ` [U-Boot] [PATCH v3 6/6] arm: optimize relocate_code routine Albert ARIBAUD
2013-06-11 12:47     ` [U-Boot] [PATCH v3 0/6] Optimize ARM relocation Albert ARIBAUD
2013-06-11 14:22       ` Lubomir Popov
2013-06-11 15:29         ` Albert ARIBAUD
2013-06-13  9:05       ` Albert ARIBAUD
2013-06-13 18:54         ` Jeroen Hofstee
2013-06-16 13:33           ` Jeroen Hofstee
2013-06-18 14:54             ` Albert ARIBAUD
2013-06-19  7:31               ` [U-Boot] [LONG] " Albert ARIBAUD
2013-06-12 22:38     ` [U-Boot] " Benoît Thébaudeau
2013-06-21 21:07     ` Albert ARIBAUD

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox