microblaze: Do not use PVR configuration for broken MB version
Signed-off-by: Michal Simek <monstr@monstr.eu>
This commit is contained in:
@@ -30,6 +30,13 @@ void set_cpuinfo_pvr_full(struct cpuinfo *ci, struct device_node *cpu)
|
|||||||
int temp; /* for saving temp value */
|
int temp; /* for saving temp value */
|
||||||
get_pvr(&pvr);
|
get_pvr(&pvr);
|
||||||
|
|
||||||
|
CI(ver_code, VERSION);
|
||||||
|
if (!ci->ver_code) {
|
||||||
|
printk(KERN_ERR "ERROR: MB has broken PVR regs "
|
||||||
|
"-> use DTS setting\n");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
temp = PVR_USE_BARREL(pvr) | PVR_USE_MSR_INSTR(pvr) |\
|
temp = PVR_USE_BARREL(pvr) | PVR_USE_MSR_INSTR(pvr) |\
|
||||||
PVR_USE_PCMP_INSTR(pvr) | PVR_USE_DIV(pvr);
|
PVR_USE_PCMP_INSTR(pvr) | PVR_USE_DIV(pvr);
|
||||||
if (ci->use_instr != temp)
|
if (ci->use_instr != temp)
|
||||||
@@ -60,8 +67,6 @@ void set_cpuinfo_pvr_full(struct cpuinfo *ci, struct device_node *cpu)
|
|||||||
|
|
||||||
CI(mmu, USE_MMU);
|
CI(mmu, USE_MMU);
|
||||||
|
|
||||||
CI(ver_code, VERSION);
|
|
||||||
|
|
||||||
CI(use_icache, USE_ICACHE);
|
CI(use_icache, USE_ICACHE);
|
||||||
CI(icache_tagbits, ICACHE_ADDR_TAG_BITS);
|
CI(icache_tagbits, ICACHE_ADDR_TAG_BITS);
|
||||||
CI(icache_write, ICACHE_ALLOW_WR);
|
CI(icache_write, ICACHE_ALLOW_WR);
|
||||||
|
@@ -71,7 +71,7 @@ void __init setup_cpuinfo(void)
|
|||||||
__func__);
|
__func__);
|
||||||
set_cpuinfo_static(&cpuinfo, cpu);
|
set_cpuinfo_static(&cpuinfo, cpu);
|
||||||
break;
|
break;
|
||||||
/* FIXME I found weird behavior with MB 7.00.a/b
|
/* FIXME I found weird behavior with MB 7.00.a/b 7.10.a
|
||||||
* please do not use FULL PVR with MMU */
|
* please do not use FULL PVR with MMU */
|
||||||
case 1:
|
case 1:
|
||||||
printk(KERN_INFO "%s: Using full CPU PVR support\n",
|
printk(KERN_INFO "%s: Using full CPU PVR support\n",
|
||||||
|
Reference in New Issue
Block a user