summaryrefslogtreecommitdiff
path: root/arch/i386/cpu/start.S
diff options
context:
space:
mode:
authorGraeme Russ <graeme.russ@gmail.com>2010-10-07 20:03:27 +1100
committerGraeme Russ <graeme.russ@gmail.com>2010-10-07 20:03:27 +1100
commit88fa0a6eb906b532cd073b6e3d8f688c47404709 (patch)
tree051370dd80becb73110138d0eb39a0767bbb83a8 /arch/i386/cpu/start.S
parent00940a229d564044d52a5449bce14090c7298f92 (diff)
x86: Remove usage of %ebp as a return pointer
Using %ebp as a return pointer prevents creating 'load anywhere' images
Diffstat (limited to 'arch/i386/cpu/start.S')
-rw-r--r--arch/i386/cpu/start.S12
1 files changed, 6 insertions, 6 deletions
diff --git a/arch/i386/cpu/start.S b/arch/i386/cpu/start.S
index 819274f050..551965f42e 100644
--- a/arch/i386/cpu/start.S
+++ b/arch/i386/cpu/start.S
@@ -1,7 +1,7 @@
/*
* U-boot - i386 Startup Code
*
- * Copyright (c) 2002 Omicron Ceti AB, Daniel Engström <denaiel@omicron.se>
+ * Copyright (c) 2002 Omicron Ceti AB, Daniel Engstr�m <denaiel@omicron.se>
*
* See file CREDITS for list of people who contributed to this
* project.
@@ -79,18 +79,18 @@ _start:
* to store the return address */
/* Early platform init (setup gpio, etc ) */
- mov $early_board_init_ret, %ebp
jmp early_board_init
+.globl early_board_init_ret
early_board_init_ret:
/* size memory */
- mov $mem_init_ret, %ebp
jmp mem_init
+.globl mem_init_ret
mem_init_ret:
/* fetch memory size (into %eax) */
- mov $get_mem_size_ret, %ebp
jmp get_mem_size
+.globl get_mem_size_ret
get_mem_size_ret:
#if CONFIG_SYS_SDRAM_ECC_ENABLE
@@ -98,9 +98,9 @@ get_mem_size_ret:
movl %ebx, %ecx
andl $GD_FLG_COLD_BOOT, %ecx
jz init_ecc_ret
- mov $init_ecc_ret, %ebp
jmp init_ecc
+.globl init_ecc_ret
init_ecc_ret:
#endif
@@ -116,7 +116,7 @@ mem_ok:
pushl $0
popl %eax
cmpl $0, %eax
- jne no_stack
+ jne die
push $0x55aa55aa
popl %ebx
cmpl $0x55aa55aa, %ebx