[PATCH 1/5] [POWERPC] Add AMCC 460EX/460GT support to cputable.c & cpu_setup_44x.S

Benjamin Herrenschmidt benh at kernel.crashing.org
Fri Feb 22 17:23:33 EST 2008


On Thu, 2008-02-21 at 15:00 +0100, Stefan Roese wrote:
> Signed-off-by: Stefan Roese <sr at denx.de>

Ack.

> ---
>  arch/powerpc/kernel/cpu_setup_44x.S |    5 ++++-
>  arch/powerpc/kernel/cputable.c      |   28 +++++++++++++++++++++++++++-
>  2 files changed, 31 insertions(+), 2 deletions(-)
> 
> diff --git a/arch/powerpc/kernel/cpu_setup_44x.S b/arch/powerpc/kernel/cpu_setup_44x.S
> index 6250443..5465e8d 100644
> --- a/arch/powerpc/kernel/cpu_setup_44x.S
> +++ b/arch/powerpc/kernel/cpu_setup_44x.S
> @@ -3,7 +3,7 @@
>   * Valentine Barshak <vbarshak at ru.mvista.com>
>   * MontaVista Software, Inc (c) 2007
>   *
> - * Based on cpu_setup_6xx code by 
> + * Based on cpu_setup_6xx code by
>   * Benjamin Herrenschmidt <benh at kernel.crashing.org>
>   *
>   * This program is free software; you can redistribute it and/or
> @@ -32,6 +32,9 @@ _GLOBAL(__setup_cpu_440grx)
>  	bl	__fixup_440A_mcheck
>  	mtlr	r4
>  	blr
> +_GLOBAL(__setup_cpu_460ex)
> +_GLOBAL(__setup_cpu_460gt)
> +	b	__init_fpu_44x
>  _GLOBAL(__setup_cpu_440gx)
>  _GLOBAL(__setup_cpu_440spe)
>  	b	__fixup_440A_mcheck
> diff --git a/arch/powerpc/kernel/cputable.c b/arch/powerpc/kernel/cputable.c
> index 2a8f5cc..26ffb44 100644
> --- a/arch/powerpc/kernel/cputable.c
> +++ b/arch/powerpc/kernel/cputable.c
> @@ -36,6 +36,8 @@ extern void __setup_cpu_440epx(unsigned long offset, struct cpu_spec* spec);
>  extern void __setup_cpu_440gx(unsigned long offset, struct cpu_spec* spec);
>  extern void __setup_cpu_440grx(unsigned long offset, struct cpu_spec* spec);
>  extern void __setup_cpu_440spe(unsigned long offset, struct cpu_spec* spec);
> +extern void __setup_cpu_460ex(unsigned long offset, struct cpu_spec* spec);
> +extern void __setup_cpu_460gt(unsigned long offset, struct cpu_spec* spec);
>  extern void __setup_cpu_603(unsigned long offset, struct cpu_spec* spec);
>  extern void __setup_cpu_604(unsigned long offset, struct cpu_spec* spec);
>  extern void __setup_cpu_750(unsigned long offset, struct cpu_spec* spec);
> @@ -1397,6 +1399,30 @@ static struct cpu_spec __initdata cpu_specs[] = {
>  		.machine_check		= machine_check_440A,
>  		.platform		= "ppc440",
>  	},
> +	{ /* 460EX */
> +		.pvr_mask		= 0xffff0002,
> +		.pvr_value		= 0x13020002,
> +		.cpu_name		= "460EX",
> +		.cpu_features		= CPU_FTRS_44X,
> +		.cpu_user_features	= COMMON_USER_BOOKE | PPC_FEATURE_HAS_FPU,
> +		.icache_bsize		= 32,
> +		.dcache_bsize		= 32,
> +		.cpu_setup		= __setup_cpu_460ex,
> +		.machine_check		= machine_check_440A,
> +		.platform		= "ppc440",
> +	},
> +	{ /* 460GT */
> +		.pvr_mask		= 0xffff0002,
> +		.pvr_value		= 0x13020000,
> +		.cpu_name		= "460GT",
> +		.cpu_features		= CPU_FTRS_44X,
> +		.cpu_user_features	= COMMON_USER_BOOKE | PPC_FEATURE_HAS_FPU,
> +		.icache_bsize		= 32,
> +		.dcache_bsize		= 32,
> +		.cpu_setup		= __setup_cpu_460gt,
> +		.machine_check		= machine_check_440A,
> +		.platform		= "ppc440",
> +	},
>  #endif /* CONFIG_44x */
>  #ifdef CONFIG_FSL_BOOKE
>  #ifdef CONFIG_E200
> @@ -1512,7 +1538,7 @@ struct cpu_spec * __init identify_cpu(unsigned long offset, unsigned int pvr)
>  				*t = *s;
>  			*PTRRELOC(&cur_cpu_spec) = &the_cpu_spec;
>  #if defined(CONFIG_PPC64) || defined(CONFIG_BOOKE)
> -			/* ppc64 and booke expect identify_cpu to also call 
> +			/* ppc64 and booke expect identify_cpu to also call
>  			 * setup_cpu for that processor. I will consolidate
>  			 * that at a later time, for now, just use #ifdef.
>  			 * we also don't need to PTRRELOC the function pointer




More information about the Linuxppc-dev mailing list