diff options
author | Poonam Aggrwal <poonam.aggrwal@freescale.com> | 2009-09-02 13:35:21 +0530 |
---|---|---|
committer | Kumar Gala <galak@kernel.crashing.org> | 2009-09-08 09:10:08 -0500 |
commit | 58442dc01e47cc8ce42af4f29486a34cad60b9d2 (patch) | |
tree | c89902a6131b557e2d64cd3be9854e845f24ae6c | |
parent | 3e7b6c1f2db5ec31f9e7dbc3e0cbca602167a46a (diff) | |
download | u-boot-58442dc01e47cc8ce42af4f29486a34cad60b9d2.zip u-boot-58442dc01e47cc8ce42af4f29486a34cad60b9d2.tar.gz u-boot-58442dc01e47cc8ce42af4f29486a34cad60b9d2.tar.bz2 |
ppc/85xx,86xx: Handling Unknown SOC version
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@freescale.com>
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
-rw-r--r-- | cpu/mpc85xx/cpu.c | 10 | ||||
-rw-r--r-- | cpu/mpc86xx/cpu.c | 5 | ||||
-rw-r--r-- | cpu/mpc8xxx/cpu.c | 5 | ||||
-rw-r--r-- | include/asm-ppc/processor.h | 2 |
4 files changed, 9 insertions, 13 deletions
diff --git a/cpu/mpc85xx/cpu.c b/cpu/mpc85xx/cpu.c index 6be98dc..63bdb6f 100644 --- a/cpu/mpc85xx/cpu.c +++ b/cpu/mpc85xx/cpu.c @@ -69,13 +69,9 @@ int checkcpu (void) cpu = gd->cpu; - if (cpu->name) { - puts(cpu->name); - if (IS_E_PROCESSOR(svr)) - puts("E"); - } else { - puts("Unknown"); - } + puts(cpu->name); + if (IS_E_PROCESSOR(svr)) + puts("E"); printf(", Version: %d.%d, (0x%08x)\n", major, minor, svr); diff --git a/cpu/mpc86xx/cpu.c b/cpu/mpc86xx/cpu.c index 04409ce..e97ab6d 100644 --- a/cpu/mpc86xx/cpu.c +++ b/cpu/mpc86xx/cpu.c @@ -65,10 +65,7 @@ checkcpu(void) cpu = gd->cpu; - if (cpu->name) - puts(cpu->name); - else - puts("Unknown"); + puts(cpu->name); printf(", Version: %d.%d, (0x%08x)\n", major, minor, svr); puts("Core: "); diff --git a/cpu/mpc8xxx/cpu.c b/cpu/mpc8xxx/cpu.c index 339f6d9..c73ac3c 100644 --- a/cpu/mpc8xxx/cpu.c +++ b/cpu/mpc8xxx/cpu.c @@ -79,6 +79,8 @@ struct cpu_type cpu_type_list [] = { #endif }; +struct cpu_type cpu_type_unknown = CPU_TYPE_ENTRY(Unknown, Unknown, 1); + struct cpu_type *identify_cpu(u32 ver) { int i; @@ -86,8 +88,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_unknown; } int cpu_numcores() { diff --git a/include/asm-ppc/processor.h b/include/asm-ppc/processor.h index 78ef418..0a4c66c 100644 --- a/include/asm-ppc/processor.h +++ b/include/asm-ppc/processor.h @@ -1034,6 +1034,8 @@ #define SVR_8641 0x809000 #define SVR_8641D 0x809001 +#define SVR_Unknown 0xFFFFFF + #define _GLOBAL(n)\ .globl n;\ n: |