Re: ppc edge triggered interrupt
Jens.Toerring_at_physik.fu-berlin.de
Date: 05/09/04
- Previous message: Ulrich Weigand: "Re: large files: when ubiquitous?"
- In reply to: Andrea Treccani: "ppc edge triggered interrupt"
- Next in thread: Andrea Treccani: "Re: ppc edge triggered interrupt"
- Reply: Andrea Treccani: "Re: ppc edge triggered interrupt"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Date: 9 May 2004 14:14:17 GMT
Andrea Treccani <andrea.treccani@email.it> wrote:
> I'm a newbie in Linux module programming.
> I'm making some test on a PowerPC 405EP system running linux 2.4.20.
> I have added an interrupt handler for an external IRQ using request_irq
> function.
> Now I would like to change the behaviour of this interrupt from "level
> sensitive" to "edge sensitive" but I can not find a kernel function
> dealing with this purpose. Can anybody suggest me what I should do?
If I don't understand something completely wrong, the hardware you
are using determines if you use level-triggered or edge-triggered
interrupts. ISA cards use edge-triggered interrupts while PCI inter-
rupts are level-triggered. If you have an ISA card on that interrupt
I guess you have to set up that interrupt to be treated as an ISA
interrupt in the bios (making it non-shareable, so make sure there
is nothing else requiring it).
> I've tried to modify some of the UIC registers of the processor (using
> mtdcr, ppc4xx_pic_init...), but anytime I succeed in compilig
> something,
> when I try to insmod my module, I obtain an "unresolved symbol" message.
> Why some of the kernel functions (also present in system.map file) are
> not linkable from my module?
What symbols are these? And are they marked with an uppercase 'T' in
System.map (assuming your System.map is in sync with the kernel you
are using). Are they also listed in /proc/ksyms?
> How can I force a function defined with __init attribute to be linked to
> other functions?
I don't understand that question. When the module becomes part of
the kernel when you do insmod it, it can use all global functions
of the kernel. But the module does not get loaded (and you get that
"unresolved symbol" error message) when the module tries to use
functions that are not available for its use. If you require such
a function and it's from a different module then you have to insmod
that other module first. If it's not available because it's from a
part of the kernel that didn't got compiled in then you have to
recompile the kernel with the corresponding option switched on. And
if you can't use it because it's not an "external" function then
you're probably trying to use a function that you shouldn't in the
first place and you have to change the kernel to allow your module
get at that function (making the module useless for other people
unless you can get the kernel maintainer to accept your changes
into the mainstream kernel).
Regards, Jens
-- \ Jens Thoms Toerring ___ Jens.Toerring@physik.fu-berlin.de \__________________________ http://www.toerring.de
- Previous message: Ulrich Weigand: "Re: large files: when ubiquitous?"
- In reply to: Andrea Treccani: "ppc edge triggered interrupt"
- Next in thread: Andrea Treccani: "Re: ppc edge triggered interrupt"
- Reply: Andrea Treccani: "Re: ppc edge triggered interrupt"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Relevant Pages
|