diff options
| author | Jeroen Hofstee <jeroen@myspectrum.nl> | 2013-09-21 14:04:41 +0200 | 
|---|---|---|
| committer | Albert ARIBAUD <albert.u.boot@aribaud.net> | 2013-09-23 18:00:02 +0200 | 
| commit | fe1378a961e508b31b1f29a2bb08ba1dac063155 (patch) | |
| tree | 83fdb3942c96af386587a5fe1d58f734cfe2e670 | |
| parent | a81872ff27bb66578ae515ec5079cf191656b1c1 (diff) | |
| download | olio-uboot-2014.01-fe1378a961e508b31b1f29a2bb08ba1dac063155.tar.xz olio-uboot-2014.01-fe1378a961e508b31b1f29a2bb08ba1dac063155.zip | |
ARM: use r9 for gd
To be more EABI compliant and as a preparation for building
with clang, use the platform-specific r9 register for gd
instead of r8.
note: The FIQ is not updated since it is not used in u-boot,
and under discussion for the time being.
The following checkpatch warning is ignored:
WARNING: Use of volatile is usually wrong: see
Documentation/volatile-considered-harmful.txt
Signed-off-by: Jeroen Hofstee <jeroen@myspectrum.nl>
cc: Albert ARIBAUD <albert.u.boot@aribaud.net>
| -rw-r--r-- | arch/arm/config.mk | 2 | ||||
| -rw-r--r-- | arch/arm/cpu/armv7/lowlevel_init.S | 4 | ||||
| -rw-r--r-- | arch/arm/include/asm/global_data.h | 2 | ||||
| -rw-r--r-- | arch/arm/lib/crt0.S | 16 | 
4 files changed, 12 insertions, 12 deletions
| diff --git a/arch/arm/config.mk b/arch/arm/config.mk index 16c2e3d1e..d0cf43ff4 100644 --- a/arch/arm/config.mk +++ b/arch/arm/config.mk @@ -17,7 +17,7 @@ endif  LDFLAGS_FINAL += --gc-sections  PLATFORM_RELFLAGS += -ffunction-sections -fdata-sections \ -                     -fno-common -ffixed-r8 -msoft-float +                     -fno-common -ffixed-r9 -msoft-float  # Support generic board on ARM  __HAVE_ARCH_GENERIC_BOARD := y diff --git a/arch/arm/cpu/armv7/lowlevel_init.S b/arch/arm/cpu/armv7/lowlevel_init.S index 82b2b8652..69e3053a4 100644 --- a/arch/arm/cpu/armv7/lowlevel_init.S +++ b/arch/arm/cpu/armv7/lowlevel_init.S @@ -22,11 +22,11 @@ ENTRY(lowlevel_init)  	ldr	sp, =CONFIG_SYS_INIT_SP_ADDR  	bic	sp, sp, #7 /* 8-byte alignment for ABI compliance */  #ifdef CONFIG_SPL_BUILD -	ldr	r8, =gdata +	ldr	r9, =gdata  #else  	sub	sp, #GD_SIZE  	bic	sp, sp, #7 -	mov	r8, sp +	mov	r9, sp  #endif  	/*  	 * Save the old lr(passed in ip) and the current lr to stack diff --git a/arch/arm/include/asm/global_data.h b/arch/arm/include/asm/global_data.h index 79a959741..e12643609 100644 --- a/arch/arm/include/asm/global_data.h +++ b/arch/arm/include/asm/global_data.h @@ -47,6 +47,6 @@ struct arch_global_data {  #include <asm-generic/global_data.h> -#define DECLARE_GLOBAL_DATA_PTR     register volatile gd_t *gd asm ("r8") +#define DECLARE_GLOBAL_DATA_PTR     register volatile gd_t *gd asm ("r9")  #endif /* __ASM_GBL_DATA_H */ diff --git a/arch/arm/lib/crt0.S b/arch/arm/lib/crt0.S index 960d12e73..ac54b9359 100644 --- a/arch/arm/lib/crt0.S +++ b/arch/arm/lib/crt0.S @@ -69,7 +69,7 @@ ENTRY(_main)  	bic	sp, sp, #7	/* 8-byte alignment for ABI compliance */  	sub	sp, #GD_SIZE	/* allocate one GD above SP */  	bic	sp, sp, #7	/* 8-byte alignment for ABI compliance */ -	mov	r8, sp		/* GD is above SP */ +	mov	r9, sp		/* GD is above SP */  	mov	r0, #0  	bl	board_init_f @@ -81,15 +81,15 @@ ENTRY(_main)   * 'here' but relocated.   */ -	ldr	sp, [r8, #GD_START_ADDR_SP]	/* sp = gd->start_addr_sp */ +	ldr	sp, [r9, #GD_START_ADDR_SP]	/* sp = gd->start_addr_sp */  	bic	sp, sp, #7	/* 8-byte alignment for ABI compliance */ -	ldr	r8, [r8, #GD_BD]		/* r8 = gd->bd */ -	sub	r8, r8, #GD_SIZE		/* new GD is below bd */ +	ldr	r9, [r9, #GD_BD]		/* r9 = gd->bd */ +	sub	r9, r9, #GD_SIZE		/* new GD is below bd */  	adr	lr, here -	ldr	r0, [r8, #GD_RELOC_OFF]		/* r0 = gd->reloc_off */ +	ldr	r0, [r9, #GD_RELOC_OFF]		/* r0 = gd->reloc_off */  	add	lr, lr, r0 -	ldr	r0, [r8, #GD_RELOCADDR]		/* r0 = gd->relocaddr */ +	ldr	r0, [r9, #GD_RELOCADDR]		/* r0 = gd->relocaddr */  	b	relocate_code  here: @@ -111,8 +111,8 @@ clbss_l:cmp	r0, r1			/* while not at end of BSS */  	bl red_led_on  	/* call board_init_r(gd_t *id, ulong dest_addr) */ -	mov	r0, r8			/* gd_t */ -	ldr	r1, [r8, #GD_RELOCADDR]	/* dest_addr */ +	mov     r0, r9                  /* gd_t */ +	ldr	r1, [r9, #GD_RELOCADDR]	/* dest_addr */  	/* call board_init_r */  	ldr	pc, =board_init_r	/* this is auto-relocated! */ |