Re: ppc edge triggered interrupt

Jens.Toerring_at_physik.fu-berlin.de
Date: 05/09/04

  • Next message: Norm Dresner: "Re: Why linux is so stupid with hardware drivers?"
    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
    

  • Next message: Norm Dresner: "Re: Why linux is so stupid with hardware drivers?"

    Relevant Pages

    • Re: Interrupt context...
      ... > gone through most of the posts on interrupt in usenet. ... > kernel stack and ISR is executed. ... More may be saved depending on the architecture. ... Here the kernel have assembler code to save all general ...
      (comp.os.linux.development.system)
    • Re: [PATCH 19-rc1] Fix typos in /Documentation : Misc
      ... +do not have a corresponding kernel virtual address space mapping) and ... This command sets the scale factor for the ABSOLUTE MOUSE POSITIONING mode. ... If you check the source code you will see that what I draw here as a frame ... interrupt-parent: contains the phandle of the interrupt ...
      (Linux-Kernel)
    • Re: [PATCH 18-rc3] Fix typos in /Documentation : Q-R
      ... The driver will receive them again on the ... The kernel is entered with r3 pointing to an area of memory that is ... Bits are then right shifted into the GP_SAMPLE register at the specified ... you get an interrupt when a full DWORD is recieved. ...
      (Linux-Kernel)
    • PROBLEM: oops in 2.6.21.1 after bringing up the network
      ... I am consistently getting a kernel oops from a vanilla 2.6.21.1 kernel. ... Fatal exception in interrupt ... pin B routed to IRQ 0 ... Elitegroup Computer Systems Unknown device b732 ...
      (Linux-Kernel)
    • [PATCH] Update Documentation/DocBook/kernel-hacking.tmpl
      ... Kernel Hacking. ... not associated with any process, serving a softirq, tasklet or bh; ... For example, while a softirq is running on a CPU, no other ... but a hardware interrupt can. ...
      (Linux-Kernel)