summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--arch/arm/cpu/arm1136/start.S6
-rw-r--r--arch/arm/cpu/arm1176/start.S6
-rw-r--r--arch/arm/cpu/arm720t/start.S6
-rw-r--r--arch/arm/cpu/arm920t/start.S6
-rw-r--r--arch/arm/cpu/arm925t/start.S6
-rw-r--r--arch/arm/cpu/arm926ejs/start.S6
-rw-r--r--arch/arm/cpu/arm946es/start.S6
-rw-r--r--arch/arm/cpu/arm_intcm/start.S6
-rw-r--r--arch/arm/cpu/armv7/start.S6
-rw-r--r--arch/arm/cpu/ixp/start.S6
-rw-r--r--arch/arm/cpu/pxa/start.S6
-rw-r--r--arch/arm/cpu/s3c44b0/start.S6
-rw-r--r--arch/arm/cpu/sa1100/start.S6
-rw-r--r--arch/arm/lib/crt0.S8
-rw-r--r--board/freescale/mx31pdk/mx31pdk.c2
-rw-r--r--board/karo/tx25/tx25.c2
-rw-r--r--board/samsung/smdk6400/smdk6400_nand_spl.c3
-rw-r--r--include/common.h8
18 files changed, 36 insertions, 65 deletions
diff --git a/arch/arm/cpu/arm1136/start.S b/arch/arm/cpu/arm1136/start.S
index e36d7d32b9..ad24b80641 100644
--- a/arch/arm/cpu/arm1136/start.S
+++ b/arch/arm/cpu/arm1136/start.S
@@ -174,15 +174,13 @@ next:
/*------------------------------------------------------------------------------*/
/*
- * void relocate_code (addr_sp, gd, addr_moni)
+ * void relocate_code(addr_moni)
*
* This function relocates the monitor code.
*/
.globl relocate_code
relocate_code:
- mov r4, r0 /* save addr_sp */
- mov r5, r1 /* save addr of gd */
- mov r6, r2 /* save addr of destination */
+ mov r6, r0 /* save addr of destination */
adr r0, _start
subs r9, r6, r0 /* r9 <- relocation offset */
diff --git a/arch/arm/cpu/arm1176/start.S b/arch/arm/cpu/arm1176/start.S
index 0b570d599b..5654c19d6c 100644
--- a/arch/arm/cpu/arm1176/start.S
+++ b/arch/arm/cpu/arm1176/start.S
@@ -241,15 +241,13 @@ skip_tcmdisable:
/*------------------------------------------------------------------------------*/
/*
- * void relocate_code (addr_sp, gd, addr_moni)
+ * void relocate_code(addr_moni)
*
* This function relocates the monitor code.
*/
.globl relocate_code
relocate_code:
- mov r4, r0 /* save addr_sp */
- mov r5, r1 /* save addr of gd */
- mov r6, r2 /* save addr of destination */
+ mov r6, r0 /* save addr of destination */
adr r0, _start
subs r9, r6, r0 /* r9 <- relocation offset */
diff --git a/arch/arm/cpu/arm720t/start.S b/arch/arm/cpu/arm720t/start.S
index a640eaaa3b..9facc7e694 100644
--- a/arch/arm/cpu/arm720t/start.S
+++ b/arch/arm/cpu/arm720t/start.S
@@ -156,15 +156,13 @@ reset:
/*------------------------------------------------------------------------------*/
/*
- * void relocate_code (addr_sp, gd, addr_moni)
+ * void relocate_code(addr_moni)
*
* This function relocates the monitor code.
*/
.globl relocate_code
relocate_code:
- mov r4, r0 /* save addr_sp */
- mov r5, r1 /* save addr of gd */
- mov r6, r2 /* save addr of destination */
+ mov r6, r0 /* save addr of destination */
adr r0, _start
subs r9, r6, r0 /* r9 <- relocation offset */
diff --git a/arch/arm/cpu/arm920t/start.S b/arch/arm/cpu/arm920t/start.S
index 940ce729b8..62500250e3 100644
--- a/arch/arm/cpu/arm920t/start.S
+++ b/arch/arm/cpu/arm920t/start.S
@@ -195,15 +195,13 @@ copyex:
/*------------------------------------------------------------------------------*/
/*
- * void relocate_code (addr_sp, gd, addr_moni)
+ * void relocate_code(addr_moni)
*
* This function relocates the monitor code.
*/
.globl relocate_code
relocate_code:
- mov r4, r0 /* save addr_sp */
- mov r5, r1 /* save addr of gd */
- mov r6, r2 /* save addr of destination */
+ mov r6, r0 /* save addr of destination */
adr r0, _start
subs r9, r6, r0 /* r9 <- relocation offset */
diff --git a/arch/arm/cpu/arm925t/start.S b/arch/arm/cpu/arm925t/start.S
index ed683b44d5..021e2418d8 100644
--- a/arch/arm/cpu/arm925t/start.S
+++ b/arch/arm/cpu/arm925t/start.S
@@ -185,15 +185,13 @@ poll1:
/*------------------------------------------------------------------------------*/
/*
- * void relocate_code (addr_sp, gd, addr_moni)
+ * void relocate_code(addr_moni)
*
* This function relocates the monitor code.
*/
.globl relocate_code
relocate_code:
- mov r4, r0 /* save addr_sp */
- mov r5, r1 /* save addr of gd */
- mov r6, r2 /* save addr of destination */
+ mov r6, r0 /* save addr of destination */
adr r0, _start
subs r9, r6, r0 /* r9 <- relocation offset */
diff --git a/arch/arm/cpu/arm926ejs/start.S b/arch/arm/cpu/arm926ejs/start.S
index 3c9de3f49b..4c5671109d 100644
--- a/arch/arm/cpu/arm926ejs/start.S
+++ b/arch/arm/cpu/arm926ejs/start.S
@@ -191,15 +191,13 @@ reset:
/*------------------------------------------------------------------------------*/
/*
- * void relocate_code (addr_sp, gd, addr_moni)
+ * void relocate_code(addr_moni)
*
* This function relocates the monitor code.
*/
.globl relocate_code
relocate_code:
- mov r4, r0 /* save addr_sp */
- mov r5, r1 /* save addr of gd */
- mov r6, r2 /* save addr of destination */
+ mov r6, r0 /* save addr of destination */
adr r0, _start
subs r9, r6, r0 /* r9 <- relocation offset */
diff --git a/arch/arm/cpu/arm946es/start.S b/arch/arm/cpu/arm946es/start.S
index 2dd1fa3407..9c2b70db0d 100644
--- a/arch/arm/cpu/arm946es/start.S
+++ b/arch/arm/cpu/arm946es/start.S
@@ -160,15 +160,13 @@ reset:
/*------------------------------------------------------------------------------*/
/*
- * void relocate_code (addr_sp, gd, addr_moni)
+ * void relocate_code(addr_moni)
*
* This function relocates the monitor code.
*/
.globl relocate_code
relocate_code:
- mov r4, r0 /* save addr_sp */
- mov r5, r1 /* save addr of gd */
- mov r6, r2 /* save addr of destination */
+ mov r6, r0 /* save addr of destination */
adr r0, _start
subs r9, r6, r0 /* r9 <- relocation offset */
diff --git a/arch/arm/cpu/arm_intcm/start.S b/arch/arm/cpu/arm_intcm/start.S
index cc054e8c28..5e8c5289fc 100644
--- a/arch/arm/cpu/arm_intcm/start.S
+++ b/arch/arm/cpu/arm_intcm/start.S
@@ -156,15 +156,13 @@ reset:
/*------------------------------------------------------------------------------*/
/*
- * void relocate_code (addr_sp, gd, addr_moni)
+ * void relocate_code(addr_moni)
*
* This function relocates the monitor code.
*/
.globl relocate_code
relocate_code:
- mov r4, r0 /* save addr_sp */
- mov r5, r1 /* save addr of gd */
- mov r6, r2 /* save addr of destination */
+ mov r6, r0 /* save addr of destination */
adr r0, _start
subs r9, r6, r0 /* r9 <- relocation offset */
diff --git a/arch/arm/cpu/armv7/start.S b/arch/arm/cpu/armv7/start.S
index d0b17c9abf..64008ba6cf 100644
--- a/arch/arm/cpu/armv7/start.S
+++ b/arch/arm/cpu/armv7/start.S
@@ -165,14 +165,12 @@ reset:
#ifndef CONFIG_SPL_BUILD
/*
- * void relocate_code (addr_sp, gd, addr_moni)
+ * void relocate_code(addr_moni)
*
* This function relocates the monitor code.
*/
ENTRY(relocate_code)
- mov r4, r0 /* save addr_sp */
- mov r5, r1 /* save addr of gd */
- mov r6, r2 /* save addr of destination */
+ mov r6, r0 /* save addr of destination */
adr r0, _start
subs r9, r6, r0 /* r9 <- relocation offset */
diff --git a/arch/arm/cpu/ixp/start.S b/arch/arm/cpu/ixp/start.S
index a305ff5e0a..69ef8aa61f 100644
--- a/arch/arm/cpu/ixp/start.S
+++ b/arch/arm/cpu/ixp/start.S
@@ -258,15 +258,13 @@ reset:
/*------------------------------------------------------------------------------*/
/*
- * void relocate_code (addr_sp, gd, addr_moni)
+ * void relocate_code(addr_moni)
*
* This function relocates the monitor code.
*/
.globl relocate_code
relocate_code:
- mov r4, r0 /* save addr_sp */
- mov r5, r1 /* save addr of gd */
- mov r6, r2 /* save addr of destination */
+ mov r6, r0 /* save addr of destination */
adr r0, _start
subs r9, r6, r0 /* r9 <- relocation offset */
diff --git a/arch/arm/cpu/pxa/start.S b/arch/arm/cpu/pxa/start.S
index cd88af8456..3e07c7c35a 100644
--- a/arch/arm/cpu/pxa/start.S
+++ b/arch/arm/cpu/pxa/start.S
@@ -173,15 +173,13 @@ reset:
/*------------------------------------------------------------------------------*/
#ifndef CONFIG_SPL_BUILD
/*
- * void relocate_code (addr_sp, gd, addr_moni)
+ * void relocate_code(addr_moni)
*
* This function relocates the monitor code.
*/
.globl relocate_code
relocate_code:
- mov r4, r0 /* save addr_sp */
- mov r5, r1 /* save addr of gd */
- mov r6, r2 /* save addr of destination */
+ mov r6, r0 /* save addr of destination */
/* Disable the Dcache RAM lock for stack now */
#ifdef CONFIG_CPU_PXA25X
diff --git a/arch/arm/cpu/s3c44b0/start.S b/arch/arm/cpu/s3c44b0/start.S
index 579f6e2fa1..7361aa268a 100644
--- a/arch/arm/cpu/s3c44b0/start.S
+++ b/arch/arm/cpu/s3c44b0/start.S
@@ -141,15 +141,13 @@ reset:
/*------------------------------------------------------------------------------*/
/*
- * void relocate_code (addr_sp, gd, addr_moni)
+ * void relocate_code(addr_moni)
*
* This function relocates the monitor code.
*/
.globl relocate_code
relocate_code:
- mov r4, r0 /* save addr_sp */
- mov r5, r1 /* save addr of gd */
- mov r6, r2 /* save addr of destination */
+ mov r6, r0 /* save addr of destination */
adr r0, _start
subs r9, r6, r0 /* r9 <- relocation offset */
diff --git a/arch/arm/cpu/sa1100/start.S b/arch/arm/cpu/sa1100/start.S
index 13cf13226a..8a2eafd6a4 100644
--- a/arch/arm/cpu/sa1100/start.S
+++ b/arch/arm/cpu/sa1100/start.S
@@ -145,15 +145,13 @@ reset:
/*------------------------------------------------------------------------------*/
/*
- * void relocate_code (addr_sp, gd, addr_moni)
+ * void relocate_code(addr_moni)
*
* This function relocates the monitor code.
*/
.globl relocate_code
relocate_code:
- mov r4, r0 /* save addr_sp */
- mov r5, r1 /* save addr of gd */
- mov r6, r2 /* save addr of destination */
+ mov r6, r0 /* save addr of destination */
adr r0, _start
subs r9, r6, r0 /* r9 <- relocation offset */
diff --git a/arch/arm/lib/crt0.S b/arch/arm/lib/crt0.S
index 1524f7eb69..fa25319151 100644
--- a/arch/arm/lib/crt0.S
+++ b/arch/arm/lib/crt0.S
@@ -96,8 +96,8 @@ ENTRY(_main)
/*
* Set up intermediate environment (new sp and gd) and call
- * relocate_code(addr_sp, gd, addr_moni). Trick here is that
- * we'll return 'here' but relocated.
+ * relocate_code(addr_moni). Trick here is that we'll return
+ * 'here' but relocated.
*/
ldr sp, [r8, #GD_START_ADDR_SP] /* r8 = gd->start_addr_sp */
@@ -108,9 +108,7 @@ ENTRY(_main)
adr lr, here
ldr r0, [r8, #GD_RELOC_OFF] /* lr = gd->start_addr_sp */
add lr, lr, r0
- ldr r0, [r8, #GD_START_ADDR_SP] /* r0 = gd->start_addr_sp */
- mov r1, r8 /* r1 = gd */
- ldr r2, [r8, #GD_RELOCADDR] /* r2 = gd->relocaddr */
+ ldr r0, [r8, #GD_RELOCADDR] /* r0 = gd->relocaddr */
b relocate_code
here:
diff --git a/board/freescale/mx31pdk/mx31pdk.c b/board/freescale/mx31pdk/mx31pdk.c
index 3d0d419e27..49158bd90d 100644
--- a/board/freescale/mx31pdk/mx31pdk.c
+++ b/board/freescale/mx31pdk/mx31pdk.c
@@ -39,7 +39,7 @@ DECLARE_GLOBAL_DATA_PTR;
#ifdef CONFIG_SPL_BUILD
void board_init_f(ulong bootflag)
{
- relocate_code(0, NULL, CONFIG_SPL_TEXT_BASE);
+ relocate_code(CONFIG_SPL_TEXT_BASE);
asm volatile("ldr pc, =nand_boot");
}
#endif
diff --git a/board/karo/tx25/tx25.c b/board/karo/tx25/tx25.c
index 69ee590e26..85719a0204 100644
--- a/board/karo/tx25/tx25.c
+++ b/board/karo/tx25/tx25.c
@@ -36,7 +36,7 @@ DECLARE_GLOBAL_DATA_PTR;
#ifdef CONFIG_SPL_BUILD
void board_init_f(ulong bootflag)
{
- relocate_code(0, NULL, CONFIG_SPL_TEXT_BASE);
+ relocate_code(CONFIG_SPL_TEXT_BASE);
asm volatile("ldr pc, =nand_boot");
}
#endif
diff --git a/board/samsung/smdk6400/smdk6400_nand_spl.c b/board/samsung/smdk6400/smdk6400_nand_spl.c
index a02328497d..26a6146bfd 100644
--- a/board/samsung/smdk6400/smdk6400_nand_spl.c
+++ b/board/samsung/smdk6400/smdk6400_nand_spl.c
@@ -32,6 +32,5 @@
void board_init_f(unsigned long bootflag)
{
- relocate_code(CONFIG_SYS_TEXT_BASE - TOTAL_MALLOC_LEN, NULL,
- CONFIG_SYS_TEXT_BASE);
+ relocate_code(CONFIG_SYS_TEXT_BASE);
}
diff --git a/include/common.h b/include/common.h
index 52df70cec6..604176ca82 100644
--- a/include/common.h
+++ b/include/common.h
@@ -530,11 +530,11 @@ int dcache_status (void);
void dcache_enable (void);
void dcache_disable(void);
void mmu_disable(void);
-void relocate_code(ulong, gd_t *, ulong)
-#if !defined(CONFIG_ARM)
-__attribute__ ((noreturn))
+#if defined(CONFIG_ARM)
+void relocate_code(ulong);
+#else
+void relocate_code(ulong, gd_t *, ulong) __attribute__ ((noreturn));
#endif
-;
ulong get_endaddr (void);
void trap_init (ulong);
#if defined (CONFIG_4xx) || \