diff options
Diffstat (limited to 'arch/arm/cpu/s3c44b0/start.S')
| -rw-r--r-- | arch/arm/cpu/s3c44b0/start.S | 92 | 
1 files changed, 2 insertions, 90 deletions
| diff --git a/arch/arm/cpu/s3c44b0/start.S b/arch/arm/cpu/s3c44b0/start.S index 20091b24c..67b2c6a69 100644 --- a/arch/arm/cpu/s3c44b0/start.S +++ b/arch/arm/cpu/s3c44b0/start.S @@ -27,11 +27,10 @@   * MA 02111-1307 USA   */ - +#include <asm-offsets.h>  #include <config.h>  #include <version.h> -  /*   * Jump vector table   */ @@ -67,12 +66,6 @@ _start:	b       reset  _TEXT_BASE:  	.word	CONFIG_SYS_TEXT_BASE -#if defined(CONFIG_SYS_ARM_WITHOUT_RELOC) -.globl _armboot_start -_armboot_start: -	.word _start -#endif -  /*   * These are defined in the board-specific linker script.   */ @@ -96,7 +89,6 @@ FIQ_STACK_START:  	.word 0x0badc0de  #endif -#if !defined(CONFIG_SYS_ARM_WITHOUT_RELOC)  /* IRQ stack memory (calculated at run-time) + 8 bytes */  .globl IRQ_STACK_START_IN  IRQ_STACK_START_IN: @@ -187,7 +179,6 @@ stack_setup:  	cmp	r0, r6  	beq	clear_bss -#ifndef CONFIG_SKIP_RELOCATE_UBOOT  copy_loop:  	ldmia	r0!, {r9-r10}		/* copy from source address [r0]    */  	stmia	r6!, {r9-r10}		/* copy to   target address [r1]    */ @@ -212,7 +203,7 @@ fixloop:  	str	r4, [r2]  	add	r2, r2, #4  	cmp	r2, r3 -	bne	fixloop +	blo	fixloop  #endif  /*  	now copy to sram the interrupt vector @@ -226,7 +217,6 @@ vector_copy_loop:  	stmia	r1!, {r3-r10}  	cmp	r0, r2  	blo	vector_copy_loop -#endif	/* #ifndef CONFIG_SKIP_RELOCATE_UBOOT */  clear_bss:  #ifndef CONFIG_PRELOADER @@ -266,84 +256,6 @@ clbss_l:str	r2, [r0]		/* clear loop...		    */  _board_init_r: .word board_init_r -#else /* #if !defined(CONFIG_SYS_ARM_WITHOUT_RELOC) */ -/* - * the actual reset code - */ - -reset: -	/* -	 * set the cpu to SVC32 mode -	 */ -	mrs	r0,cpsr -	bic	r0,r0,#0x1f -	orr	r0,r0,#0x13 -	msr	cpsr,r0 - -	/* -	 * we do sys-critical inits only at reboot, -	 * not when booting from ram! -	 */ - -#ifndef CONFIG_SKIP_LOWLEVEL_INIT -	bl	cpu_init_crit -	/* -	 * before relocating, we have to setup RAM timing -	 * because memory timing is board-dependend, you will -	 * find a lowlevel_init.S in your board directory. -	 */ -	bl	lowlevel_init -#endif - -#ifndef CONFIG_SKIP_RELOCATE_UBOOT -relocate:				/* relocate U-Boot to RAM	    */ -	adr	r0, _start		/* r0 <- current position of code   */ -	ldr	r1, _TEXT_BASE		/* test if we run from flash or RAM */ -	cmp     r0, r1                  /* don't reloc during debug         */ -	beq     stack_setup - -	ldr	r2, _armboot_start -	ldr	r3, _bss_start -	sub	r2, r3, r2		/* r2 <- size of armboot            */ -	add	r2, r0, r2		/* r2 <- source end address         */ - -copy_loop: -	ldmia	r0!, {r3-r10}		/* copy from source address [r0]    */ -	stmia	r1!, {r3-r10}		/* copy to   target address [r1]    */ -	cmp	r0, r2			/* until source end address [r2]    */ -	blo	copy_loop - -/* -	now copy to sram the interrupt vector -*/ -	adr	r0, real_vectors -	add	r2, r0, #1024 -	ldr	r1, =0x0c000000 -	add	r1, r1, #0x08 -vector_copy_loop: -	ldmia	r0!, {r3-r10} -	stmia	r1!, {r3-r10} -	cmp	r0, r2 -	blo	vector_copy_loop -#endif	/* CONFIG_SKIP_RELOCATE_UBOOT */ - -	/* Set up the stack						    */ -stack_setup: -	ldr	r0, _TEXT_BASE		/* upper 128 KiB: relocated uboot   */ -	sub	r0, r0, #CONFIG_SYS_MALLOC_LEN	/* malloc area                      */ -	sub	r0, r0, #CONFIG_SYS_GBL_DATA_SIZE /* bdinfo                        */ -#ifdef CONFIG_USE_IRQ -	sub	r0, r0, #(CONFIG_STACKSIZE_IRQ+CONFIG_STACKSIZE_FIQ) -#endif -	sub	sp, r0, #12		/* leave 3 words for abort-stack    */ -	bic	sp, sp, #7		/* 8-byte alignment for ABI compliance */ - -	ldr	pc, _start_armboot - -_start_armboot:	.word start_armboot - -#endif /* #if !defined(CONFIG_SYS_ARM_WITHOUT_RELOC) */ -  /*   *************************************************************************   * |