[U-Boot] [PATCH][v1] ppc/85xx, 86xx: Handling Unknown SOC version

Wolfgang Denk wd at denx.de
Wed Sep 2 09:32:44 CEST 2009


Dear Poonam Aggrwal,

In message <1251864186-11732-1-git-send-email-poonam.aggrwal at freescale.com> you wrote:
> Incase the system is detected with Unknown SVR, let the system boot
> with a default value and a proper message.
> Now with dynamic detection of SOC properties from SVR, this is necessary
> to prevent a crash. 
> 
> Signed-off-by: Poonam Aggrwal <poonam.aggrwal at freescale.com>
> Signed-off-by: Kumar Gala <galak at kernel.crashing.org>
> ---
...
> --- a/cpu/mpc8xxx/cpu.c
> +++ b/cpu/mpc8xxx/cpu.c
> @@ -77,6 +77,7 @@ struct cpu_type cpu_type_list [] = {
>  	CPU_TYPE_ENTRY(8641, 8641, 2),
>  	CPU_TYPE_ENTRY(8641D, 8641D, 2),
>  #endif
> +	CPU_TYPE_ENTRY(Unknown, Unknown, 1),
>  };
>  
>  struct cpu_type *identify_cpu(u32 ver)
> @@ -86,8 +87,7 @@ struct cpu_type *identify_cpu(u32 ver)
>  		if (cpu_type_list[i].soc_ver == ver)
>  			return &cpu_type_list[i];
>  	}
> -
> -	return NULL;
> +	return &cpu_type_list[i-1];

This looks unlogical to me. First, with this change you should change
the 'for' loop into

	for (i = 0; i < ARRAY_SIZE(cpu_type_list) - 1; i++) {
		...
	}

But all this makes the code just harder to read and understand.

Why not add a separate

	struct cpu_type cpu_type_unknown = CPU_TYPE_ENTRY(Unknown, Unknown, 1);

and then do a simple

	return &cpu_type_unknown;

?

> diff --git a/include/asm-ppc/processor.h b/include/asm-ppc/processor.h
> index dcaf8c0..9b27634 100644
> --- a/include/asm-ppc/processor.h
> +++ b/include/asm-ppc/processor.h
> @@ -1022,6 +1022,8 @@
>  #define SVR_8641	0x809000
>  #define SVR_8641D	0x809001
>  
> +#define SVR_Unknown	0x000000

Is this a good and reliable choice? I don't know the rules for SVR
contents... Maybe 0xFFFFFF would be better?

Best regards,

Wolfgang Denk

-- 
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
"Intelligence without character is a dangerous thing."   - G. Steinem


More information about the U-Boot mailing list