Re: CPU hang on cpu_wait in CPU_74K
From: Hauke Mehrtens <hauke@hauke-m.de>
Date: 2013-02-03 11:35:29
On 02/01/2013 11:44 PM, Rafał Miłecki wrote:
Hello again ;) I'm hacking a BCM4706 based board which uses a 74K CPU. The problem is that wait_cpu (see cpu-probe.c) hangs my machine (is happens as soon as the first [um]sleep is called). The hang is related to the cpu-probe.c and:quoted
cpu_wait = r4k_wait; if ((c->processor_id & 0xff) >= PRID_REV_ENCODE_332(2, 1, 0)) cpu_wait = r4k_wait_irqoff;If I remove that lines completely [um]sleep doesn't hang machine anymore. I'm not sure if removing that code is a proper solution. I'm not sure what is thequoted
c->processor_id & 0xffon my machine, but I've tried forcing both:quoted
cpu_wait = r4k_wait;andquoted
cpu_wait = r4k_wait_irqoff;and both are causing hangs. If I recall correctly, Hauke was checking Broadcom's code and they're using the same solution: removing that lines completely. Do you have any idea how this could be solved?
Hello Rafał, In the Linux kernel form the Broadcom SDK the lines you mentioned are removed, but we can not do this in the mainline kernel as this would also affect some other non broken Broadcom MIPS CPUs. I talked about this with Ralf some days ago and he said we should add cpu_wait = NULL; somewhere in the platform specific code. This problem seams to just affect the 74K CPU used on the BCM4706 and not on the other Broadcom SoC using a 74K CPU. Hauke