PrPMC800 interrupt problem
Tom Rini
trini at kernel.crashing.org
Sat Oct 26 02:00:01 EST 2002
On Fri, Oct 25, 2002 at 05:44:26PM +0200, Anders Blomdell wrote:
> >A very hacky solution to this is to modify 'prpmc800_init_IRQ' to:
> ><snip>
>
> A better solution is perhaps to change openpic_init from
>
> if (NumSources == 0)
> openpic_set_sources(0,
> ((t & OPENPIC_FEATURE_LAST_SOURCE_MASK)
> >>
> OPENPIC_FEATURE_LAST_SOURCE_SHIFT) + 1,
> NULL);
>
> to
>
> if (NumSources == 0) {
> int irqs;
> irqs = ((t & OPENPIC_FEATURE_LAST_SOURCE_MASK) >>
> OPENPIC_FEATURE_LAST_SOURCE_SHIFT) + 1;
> if (irqs < OpenPIC_NumInitSenses) {
> // Some internal interrupt is defined, init it's vector as well
> irqs = OpenPIC_NumInitSenses;
> }
> openpic_set_sources(0, irqs, NULL);
> }
>
> Any insight is welcome! As far as I can see, open_pic.c does not handle
> timer, ipi, uart or any other internal interrupt sources (as they are not
> reported in the feature register).
What you're suggesting brings back the old hacking behavior. Again I
say, look at what lopec_setup.c does for handling interrupts, look at
the manual for the prpmc800 (and the MPC107 (OpenPIC/EPIC related bits)
or MPC8240 (again, OpenPIC/EPIC)) manuals.
--
Tom Rini (TR1265)
http://gate.crashing.org/~trini/
** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/
More information about the Linuxppc-embedded
mailing list