diff options
author | Michal Simek <monstr@monstr.eu> | 2009-04-21 08:06:08 -0400 |
---|---|---|
committer | Michal Simek <monstr@monstr.eu> | 2009-04-23 10:27:28 -0400 |
commit | fbeda67782689bf80109512b16ac47264a282d01 (patch) | |
tree | 0e2e375116144d1e65b26bad3c94b5a956e115e2 | |
parent | 79533fd4cb7c261694d3b7d5bdde78836bc35b49 (diff) |
microblaze: Do not use PVR configuration for broken MB version
Signed-off-by: Michal Simek <monstr@monstr.eu>
-rw-r--r-- | arch/microblaze/kernel/cpu/cpuinfo-pvr-full.c | 9 | ||||
-rw-r--r-- | arch/microblaze/kernel/cpu/cpuinfo.c | 2 |
2 files changed, 8 insertions, 3 deletions
diff --git a/arch/microblaze/kernel/cpu/cpuinfo-pvr-full.c b/arch/microblaze/kernel/cpu/cpuinfo-pvr-full.c index cf7424a6bb87..153f57c57b6d 100644 --- a/arch/microblaze/kernel/cpu/cpuinfo-pvr-full.c +++ b/arch/microblaze/kernel/cpu/cpuinfo-pvr-full.c | |||
@@ -30,6 +30,13 @@ void set_cpuinfo_pvr_full(struct cpuinfo *ci, struct device_node *cpu) | |||
30 | int temp; /* for saving temp value */ | 30 | int temp; /* for saving temp value */ |
31 | get_pvr(&pvr); | 31 | get_pvr(&pvr); |
32 | 32 | ||
33 | CI(ver_code, VERSION); | ||
34 | if (!ci->ver_code) { | ||
35 | printk(KERN_ERR "ERROR: MB has broken PVR regs " | ||
36 | "-> use DTS setting\n"); | ||
37 | return; | ||
38 | } | ||
39 | |||
33 | temp = PVR_USE_BARREL(pvr) | PVR_USE_MSR_INSTR(pvr) |\ | 40 | temp = PVR_USE_BARREL(pvr) | PVR_USE_MSR_INSTR(pvr) |\ |
34 | PVR_USE_PCMP_INSTR(pvr) | PVR_USE_DIV(pvr); | 41 | PVR_USE_PCMP_INSTR(pvr) | PVR_USE_DIV(pvr); |
35 | if (ci->use_instr != temp) | 42 | if (ci->use_instr != temp) |
@@ -60,8 +67,6 @@ void set_cpuinfo_pvr_full(struct cpuinfo *ci, struct device_node *cpu) | |||
60 | 67 | ||
61 | CI(mmu, USE_MMU); | 68 | CI(mmu, USE_MMU); |
62 | 69 | ||
63 | CI(ver_code, VERSION); | ||
64 | |||
65 | CI(use_icache, USE_ICACHE); | 70 | CI(use_icache, USE_ICACHE); |
66 | CI(icache_tagbits, ICACHE_ADDR_TAG_BITS); | 71 | CI(icache_tagbits, ICACHE_ADDR_TAG_BITS); |
67 | CI(icache_write, ICACHE_ALLOW_WR); | 72 | CI(icache_write, ICACHE_ALLOW_WR); |
diff --git a/arch/microblaze/kernel/cpu/cpuinfo.c b/arch/microblaze/kernel/cpu/cpuinfo.c index 4a740dfcf6da..a10bea119b94 100644 --- a/arch/microblaze/kernel/cpu/cpuinfo.c +++ b/arch/microblaze/kernel/cpu/cpuinfo.c | |||
@@ -71,7 +71,7 @@ void __init setup_cpuinfo(void) | |||
71 | __func__); | 71 | __func__); |
72 | set_cpuinfo_static(&cpuinfo, cpu); | 72 | set_cpuinfo_static(&cpuinfo, cpu); |
73 | break; | 73 | break; |
74 | /* FIXME I found weird behavior with MB 7.00.a/b | 74 | /* FIXME I found weird behavior with MB 7.00.a/b 7.10.a |
75 | * please do not use FULL PVR with MMU */ | 75 | * please do not use FULL PVR with MMU */ |
76 | case 1: | 76 | case 1: |
77 | printk(KERN_INFO "%s: Using full CPU PVR support\n", | 77 | printk(KERN_INFO "%s: Using full CPU PVR support\n", |