linux-mips
[Top] [All Lists]

Re: CPU hang on cpu_wait in CPU_74K

To: Rafał Miłecki <zajec5@gmail.com>
Subject: Re: CPU hang on cpu_wait in CPU_74K
From: Hauke Mehrtens <hauke@hauke-m.de>
Date: Sun, 03 Feb 2013 12:35:21 +0100
Cc: linux-mips@linux-mips.org
In-reply-to: <CACna6rxU3LX+PBgyddMqGtM4=_zvzLZMehB1W1PwN36ZUwF3sA@mail.gmail.com>
List-archive: <http://www.linux-mips.org/archives/linux-mips/>
List-help: <mailto:ecartis@linux-mips.org?Subject=help>
List-id: linux-mips <linux-mips.eddie.linux-mips.org>
List-owner: <mailto:ralf@linux-mips.org>
List-post: <mailto:linux-mips@linux-mips.org>
List-software: Ecartis version 1.0.0
List-subscribe: <mailto:ecartis@linux-mips.org?subject=subscribe%20linux-mips>
List-unsubscribe: <mailto:ecartis@linux-mips.org?subject=unsubscribe%20linux-mips>
References: <CACna6rxU3LX+PBgyddMqGtM4=_zvzLZMehB1W1PwN36ZUwF3sA@mail.gmail.com>
Sender: linux-mips-bounce@linux-mips.org
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130106 Thunderbird/17.0.2
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:
>> 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 the
>> c->processor_id & 0xff
> on my machine, but I've tried forcing both:
>> cpu_wait = r4k_wait;
> and
>> 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

<Prev in Thread] Current Thread [Next in Thread>