[PATCH 1/1] ppc reloc.S: use a common trap relocation function

Sascha Hauer s.hauer at pengutronix.de
Fri May 11 03:07:08 EDT 2012


On Thu, May 10, 2012 at 02:56:46PM +0100, Renaud Barbier wrote:
> The trap relocation function trap_reloc can be used across several PPC
> platforms and is added to the ppc library. Accordingly, the definition
> of trap_reloc is removed from mach-mpc5xxx/start.S
> 
> Signed-off-by: Renaud Barbier <renaud.barbier at ge.com>

Applied, thanks

Sascha

> ---
>  arch/ppc/lib/Makefile         |    1 +
>  arch/ppc/lib/reloc.S          |   47 +++++++++++++++++++++++++++++++++++++++++
>  arch/ppc/mach-mpc5xxx/start.S |   14 ------------
>  3 files changed, 48 insertions(+), 14 deletions(-)
>  create mode 100644 arch/ppc/lib/reloc.S
> 
> diff --git a/arch/ppc/lib/Makefile b/arch/ppc/lib/Makefile
> index 0f5e017..ba2f078 100644
> --- a/arch/ppc/lib/Makefile
> +++ b/arch/ppc/lib/Makefile
> @@ -8,4 +8,5 @@ obj-y += misc.o
>  obj-$(CONFIG_CMD_BOOTM) += ppclinux.o
>  obj-$(CONFIG_MODULES) += module.o
>  obj-y += crtsavres.o
> +obj-y += reloc.o
>  
> diff --git a/arch/ppc/lib/reloc.S b/arch/ppc/lib/reloc.S
> new file mode 100644
> index 0000000..92ee189
> --- /dev/null
> +++ b/arch/ppc/lib/reloc.S
> @@ -0,0 +1,47 @@
> +/*
> + * Copyright (C) 2009 Wolfgang Denk <wd at denx.de>
> + *
> + * See file CREDITS for list of people who contributed to this
> + * project.
> + *
> + * This program is free software; you can redistribute it and/or
> + * modify it under the terms of the GNU General Public License as
> + * published by the Free Software Foundation; either version 2 of
> + * the License, or (at your option) any later version.
> + *
> + * This program is distributed in the hope that it will be useful,
> + * but WITHOUT ANY WARRANTY; without even the implied warranty of
> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> + * GNU General Public License for more details.
> + *
> + * You should have received a copy of the GNU General Public License
> + * along with this program; if not, write to the Free Software
> + * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
> + * MA 02111-1307 USA
> + */
> +
> +#include <asm/ppc_asm.tmpl>
> +
> +	.file	"reloc.S"
> +
> +	.text
> +	/*
> +	 * Function: relocate entries for one exception vector
> +	 */
> +	.globl trap_reloc
> +	.type	trap_reloc, @function
> +trap_reloc:
> +	lwz	r0, 0(r7)		/* hdlr ...		*/
> +	add	r0, r0, r3		/*  ... += dest_addr	*/
> +	stw	r0, 0(r7)
> +
> +	lwz	r0, 4(r7)		/* int_return ...	*/
> +	add	r0, r0, r3		/*  ... += dest_addr	*/
> +	stw	r0, 4(r7)
> +
> +	lwz	r0, 8(r7)		/* transfer_to_handler ...*/
> +	add	r0, r0, r3		/*  ... += dest_addr	*/
> +	stw	r0, 8(r7)
> +
> +	blr
> +	.size	trap_reloc, .-trap_reloc
> diff --git a/arch/ppc/mach-mpc5xxx/start.S b/arch/ppc/mach-mpc5xxx/start.S
> index e098a87..04e8fe3 100644
> --- a/arch/ppc/mach-mpc5xxx/start.S
> +++ b/arch/ppc/mach-mpc5xxx/start.S
> @@ -726,20 +726,6 @@ trap_init:
>  	mtlr	r4			/* restore link register    */
>  	blr
>  
> -	/*
> -	 * Function: relocate entries for one exception vector
> -	 */
> -trap_reloc:
> -	lwz	r0, 0(r7)		/* hdlr ...			*/
> -	add	r0, r0, r3		/*  ... += dest_addr		*/
> -	stw	r0, 0(r7)
> -
> -	lwz	r0, 4(r7)		/* int_return ...		*/
> -	add	r0, r0, r3		/*  ... += dest_addr		*/
> -	stw	r0, 4(r7)
> -
> -	blr
> -
>  .globl _text_base
>  _text_base:
>  	.long TEXT_BASE
> -- 
> 1.7.1
> 
> 
> _______________________________________________
> barebox mailing list
> barebox at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/barebox
> 

-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |



More information about the barebox mailing list