mirror of
https://github.com/archlinuxarm/PKGBUILDs.git
synced 2024-11-28 22:57:37 +00:00
819 lines
24 KiB
Diff
819 lines
24 KiB
Diff
|
From b60eff31f3bd71a6f14b6c6efc8ad5fb3705de6d Mon Sep 17 00:00:00 2001
|
||
|
From: Albert ARIBAUD <albert.u.boot@aribaud.net>
|
||
|
Date: Sat, 22 Feb 2014 17:53:43 +0100
|
||
|
Subject: [PATCH] arm: remove unneeded symbol offsets and _TEXT_BASE
|
||
|
|
||
|
Remove the last uses of symbol offsets in ARM U-Boot.
|
||
|
Remove some needless uses of _TEXT_BASE.
|
||
|
Remove all _TEXT_BASE definitions.
|
||
|
|
||
|
Signed-off-by: Albert ARIBAUD <albert.u.boot@aribaud.net>
|
||
|
---
|
||
|
README | 6 ------
|
||
|
arch/arm/cpu/arm1136/start.S | 27 ---------------------------
|
||
|
arch/arm/cpu/arm1176/start.S | 27 ---------------------------
|
||
|
arch/arm/cpu/arm720t/start.S | 26 --------------------------
|
||
|
arch/arm/cpu/arm920t/start.S | 26 --------------------------
|
||
|
arch/arm/cpu/arm926ejs/at91/lowlevel_init.S | 14 +-------------
|
||
|
arch/arm/cpu/arm926ejs/mxs/start.S | 27 ---------------------------
|
||
|
arch/arm/cpu/arm926ejs/start.S | 27 ---------------------------
|
||
|
arch/arm/cpu/arm946es/start.S | 26 --------------------------
|
||
|
arch/arm/cpu/arm_intcm/start.S | 26 --------------------------
|
||
|
arch/arm/cpu/armv7/omap3/lowlevel_init.S | 3 ---
|
||
|
arch/arm/cpu/armv7/start.S | 23 -----------------------
|
||
|
arch/arm/cpu/pxa/start.S | 27 ---------------------------
|
||
|
arch/arm/cpu/sa1100/start.S | 26 --------------------------
|
||
|
arch/arm/lib/board.c | 12 ++++++------
|
||
|
board/armltd/integrator/lowlevel_init.S | 2 +-
|
||
|
board/cm4008/flash.c | 2 +-
|
||
|
board/cm41xx/flash.c | 2 +-
|
||
|
board/mpl/vcma9/lowlevel_init.S | 5 +----
|
||
|
board/samsung/goni/lowlevel_init.S | 3 ---
|
||
|
board/samsung/smdk2410/lowlevel_init.S | 5 +----
|
||
|
board/samsung/smdkc100/lowlevel_init.S | 3 ---
|
||
|
board/ti/omap5912osk/lowlevel_init.S | 4 ----
|
||
|
common/board_f.c | 14 +++-----------
|
||
|
common/board_r.c | 4 ++--
|
||
|
include/asm-generic/sections.h | 26 +++++++-------------------
|
||
|
26 files changed, 24 insertions(+), 369 deletions(-)
|
||
|
|
||
|
diff --git a/README b/README
|
||
|
index d4eb099..5b7dec9 100644
|
||
|
--- a/README
|
||
|
+++ b/README
|
||
|
@@ -3707,12 +3707,6 @@ Configuration Settings:
|
||
|
its config.mk file). If you find problems enabling this option on
|
||
|
your board please report the problem and send patches!
|
||
|
|
||
|
-- CONFIG_SYS_SYM_OFFSETS
|
||
|
- This is set by architectures that use offsets for link symbols
|
||
|
- instead of absolute values. So bss_start is obtained using an
|
||
|
- offset _bss_start_ofs from CONFIG_SYS_TEXT_BASE, rather than
|
||
|
- directly. You should not need to touch this setting.
|
||
|
-
|
||
|
- CONFIG_OMAP_PLATFORM_RESET_TIME_MAX_USEC (OMAP only)
|
||
|
This is set by OMAP boards for the max time that reset should
|
||
|
be asserted. See doc/README.omap-reset-time for details on how
|
||
|
diff --git a/arch/arm/cpu/arm1136/start.S b/arch/arm/cpu/arm1136/start.S
|
||
|
index 00d1b30..3e2358e 100644
|
||
|
--- a/arch/arm/cpu/arm1136/start.S
|
||
|
+++ b/arch/arm/cpu/arm1136/start.S
|
||
|
@@ -70,32 +70,6 @@ _end_vect:
|
||
|
*************************************************************************
|
||
|
*/
|
||
|
|
||
|
-.globl _TEXT_BASE
|
||
|
-_TEXT_BASE:
|
||
|
-#if defined(CONFIG_SPL_BUILD) && defined(CONFIG_SPL_TEXT_BASE)
|
||
|
- .word CONFIG_SPL_TEXT_BASE
|
||
|
-#else
|
||
|
- .word CONFIG_SYS_TEXT_BASE
|
||
|
-#endif
|
||
|
-
|
||
|
-/*
|
||
|
- * These are defined in the board-specific linker script.
|
||
|
- * Subtracting _start from them lets the linker put their
|
||
|
- * relative position in the executable instead of leaving
|
||
|
- * them null.
|
||
|
- */
|
||
|
-.globl _bss_start_ofs
|
||
|
-_bss_start_ofs:
|
||
|
- .word __bss_start - _start
|
||
|
-
|
||
|
-.globl _bss_end_ofs
|
||
|
-_bss_end_ofs:
|
||
|
- .word __bss_end - _start
|
||
|
-
|
||
|
-.globl _end_ofs
|
||
|
-_end_ofs:
|
||
|
- .word _end - _start
|
||
|
-
|
||
|
#ifdef CONFIG_USE_IRQ
|
||
|
/* IRQ stack memory (calculated at run-time) */
|
||
|
.globl IRQ_STACK_START
|
||
|
@@ -295,7 +269,6 @@ cpu_init_crit:
|
||
|
#ifdef CONFIG_SPL_BUILD
|
||
|
.align 5
|
||
|
do_hang:
|
||
|
- ldr sp, _TEXT_BASE /* use 32 words about stack */
|
||
|
bl hang /* hang and never return */
|
||
|
#else /* !CONFIG_SPL_BUILD */
|
||
|
.align 5
|
||
|
diff --git a/arch/arm/cpu/arm1176/start.S b/arch/arm/cpu/arm1176/start.S
|
||
|
index ffd7dd0..ce62011 100644
|
||
|
--- a/arch/arm/cpu/arm1176/start.S
|
||
|
+++ b/arch/arm/cpu/arm1176/start.S
|
||
|
@@ -77,33 +77,6 @@ _end_vect:
|
||
|
*************************************************************************
|
||
|
*/
|
||
|
|
||
|
-.globl _TEXT_BASE
|
||
|
-_TEXT_BASE:
|
||
|
-#if defined(CONFIG_SPL_BUILD) && defined(CONFIG_SPL_TEXT_BASE)
|
||
|
- .word CONFIG_SPL_TEXT_BASE
|
||
|
-#else
|
||
|
- .word CONFIG_SYS_TEXT_BASE
|
||
|
-#endif
|
||
|
-
|
||
|
-/*
|
||
|
- * These are defined in the board-specific linker script.
|
||
|
- * Subtracting _start from them lets the linker put their
|
||
|
- * relative position in the executable instead of leaving
|
||
|
- * them null.
|
||
|
- */
|
||
|
-
|
||
|
-.globl _bss_start_ofs
|
||
|
-_bss_start_ofs:
|
||
|
- .word __bss_start - _start
|
||
|
-
|
||
|
-.globl _bss_end_ofs
|
||
|
-_bss_end_ofs:
|
||
|
- .word __bss_end - _start
|
||
|
-
|
||
|
-.globl _end_ofs
|
||
|
-_end_ofs:
|
||
|
- .word _end - _start
|
||
|
-
|
||
|
/* IRQ stack memory (calculated at run-time) + 8 bytes */
|
||
|
.globl IRQ_STACK_START_IN
|
||
|
IRQ_STACK_START_IN:
|
||
|
diff --git a/arch/arm/cpu/arm720t/start.S b/arch/arm/cpu/arm720t/start.S
|
||
|
index f180eb8..1a34842 100644
|
||
|
--- a/arch/arm/cpu/arm720t/start.S
|
||
|
+++ b/arch/arm/cpu/arm720t/start.S
|
||
|
@@ -67,32 +67,6 @@ _pad: .word 0x12345678 /* now 16*4=64 */
|
||
|
*************************************************************************
|
||
|
*/
|
||
|
|
||
|
-.globl _TEXT_BASE
|
||
|
-_TEXT_BASE:
|
||
|
-#if defined(CONFIG_SPL_BUILD) && defined(CONFIG_SPL_TEXT_BASE)
|
||
|
- .word CONFIG_SPL_TEXT_BASE
|
||
|
-#else
|
||
|
- .word CONFIG_SYS_TEXT_BASE
|
||
|
-#endif
|
||
|
-
|
||
|
-/*
|
||
|
- * These are defined in the board-specific linker script.
|
||
|
- * Subtracting _start from them lets the linker put their
|
||
|
- * relative position in the executable instead of leaving
|
||
|
- * them null.
|
||
|
- */
|
||
|
-.globl _bss_start_ofs
|
||
|
-_bss_start_ofs:
|
||
|
- .word __bss_start - _start
|
||
|
-
|
||
|
-.globl _bss_end_ofs
|
||
|
-_bss_end_ofs:
|
||
|
- .word __bss_end - _start
|
||
|
-
|
||
|
-.globl _end_ofs
|
||
|
-_end_ofs:
|
||
|
- .word _end - _start
|
||
|
-
|
||
|
#ifdef CONFIG_USE_IRQ
|
||
|
/* IRQ stack memory (calculated at run-time) */
|
||
|
.globl IRQ_STACK_START
|
||
|
diff --git a/arch/arm/cpu/arm920t/start.S b/arch/arm/cpu/arm920t/start.S
|
||
|
index a67b659..7bf094a 100644
|
||
|
--- a/arch/arm/cpu/arm920t/start.S
|
||
|
+++ b/arch/arm/cpu/arm920t/start.S
|
||
|
@@ -55,32 +55,6 @@ _fiq: .word fiq
|
||
|
*************************************************************************
|
||
|
*/
|
||
|
|
||
|
-.globl _TEXT_BASE
|
||
|
-_TEXT_BASE:
|
||
|
-#if defined(CONFIG_SPL_BUILD) && defined(CONFIG_SPL_TEXT_BASE)
|
||
|
- .word CONFIG_SPL_TEXT_BASE
|
||
|
-#else
|
||
|
- .word CONFIG_SYS_TEXT_BASE
|
||
|
-#endif
|
||
|
-
|
||
|
-/*
|
||
|
- * These are defined in the board-specific linker script.
|
||
|
- * Subtracting _start from them lets the linker put their
|
||
|
- * relative position in the executable instead of leaving
|
||
|
- * them null.
|
||
|
- */
|
||
|
-.globl _bss_start_ofs
|
||
|
-_bss_start_ofs:
|
||
|
- .word __bss_start - _start
|
||
|
-
|
||
|
-.globl _bss_end_ofs
|
||
|
-_bss_end_ofs:
|
||
|
- .word __bss_end - _start
|
||
|
-
|
||
|
-.globl _end_ofs
|
||
|
-_end_ofs:
|
||
|
- .word _end - _start
|
||
|
-
|
||
|
#ifdef CONFIG_USE_IRQ
|
||
|
/* IRQ stack memory (calculated at run-time) */
|
||
|
.globl IRQ_STACK_START
|
||
|
diff --git a/arch/arm/cpu/arm926ejs/at91/lowlevel_init.S b/arch/arm/cpu/arm926ejs/at91/lowlevel_init.S
|
||
|
index e83968f..a9ec81a 100644
|
||
|
--- a/arch/arm/cpu/arm926ejs/at91/lowlevel_init.S
|
||
|
+++ b/arch/arm/cpu/arm926ejs/at91/lowlevel_init.S
|
||
|
@@ -26,27 +26,18 @@
|
||
|
#define CONFIG_SYS_MATRIX_EBICSA_VAL CONFIG_SYS_MATRIX_EBI0CSA_VAL
|
||
|
#endif
|
||
|
|
||
|
-_TEXT_BASE:
|
||
|
- .word CONFIG_SYS_TEXT_BASE
|
||
|
-
|
||
|
.globl lowlevel_init
|
||
|
.type lowlevel_init,function
|
||
|
lowlevel_init:
|
||
|
|
||
|
- mov r5, pc /* r5 = POS1 + 4 current */
|
||
|
POS1:
|
||
|
+ adr r5, POS1 /* r5 = POS1 run time */
|
||
|
ldr r0, =POS1 /* r0 = POS1 compile */
|
||
|
- ldr r2, _TEXT_BASE
|
||
|
- sub r0, r0, r2 /* r0 = POS1-_TEXT_BASE (POS1 relative) */
|
||
|
sub r5, r5, r0 /* r0 = CONFIG_SYS_TEXT_BASE-1 */
|
||
|
- sub r5, r5, #4 /* r1 = text base - current */
|
||
|
|
||
|
/* memory control configuration 1 */
|
||
|
ldr r0, =SMRDATA
|
||
|
ldr r2, =SMRDATA1
|
||
|
- ldr r1, _TEXT_BASE
|
||
|
- sub r0, r0, r1
|
||
|
- sub r2, r2, r1
|
||
|
add r0, r0, r5
|
||
|
add r2, r2, r5
|
||
|
0:
|
||
|
@@ -149,9 +140,6 @@ PLL_setup_end:
|
||
|
|
||
|
ldr r0, =SMRDATA1
|
||
|
ldr r2, =SMRDATA2
|
||
|
- ldr r1, _TEXT_BASE
|
||
|
- sub r0, r0, r1
|
||
|
- sub r2, r2, r1
|
||
|
add r0, r0, r5
|
||
|
add r2, r2, r5
|
||
|
2:
|
||
|
diff --git a/arch/arm/cpu/arm926ejs/mxs/start.S b/arch/arm/cpu/arm926ejs/mxs/start.S
|
||
|
index 5de2bad..34a0fcb 100644
|
||
|
--- a/arch/arm/cpu/arm926ejs/mxs/start.S
|
||
|
+++ b/arch/arm/cpu/arm926ejs/mxs/start.S
|
||
|
@@ -101,32 +101,6 @@ fiq:
|
||
|
*************************************************************************
|
||
|
*/
|
||
|
|
||
|
-.globl _TEXT_BASE
|
||
|
-_TEXT_BASE:
|
||
|
-#ifdef CONFIG_SPL_TEXT_BASE
|
||
|
- .word CONFIG_SPL_TEXT_BASE
|
||
|
-#else
|
||
|
- .word CONFIG_SYS_TEXT_BASE
|
||
|
-#endif
|
||
|
-
|
||
|
-/*
|
||
|
- * These are defined in the board-specific linker script.
|
||
|
- * Subtracting _start from them lets the linker put their
|
||
|
- * relative position in the executable instead of leaving
|
||
|
- * them null.
|
||
|
- */
|
||
|
-.globl _bss_start_ofs
|
||
|
-_bss_start_ofs:
|
||
|
- .word __bss_start - _start
|
||
|
-
|
||
|
-.globl _bss_end_ofs
|
||
|
-_bss_end_ofs:
|
||
|
- .word __bss_end - _start
|
||
|
-
|
||
|
-.globl _end_ofs
|
||
|
-_end_ofs:
|
||
|
- .word _end - _start
|
||
|
-
|
||
|
#ifdef CONFIG_USE_IRQ
|
||
|
/* IRQ stack memory (calculated at run-time) */
|
||
|
.globl IRQ_STACK_START
|
||
|
@@ -207,6 +181,5 @@ _reset:
|
||
|
bx lr
|
||
|
|
||
|
_hang:
|
||
|
- ldr sp, _TEXT_BASE /* switch to abort stack */
|
||
|
1:
|
||
|
bl 1b /* hang and never return */
|
||
|
diff --git a/arch/arm/cpu/arm926ejs/start.S b/arch/arm/cpu/arm926ejs/start.S
|
||
|
index 5360f55..0717327 100644
|
||
|
--- a/arch/arm/cpu/arm926ejs/start.S
|
||
|
+++ b/arch/arm/cpu/arm926ejs/start.S
|
||
|
@@ -102,32 +102,6 @@ _fiq:
|
||
|
*************************************************************************
|
||
|
*/
|
||
|
|
||
|
-.globl _TEXT_BASE
|
||
|
-_TEXT_BASE:
|
||
|
-#if defined(CONFIG_SPL_BUILD) && defined(CONFIG_SPL_TEXT_BASE)
|
||
|
- .word CONFIG_SPL_TEXT_BASE
|
||
|
-#else
|
||
|
- .word CONFIG_SYS_TEXT_BASE
|
||
|
-#endif
|
||
|
-
|
||
|
-/*
|
||
|
- * These are defined in the board-specific linker script.
|
||
|
- * Subtracting _start from them lets the linker put their
|
||
|
- * relative position in the executable instead of leaving
|
||
|
- * them null.
|
||
|
- */
|
||
|
-.globl _bss_start_ofs
|
||
|
-_bss_start_ofs:
|
||
|
- .word __bss_start - _start
|
||
|
-
|
||
|
-.globl _bss_end_ofs
|
||
|
-_bss_end_ofs:
|
||
|
- .word __bss_end - _start
|
||
|
-
|
||
|
-.globl _end_ofs
|
||
|
-_end_ofs:
|
||
|
- .word _end - _start
|
||
|
-
|
||
|
#ifdef CONFIG_USE_IRQ
|
||
|
/* IRQ stack memory (calculated at run-time) */
|
||
|
.globl IRQ_STACK_START
|
||
|
@@ -330,7 +304,6 @@ flush_dcache:
|
||
|
#ifdef CONFIG_SPL_BUILD
|
||
|
.align 5
|
||
|
do_hang:
|
||
|
- ldr sp, _TEXT_BASE /* switch to abort stack */
|
||
|
1:
|
||
|
bl 1b /* hang and never return */
|
||
|
#else /* !CONFIG_SPL_BUILD */
|
||
|
diff --git a/arch/arm/cpu/arm946es/start.S b/arch/arm/cpu/arm946es/start.S
|
||
|
index e16b088..7d50145 100644
|
||
|
--- a/arch/arm/cpu/arm946es/start.S
|
||
|
+++ b/arch/arm/cpu/arm946es/start.S
|
||
|
@@ -71,32 +71,6 @@ _vectors_end:
|
||
|
*************************************************************************
|
||
|
*/
|
||
|
|
||
|
-.globl _TEXT_BASE
|
||
|
-_TEXT_BASE:
|
||
|
-#if defined(CONFIG_SPL_BUILD) && defined(CONFIG_SPL_TEXT_BASE)
|
||
|
- .word CONFIG_SPL_TEXT_BASE
|
||
|
-#else
|
||
|
- .word CONFIG_SYS_TEXT_BASE
|
||
|
-#endif
|
||
|
-
|
||
|
-/*
|
||
|
- * These are defined in the board-specific linker script.
|
||
|
- * Subtracting _start from them lets the linker put their
|
||
|
- * relative position in the executable instead of leaving
|
||
|
- * them null.
|
||
|
- */
|
||
|
-.globl _bss_start_ofs
|
||
|
-_bss_start_ofs:
|
||
|
- .word __bss_start - _start
|
||
|
-
|
||
|
-.globl _bss_end_ofs
|
||
|
-_bss_end_ofs:
|
||
|
- .word __bss_end - _start
|
||
|
-
|
||
|
-.globl _end_ofs
|
||
|
-_end_ofs:
|
||
|
- .word _end - _start
|
||
|
-
|
||
|
#ifdef CONFIG_USE_IRQ
|
||
|
/* IRQ stack memory (calculated at run-time) */
|
||
|
.globl IRQ_STACK_START
|
||
|
diff --git a/arch/arm/cpu/arm_intcm/start.S b/arch/arm/cpu/arm_intcm/start.S
|
||
|
index 5783df1..7404ea7 100644
|
||
|
--- a/arch/arm/cpu/arm_intcm/start.S
|
||
|
+++ b/arch/arm/cpu/arm_intcm/start.S
|
||
|
@@ -67,32 +67,6 @@ _fiq:
|
||
|
*************************************************************************
|
||
|
*/
|
||
|
|
||
|
-.globl _TEXT_BASE
|
||
|
-_TEXT_BASE:
|
||
|
-#if defined(CONFIG_SPL_BUILD) && defined(CONFIG_SPL_TEXT_BASE)
|
||
|
- .word CONFIG_SPL_TEXT_BASE
|
||
|
-#else
|
||
|
- .word CONFIG_SYS_TEXT_BASE
|
||
|
-#endif
|
||
|
-
|
||
|
-/*
|
||
|
- * These are defined in the board-specific linker script.
|
||
|
- * Subtracting _start from them lets the linker put their
|
||
|
- * relative position in the executable instead of leaving
|
||
|
- * them null.
|
||
|
- */
|
||
|
-.globl _bss_start_ofs
|
||
|
-_bss_start_ofs:
|
||
|
- .word __bss_start - _start
|
||
|
-
|
||
|
-.globl _bss_end_ofs
|
||
|
-_bss_end_ofs:
|
||
|
- .word __bss_end - _start
|
||
|
-
|
||
|
-.globl _end_ofs
|
||
|
-_end_ofs:
|
||
|
- .word _end - _start
|
||
|
-
|
||
|
#ifdef CONFIG_USE_IRQ
|
||
|
/* IRQ stack memory (calculated at run-time) */
|
||
|
.globl IRQ_STACK_START
|
||
|
diff --git a/arch/arm/cpu/armv7/omap3/lowlevel_init.S b/arch/arm/cpu/armv7/omap3/lowlevel_init.S
|
||
|
index 6f7261b..78577b1 100644
|
||
|
--- a/arch/arm/cpu/armv7/omap3/lowlevel_init.S
|
||
|
+++ b/arch/arm/cpu/armv7/omap3/lowlevel_init.S
|
||
|
@@ -17,9 +17,6 @@
|
||
|
#include <asm/arch/clocks_omap3.h>
|
||
|
#include <linux/linkage.h>
|
||
|
|
||
|
-_TEXT_BASE:
|
||
|
- .word CONFIG_SYS_TEXT_BASE /* sdram load addr from config.mk */
|
||
|
-
|
||
|
#ifdef CONFIG_SPL_BUILD
|
||
|
ENTRY(save_boot_params)
|
||
|
ldr r4, =omap3_boot_device
|
||
|
diff --git a/arch/arm/cpu/armv7/start.S b/arch/arm/cpu/armv7/start.S
|
||
|
index 5aac773..ac1e55a 100644
|
||
|
--- a/arch/arm/cpu/armv7/start.S
|
||
|
+++ b/arch/arm/cpu/armv7/start.S
|
||
|
@@ -70,29 +70,6 @@ _end_vect:
|
||
|
*
|
||
|
*************************************************************************/
|
||
|
|
||
|
-.globl _TEXT_BASE
|
||
|
-_TEXT_BASE:
|
||
|
-#if defined(CONFIG_SPL_BUILD) && defined(CONFIG_SPL_TEXT_BASE)
|
||
|
- .word CONFIG_SPL_TEXT_BASE
|
||
|
-#else
|
||
|
- .word CONFIG_SYS_TEXT_BASE
|
||
|
-#endif
|
||
|
-
|
||
|
-/*
|
||
|
- * These are defined in the board-specific linker script.
|
||
|
- */
|
||
|
-.globl _bss_start_ofs
|
||
|
-_bss_start_ofs:
|
||
|
- .word __bss_start - _start
|
||
|
-
|
||
|
-.globl _bss_end_ofs
|
||
|
-_bss_end_ofs:
|
||
|
- .word __bss_end - _start
|
||
|
-
|
||
|
-.globl _end_ofs
|
||
|
-_end_ofs:
|
||
|
- .word _end - _start
|
||
|
-
|
||
|
#ifdef CONFIG_USE_IRQ
|
||
|
/* IRQ stack memory (calculated at run-time) */
|
||
|
.globl IRQ_STACK_START
|
||
|
diff --git a/arch/arm/cpu/pxa/start.S b/arch/arm/cpu/pxa/start.S
|
||
|
index d8fb812..ae0d13c 100644
|
||
|
--- a/arch/arm/cpu/pxa/start.S
|
||
|
+++ b/arch/arm/cpu/pxa/start.S
|
||
|
@@ -84,32 +84,6 @@ _end_vect:
|
||
|
*************************************************************************
|
||
|
*/
|
||
|
|
||
|
-.globl _TEXT_BASE
|
||
|
-_TEXT_BASE:
|
||
|
-#if defined(CONFIG_SPL_BUILD) && defined(CONFIG_SPL_TEXT_BASE)
|
||
|
- .word CONFIG_SPL_TEXT_BASE
|
||
|
-#else
|
||
|
- .word CONFIG_SYS_TEXT_BASE
|
||
|
-#endif
|
||
|
-
|
||
|
-/*
|
||
|
- * These are defined in the board-specific linker script.
|
||
|
- * Subtracting _start from them lets the linker put their
|
||
|
- * relative position in the executable instead of leaving
|
||
|
- * them null.
|
||
|
- */
|
||
|
-.globl _bss_start_ofs
|
||
|
-_bss_start_ofs:
|
||
|
- .word __bss_start - _start
|
||
|
-
|
||
|
-.globl _bss_end_ofs
|
||
|
-_bss_end_ofs:
|
||
|
- .word __bss_end - _start
|
||
|
-
|
||
|
-.globl _end_ofs
|
||
|
-_end_ofs:
|
||
|
- .word _end - _start
|
||
|
-
|
||
|
#ifdef CONFIG_USE_IRQ
|
||
|
/* IRQ stack memory (calculated at run-time) */
|
||
|
.globl IRQ_STACK_START
|
||
|
@@ -316,7 +290,6 @@ cpu_init_crit:
|
||
|
#ifdef CONFIG_SPL_BUILD
|
||
|
.align 5
|
||
|
do_hang:
|
||
|
- ldr sp, _TEXT_BASE /* use 32 words about stack */
|
||
|
bl hang /* hang and never return */
|
||
|
#else /* !CONFIG_SPL_BUILD */
|
||
|
.align 5
|
||
|
diff --git a/arch/arm/cpu/sa1100/start.S b/arch/arm/cpu/sa1100/start.S
|
||
|
index 27bcda5..bf80937 100644
|
||
|
--- a/arch/arm/cpu/sa1100/start.S
|
||
|
+++ b/arch/arm/cpu/sa1100/start.S
|
||
|
@@ -56,32 +56,6 @@ _fiq: .word fiq
|
||
|
*************************************************************************
|
||
|
*/
|
||
|
|
||
|
-.globl _TEXT_BASE
|
||
|
-_TEXT_BASE:
|
||
|
-#if defined(CONFIG_SPL_BUILD) && defined(CONFIG_SPL_TEXT_BASE)
|
||
|
- .word CONFIG_SPL_TEXT_BASE
|
||
|
-#else
|
||
|
- .word CONFIG_SYS_TEXT_BASE
|
||
|
-#endif
|
||
|
-
|
||
|
-/*
|
||
|
- * These are defined in the board-specific linker script.
|
||
|
- * Subtracting _start from them lets the linker put their
|
||
|
- * relative position in the executable instead of leaving
|
||
|
- * them null.
|
||
|
- */
|
||
|
-.globl _bss_start_ofs
|
||
|
-_bss_start_ofs:
|
||
|
- .word __bss_start - _start
|
||
|
-
|
||
|
-.globl _bss_end_ofs
|
||
|
-_bss_end_ofs:
|
||
|
- .word __bss_end - _start
|
||
|
-
|
||
|
-.globl _end_ofs
|
||
|
-_end_ofs:
|
||
|
- .word _end - _start
|
||
|
-
|
||
|
#ifdef CONFIG_USE_IRQ
|
||
|
/* IRQ stack memory (calculated at run-time) */
|
||
|
.globl IRQ_STACK_START
|
||
|
diff --git a/arch/arm/lib/board.c b/arch/arm/lib/board.c
|
||
|
index c320a35..1de5812 100644
|
||
|
--- a/arch/arm/lib/board.c
|
||
|
+++ b/arch/arm/lib/board.c
|
||
|
@@ -105,8 +105,8 @@ static int display_banner(void)
|
||
|
{
|
||
|
printf("\n\n%s\n\n", version_string);
|
||
|
debug("U-Boot code: %08lX -> %08lX BSS: -> %08lX\n",
|
||
|
- _TEXT_BASE,
|
||
|
- _bss_start_ofs + _TEXT_BASE, _bss_end_ofs + _TEXT_BASE);
|
||
|
+ (ulong)&_start,
|
||
|
+ (ulong)&__bss_start, (ulong)&__bss_end);
|
||
|
#ifdef CONFIG_MODEM_SUPPORT
|
||
|
debug("Modem Support enabled\n");
|
||
|
#endif
|
||
|
@@ -277,13 +277,13 @@ void board_init_f(ulong bootflag)
|
||
|
|
||
|
memset((void *)gd, 0, sizeof(gd_t));
|
||
|
|
||
|
- gd->mon_len = _bss_end_ofs;
|
||
|
+ gd->mon_len = (ulong)&__bss_end - (ulong)_start;
|
||
|
#ifdef CONFIG_OF_EMBED
|
||
|
/* Get a pointer to the FDT */
|
||
|
gd->fdt_blob = _binary_dt_dtb_start;
|
||
|
#elif defined CONFIG_OF_SEPARATE
|
||
|
/* FDT is at end of image */
|
||
|
- gd->fdt_blob = (void *)(_end_ofs + _TEXT_BASE);
|
||
|
+ gd->fdt_blob = &_end;
|
||
|
#endif
|
||
|
/* Allow the early environment to override the fdt address */
|
||
|
gd->fdt_blob = (void *)getenv_ulong("fdtcontroladdr", 16,
|
||
|
@@ -451,7 +451,7 @@ void board_init_f(ulong bootflag)
|
||
|
|
||
|
gd->relocaddr = addr;
|
||
|
gd->start_addr_sp = addr_sp;
|
||
|
- gd->reloc_off = addr - _TEXT_BASE;
|
||
|
+ gd->reloc_off = addr - (ulong)&_start;
|
||
|
debug("relocation Offset is: %08lx\n", gd->reloc_off);
|
||
|
if (new_fdt) {
|
||
|
memcpy(new_fdt, gd->fdt_blob, fdt_size);
|
||
|
@@ -516,7 +516,7 @@ void board_init_r(gd_t *id, ulong dest_addr)
|
||
|
gd->flags |= GD_FLG_RELOC; /* tell others: relocation done */
|
||
|
bootstage_mark_name(BOOTSTAGE_ID_START_UBOOT_R, "board_init_r");
|
||
|
|
||
|
- monitor_flash_len = _end_ofs;
|
||
|
+ monitor_flash_len = (ulong)&__rel_dyn_end - (ulong)_start;
|
||
|
|
||
|
/* Enable caches */
|
||
|
enable_caches();
|
||
|
diff --git a/board/armltd/integrator/lowlevel_init.S b/board/armltd/integrator/lowlevel_init.S
|
||
|
index 389d5e9..0fb42ad 100644
|
||
|
--- a/board/armltd/integrator/lowlevel_init.S
|
||
|
+++ b/board/armltd/integrator/lowlevel_init.S
|
||
|
@@ -183,7 +183,7 @@ cm_remap:
|
||
|
|
||
|
/* Now 0x00000000 is writeable, replace the vectors */
|
||
|
ldr r0, =_start /* r0 <- start of vectors */
|
||
|
- ldr r2, =_TEXT_BASE /* r2 <- past vectors */
|
||
|
+ add r2, r0, #64 /* r2 <- past vectors */
|
||
|
sub r1,r1,r1 /* destination 0x00000000 */
|
||
|
|
||
|
copy_vec:
|
||
|
diff --git a/board/cm4008/flash.c b/board/cm4008/flash.c
|
||
|
index 2511928..8315a57 100644
|
||
|
--- a/board/cm4008/flash.c
|
||
|
+++ b/board/cm4008/flash.c
|
||
|
@@ -57,7 +57,7 @@ unsigned long flash_init (void)
|
||
|
*/
|
||
|
flash_protect (FLAG_PROTECT_SET,
|
||
|
CONFIG_SYS_FLASH_BASE,
|
||
|
- CONFIG_SYS_FLASH_BASE + _bss_start_ofs,
|
||
|
+ CONFIG_SYS_FLASH_BASE + (__bss_end - __bss_start),
|
||
|
&flash_info[0]);
|
||
|
|
||
|
return size;
|
||
|
diff --git a/board/cm41xx/flash.c b/board/cm41xx/flash.c
|
||
|
index 2511928..8315a57 100644
|
||
|
--- a/board/cm41xx/flash.c
|
||
|
+++ b/board/cm41xx/flash.c
|
||
|
@@ -57,7 +57,7 @@ unsigned long flash_init (void)
|
||
|
*/
|
||
|
flash_protect (FLAG_PROTECT_SET,
|
||
|
CONFIG_SYS_FLASH_BASE,
|
||
|
- CONFIG_SYS_FLASH_BASE + _bss_start_ofs,
|
||
|
+ CONFIG_SYS_FLASH_BASE + (__bss_end - __bss_start),
|
||
|
&flash_info[0]);
|
||
|
|
||
|
return size;
|
||
|
diff --git a/board/mpl/vcma9/lowlevel_init.S b/board/mpl/vcma9/lowlevel_init.S
|
||
|
index b889cf9..cca9c0c 100644
|
||
|
--- a/board/mpl/vcma9/lowlevel_init.S
|
||
|
+++ b/board/mpl/vcma9/lowlevel_init.S
|
||
|
@@ -197,13 +197,10 @@
|
||
|
#define REFCNT_266 0
|
||
|
/**************************************/
|
||
|
|
||
|
-_TEXT_BASE:
|
||
|
- .word CONFIG_SYS_TEXT_BASE
|
||
|
-
|
||
|
.globl lowlevel_init
|
||
|
lowlevel_init:
|
||
|
/* use r0 to relocate DATA read/write to flash rather than memory ! */
|
||
|
- ldr r0, _TEXT_BASE
|
||
|
+ ldr r0, =CONFIG_SYS_TEXT_BASE
|
||
|
ldr r13, =BWSCON
|
||
|
|
||
|
/* enable minimal access to PLD */
|
||
|
diff --git a/board/samsung/goni/lowlevel_init.S b/board/samsung/goni/lowlevel_init.S
|
||
|
index 726211a..d52bc09 100644
|
||
|
--- a/board/samsung/goni/lowlevel_init.S
|
||
|
+++ b/board/samsung/goni/lowlevel_init.S
|
||
|
@@ -22,9 +22,6 @@
|
||
|
* r9 has Mobile DDR size, 1 means 1GiB, 2 means 2GiB and so on
|
||
|
*/
|
||
|
|
||
|
-_TEXT_BASE:
|
||
|
- .word CONFIG_SYS_TEXT_BASE
|
||
|
-
|
||
|
.globl lowlevel_init
|
||
|
lowlevel_init:
|
||
|
mov r11, lr
|
||
|
diff --git a/board/samsung/smdk2410/lowlevel_init.S b/board/samsung/smdk2410/lowlevel_init.S
|
||
|
index c7b78fd..5de04f1 100644
|
||
|
--- a/board/samsung/smdk2410/lowlevel_init.S
|
||
|
+++ b/board/samsung/smdk2410/lowlevel_init.S
|
||
|
@@ -110,16 +110,13 @@
|
||
|
#define REFCNT 1113 /* period=15.6us, HCLK=60Mhz, (2048+1-15.6*60) */
|
||
|
/**************************************/
|
||
|
|
||
|
-_TEXT_BASE:
|
||
|
- .word CONFIG_SYS_TEXT_BASE
|
||
|
-
|
||
|
.globl lowlevel_init
|
||
|
lowlevel_init:
|
||
|
/* memory control configuration */
|
||
|
/* make r0 relative the current location so that it */
|
||
|
/* reads SMRDATA out of FLASH rather than memory ! */
|
||
|
ldr r0, =SMRDATA
|
||
|
- ldr r1, _TEXT_BASE
|
||
|
+ ldr r1, =CONFIG_SYS_TEXT_BASE
|
||
|
sub r0, r0, r1
|
||
|
ldr r1, =BWSCON /* Bus Width Status Controller */
|
||
|
add r2, r0, #13*4
|
||
|
diff --git a/board/samsung/smdkc100/lowlevel_init.S b/board/samsung/smdkc100/lowlevel_init.S
|
||
|
index 4df0974..65e6b7a 100644
|
||
|
--- a/board/samsung/smdkc100/lowlevel_init.S
|
||
|
+++ b/board/samsung/smdkc100/lowlevel_init.S
|
||
|
@@ -17,9 +17,6 @@
|
||
|
* r5 has zero always
|
||
|
*/
|
||
|
|
||
|
-_TEXT_BASE:
|
||
|
- .word CONFIG_SYS_TEXT_BASE
|
||
|
-
|
||
|
.globl lowlevel_init
|
||
|
lowlevel_init:
|
||
|
mov r9, lr
|
||
|
diff --git a/board/ti/omap5912osk/lowlevel_init.S b/board/ti/omap5912osk/lowlevel_init.S
|
||
|
index cad0a5a..e05a1c7 100644
|
||
|
--- a/board/ti/omap5912osk/lowlevel_init.S
|
||
|
+++ b/board/ti/omap5912osk/lowlevel_init.S
|
||
|
@@ -18,10 +18,6 @@
|
||
|
#include <./configs/omap1510.h>
|
||
|
#endif
|
||
|
|
||
|
-
|
||
|
-_TEXT_BASE:
|
||
|
- .word CONFIG_SYS_TEXT_BASE /* sdram load addr from config.mk */
|
||
|
-
|
||
|
.globl lowlevel_init
|
||
|
lowlevel_init:
|
||
|
|
||
|
diff --git a/common/board_f.c b/common/board_f.c
|
||
|
index 02965b0..5b9ba07 100644
|
||
|
--- a/common/board_f.c
|
||
|
+++ b/common/board_f.c
|
||
|
@@ -149,13 +149,9 @@ static int display_text_info(void)
|
||
|
#ifndef CONFIG_SANDBOX
|
||
|
ulong bss_start, bss_end;
|
||
|
|
||
|
-#ifdef CONFIG_SYS_SYM_OFFSETS
|
||
|
- bss_start = _bss_start_ofs + _TEXT_BASE;
|
||
|
- bss_end = _bss_end_ofs + _TEXT_BASE;
|
||
|
-#else
|
||
|
bss_start = (ulong)&__bss_start;
|
||
|
bss_end = (ulong)&__bss_end;
|
||
|
-#endif
|
||
|
+
|
||
|
debug("U-Boot code: %08X -> %08lX BSS: -> %08lX\n",
|
||
|
CONFIG_SYS_TEXT_BASE, bss_start, bss_end);
|
||
|
#endif
|
||
|
@@ -279,8 +275,8 @@ static int zero_global_data(void)
|
||
|
|
||
|
static int setup_mon_len(void)
|
||
|
{
|
||
|
-#ifdef CONFIG_SYS_SYM_OFFSETS
|
||
|
- gd->mon_len = _bss_end_ofs;
|
||
|
+#ifdef __ARM__
|
||
|
+ gd->mon_len = (ulong)&__bss_end - (ulong)_start;
|
||
|
#elif defined(CONFIG_SANDBOX)
|
||
|
gd->mon_len = (ulong)&_end - (ulong)_init;
|
||
|
#else
|
||
|
@@ -363,11 +359,7 @@ static int setup_fdt(void)
|
||
|
gd->fdt_blob = __dtb_dt_begin;
|
||
|
#elif defined CONFIG_OF_SEPARATE
|
||
|
/* FDT is at end of image */
|
||
|
-# ifdef CONFIG_SYS_SYM_OFFSETS
|
||
|
- gd->fdt_blob = (void *)(_end_ofs + CONFIG_SYS_TEXT_BASE);
|
||
|
-# else
|
||
|
gd->fdt_blob = (ulong *)&_end;
|
||
|
-# endif
|
||
|
#elif defined(CONFIG_OF_HOSTFILE)
|
||
|
if (read_fdt_from_file()) {
|
||
|
puts("Failed to read control FDT\n");
|
||
|
diff --git a/common/board_r.c b/common/board_r.c
|
||
|
index c2d0763..899f377 100644
|
||
|
--- a/common/board_r.c
|
||
|
+++ b/common/board_r.c
|
||
|
@@ -128,8 +128,8 @@ __weak int fixup_cpu(void)
|
||
|
|
||
|
static int initr_reloc_global_data(void)
|
||
|
{
|
||
|
-#ifdef CONFIG_SYS_SYM_OFFSETS
|
||
|
- monitor_flash_len = _end_ofs;
|
||
|
+#ifdef __ARM__
|
||
|
+ monitor_flash_len = _end - __image_copy_start;
|
||
|
#elif !defined(CONFIG_SANDBOX)
|
||
|
monitor_flash_len = (ulong)&__init_end - gd->relocaddr;
|
||
|
#endif
|
||
|
diff --git a/include/asm-generic/sections.h b/include/asm-generic/sections.h
|
||
|
index 7e1eb4b..458952f 100644
|
||
|
--- a/include/asm-generic/sections.h
|
||
|
+++ b/include/asm-generic/sections.h
|
||
|
@@ -63,28 +63,16 @@ extern char __image_copy_end[];
|
||
|
extern void _start(void);
|
||
|
|
||
|
/*
|
||
|
- * ARM needs to use offsets for symbols, since the values of some symbols
|
||
|
- * are not resolved prior to relocation (and are just 0). Maybe this can be
|
||
|
- * resolved, or maybe other architectures are similar, iwc this should be
|
||
|
- * promoted to an architecture option.
|
||
|
+ * ARM defines its symbols as char[]. Other arches define them as ulongs.
|
||
|
*/
|
||
|
#ifdef CONFIG_ARM
|
||
|
-#define CONFIG_SYS_SYM_OFFSETS
|
||
|
-#endif
|
||
|
-
|
||
|
-#ifdef CONFIG_SYS_SYM_OFFSETS
|
||
|
-/* Start/end of the relocation entries, as an offset from _start */
|
||
|
-extern ulong _rel_dyn_start_ofs;
|
||
|
-extern ulong _rel_dyn_end_ofs;
|
||
|
-
|
||
|
-/* End of the region to be relocated, as an offset form _start */
|
||
|
-extern ulong _image_copy_end_ofs;
|
||
|
|
||
|
-extern ulong _bss_start_ofs; /* BSS start relative to _start */
|
||
|
-extern ulong _bss_end_ofs; /* BSS end relative to _start */
|
||
|
-extern ulong _end_ofs; /* end of image relative to _start */
|
||
|
-
|
||
|
-extern ulong _TEXT_BASE; /* code start */
|
||
|
+extern char __bss_start[];
|
||
|
+extern char __bss_end[];
|
||
|
+extern char __image_copy_start[];
|
||
|
+extern char __image_copy_end[];
|
||
|
+extern char __rel_dyn_start[];
|
||
|
+extern char __rel_dyn_end[];
|
||
|
|
||
|
#else /* don't use offsets: */
|
||
|
|