Pci interrupt problem - VxWorks

This is a discussion on Pci interrupt problem - VxWorks ; Hello can anybody please help me about this problem I am using a pci based serial card (PMC521) on a pentium 4 DPM board. The PMC module and the ethernet both share the same IRQ9 line. I connect a ISR ...

+ Reply to Thread
Results 1 to 4 of 4

Thread: Pci interrupt problem

  1. Pci interrupt problem

    Hello can anybody please help me about this problem

    I am using a pci based serial card (PMC521) on a pentium 4 DPM board.
    The PMC module and the ethernet both share the same IRQ9 line.

    I connect a ISR routine for the PMC module using

    pciIntConnect((VOIDFUNCPTR
    *)INUM_TO_IVEC(INT_NUM_IRQ0+0x09),myPciIsr,0)

    then i enable the interrupt using

    sysIntEnablePIC(0x09)

    After that when i use the shell the shell hangs up and the target
    reboots.
    Is it due to the shared interrupt problem?
    what things can be done to avoid this?


  2. Re: Pci interrupt problem

    The two cards can share the Interrupt Line (in your case IRQ9) as long
    as they have different interrupt vectors, there isn't any problem with
    that.
    When you make the intConnect one of the arguments is the
    INUM_TO_IVEC(interruptVector). In the case of the PMC module is the
    vector INT_NUM_IRQ0+0x09?
    Probably you are receiving an exception at the interrupt level so that
    makes the shell to reboot. Check also your ISR.

    Hope it helps,
    Andrés M. Pazos

    vusapkar wrote:
    > Hello can anybody please help me about this problem
    >
    > I am using a pci based serial card (PMC521) on a pentium 4 DPM board.
    > The PMC module and the ethernet both share the same IRQ9 line.
    >
    > I connect a ISR routine for the PMC module using
    >
    > pciIntConnect((VOIDFUNCPTR
    > *)INUM_TO_IVEC(INT_NUM_IRQ0+0x09),myPciIsr,0)
    >
    > then i enable the interrupt using
    >
    > sysIntEnablePIC(0x09)
    >
    > After that when i use the shell the shell hangs up and the target
    > reboots.
    > Is it due to the shared interrupt problem?
    > what things can be done to avoid this?



  3. Re: Pci interrupt problem

    If your BSP has it, use sysIsrShow to verify your ISR is hooked
    correctly to IRQ9. You'll get a list of each IRQ and the associated
    ISR chained to it.

    While not directly related, don't confuse PCI int lines, and IRQs.
    Many pci devices can share a single line, ie INTA. The IRQ mechanism
    that is put in at configuration time can also be shared among devices.
    The reason that you use pciIntConnect is for that very reason - it is
    designed to chain the ISRs together and call them all sequentially.

    Put in some logMsg in your ISR and see how far it gets.

    Good luck
    lc
    apazosm@gmail.com wrote:
    > The two cards can share the Interrupt Line (in your case IRQ9) as long
    > as they have different interrupt vectors, there isn't any problem with
    > that.
    > When you make the intConnect one of the arguments is the
    > INUM_TO_IVEC(interruptVector). In the case of the PMC module is the
    > vector INT_NUM_IRQ0+0x09?
    > Probably you are receiving an exception at the interrupt level so that
    > makes the shell to reboot. Check also your ISR.
    >
    > Hope it helps,
    > Andrés M. Pazos
    >
    > vusapkar wrote:
    > > Hello can anybody please help me about this problem
    > >
    > > I am using a pci based serial card (PMC521) on a pentium 4 DPM board.
    > > The PMC module and the ethernet both share the same IRQ9 line.
    > >
    > > I connect a ISR routine for the PMC module using
    > >
    > > pciIntConnect((VOIDFUNCPTR
    > > *)INUM_TO_IVEC(INT_NUM_IRQ0+0x09),myPciIsr,0)
    > >
    > > then i enable the interrupt using
    > >
    > > sysIntEnablePIC(0x09)
    > >
    > > After that when i use the shell the shell hangs up and the target
    > > reboots.
    > > Is it due to the shared interrupt problem?
    > > what things can be done to avoid this?



  4. Re: Pci interrupt problem


    My BSP doesnt hav SysIsrShow.
    I guess the ISR hanhdler that i am attaching over writes the handler of
    the ethernet driver, so i guess when i use the shell the interrupt is
    not handled
    wat could be the possible solution?

    LarryC wrote:
    > If your BSP has it, use sysIsrShow to verify your ISR is hooked
    > correctly to IRQ9. You'll get a list of each IRQ and the associated
    > ISR chained to it.
    >
    > While not directly related, don't confuse PCI int lines, and IRQs.
    > Many pci devices can share a single line, ie INTA. The IRQ mechanism
    > that is put in at configuration time can also be shared among devices.
    > The reason that you use pciIntConnect is for that very reason - it is
    > designed to chain the ISRs together and call them all sequentially.
    >
    > Put in some logMsg in your ISR and see how far it gets.
    >
    > Good luck
    > lc
    > apazosm@gmail.com wrote:
    > > The two cards can share the Interrupt Line (in your case IRQ9) as long
    > > as they have different interrupt vectors, there isn't any problem with
    > > that.
    > > When you make the intConnect one of the arguments is the
    > > INUM_TO_IVEC(interruptVector). In the case of the PMC module is the
    > > vector INT_NUM_IRQ0+0x09?
    > > Probably you are receiving an exception at the interrupt level so that
    > > makes the shell to reboot. Check also your ISR.
    > >
    > > Hope it helps,
    > > Andrés M. Pazos
    > >
    > > vusapkar wrote:
    > > > Hello can anybody please help me about this problem
    > > >
    > > > I am using a pci based serial card (PMC521) on a pentium 4 DPM board.
    > > > The PMC module and the ethernet both share the same IRQ9 line.
    > > >
    > > > I connect a ISR routine for the PMC module using
    > > >
    > > > pciIntConnect((VOIDFUNCPTR
    > > > *)INUM_TO_IVEC(INT_NUM_IRQ0+0x09),myPciIsr,0)
    > > >
    > > > then i enable the interrupt using
    > > >
    > > > sysIntEnablePIC(0x09)
    > > >
    > > > After that when i use the shell the shell hangs up and the target
    > > > reboots.
    > > > Is it due to the shared interrupt problem?
    > > > what things can be done to avoid this?



+ Reply to Thread