linux-mips
[Top] [All Lists]

Re: PNX8550 Broken on Linux 2.6.24 - Interrupt issues?

To: Ralf Baechle <ralf@linux-mips.org>
Subject: Re: PNX8550 Broken on Linux 2.6.24 - Interrupt issues?
From: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Date: Fri, 29 Feb 2008 18:41:44 +0300
Cc: Daniel Laird <daniel.j.laird@nxp.com>, linux-mips@linux-mips.org
In-reply-to: <20080228222638.GB25013@linux-mips.org>
Organization: MontaVista Software Inc.
Original-recipient: rfc822;linux-mips@linux-mips.org
References: <64660ef00802280457i3eef020chd70f85c011c5a770@mail.gmail.com> <20080228222638.GB25013@linux-mips.org>
Sender: linux-mips-bounce@linux-mips.org
User-agent: Mozilla/5.0 (X11; U; Linux i686; rv:1.7.2) Gecko/20040803
Hello.

Ralf Baechle wrote:

I have been happily using Linux 2.6.22.1 for ages on PNX8550 (STB810).
I have recently decided to step up and move onto Linux 2.6.24 series.
However I am not getting very far. :-(

Heh, Daniel, you're not alone -- the Alchemy code got much more breakage before 2.6.24... :-)

The board crashes as soon as local_irq_enable is called in main.c

I was wondering if anyone out there might also be running on an
STB810/JBS PNX8550 based system and have any ideas as to why I am
crashing.
I know that PNX8550 does not enable the R4K Clock source stuff as the
chip is a bit 'special' and requires the two timers to be used instead
of one.

csrc-r4k.c and cevt-r4k.c assume a standard compliant R4000-style
c0_count and c0_compare register.  The PNX chips violate the expected
behaviour badly so can't use these functions.

But that's not very much of a problem.  The timer code is module and
it is easy to write something like csrc-pnx.c and cevt-pnx.c to drive
a PNX style count/compare timer.

The PNX counter 0 can still be used as the standards clocksource with some ad-hockery (setting comparator to all ones and hooking the interrupt to clear it) but Vitaly went another way using counter 1 for clocksource, and counter 0 as clockevent...

Will look over the code to see if I can spot what crashes the PNXes.

  Ralf

WBR, Sergei

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