Search

Technical Discussion Group Forum

This forum is provided for user discussion. While Beacon EmbeddedWorks support staff and engineers participate, Beacon EmbeddedWorks does not guarantee the accuracy of all information within in the Technical Discussion Group (TDG).

The "Articles" forums provide brief Articles written by Beacon EmbeddedWorks engineers that address the most frequently asked technical questions.

To receive email notifications when updates are posted for a Beacon EmbeddedWorks product download, please subscribe to the TDG Forum of interest.

TDG Forum

PrevPrev Go to previous topic
NextNext Go to next topic
Last Post 31 Oct 2005 03:07 PM by  kurtl@logicpd.com
M5474LITE PCI INTA connected to IRQ7?
 3 Replies
Sort:
You are not authorized to post a reply.
Author Messages
aaronjstewart@gmail.com
New Member
New Member
Posts:


--
28 Oct 2005 03:04 PM
    Hi - we've started working with the PCI slot on this board, only to realize that PCI INTA is tied to IRQ7. From what I can tell, IRQ7 is an NMI, and is not configurable in the interrupt controller. This would imply that I can never mask interrupts generated from my PCI card, which will cause problems in our OS which needs to disable all interrupts during certain sections of the code. Assuming my interpretation of IRQ7 is correct, I either need to run my PCI card in polling mode (not use the INTA), or modify your board to route INTA to a non-NMI interrupt pin (IRQ6-1). Am I correct as far as my assumptions concerning PCI INTA? If so, why would you choose to tie it to IRQ7? Usually NMI interrupts are not tied anything but abort switches or the like. Thanks!
    kurtl@logicpd.com
    New Member
    New Member
    Posts:


    --
    29 Oct 2005 12:32 AM
    IRQ7 can be masked in the IMRL register bit 7. I think you may have Level 7 priority interrupts confused with IRQ7. Interupts set to Level 7 priority are non-maskable.

    If IRQ7 was non-maskable there are a few ways one could work around the issue. You could clear EPIE7 while you don't want to accept the IRQ7 interrupt, or you could disable the input pin in the EPDDR.

    But luckily, IRQ7 is maskable and you shouldn't have to treat it any different than any other external interupt.

    -Kurt
    bfhaley
    New Member
    New Member
    Posts:


    --
    31 Oct 2005 12:36 PM
    Quote:
    IRQ7 can be masked in the IMRL register bit 7. I think you may have Level 7 priority interrupts confused with IRQ7. Interupts set to Level 7 priority are non-maskable.

    IRQ7 is fixed at interrupt level 7, so it is an NMI. The difference is that it can be disabled via the IMRL and EPIER, giving you a maskable non-maskable interrupt . However, the MCF5474 reference manual does not recommend doing this, as spurious interrupts may result.
    Quote:
    If IRQ7 was non-maskable there are a few ways one could work around the issue. You could clear EPIE7 while you don't want to accept the IRQ7 interrupt, or you could disable the input pin in the EPDDR.

    But luckily, IRQ7 is maskable and you shouldn't have to treat it any different than any other external interupt.

    Using EPIE7 is not recommended in the reference manual, as stated above. You could disable via EPDDR, although there are probably still windows of opportunity for spurious interrupts. Yeah, I know, we could just ignore the spurious interrupts. Bottom line is that it is problematic trying to use an NMI as a "maskable" interrupt, even if the hardware allows you to do so. I'm curious why LogicPD chose IRQ7 for PCI INTA - perhaps they don't want to remap the IRQ1-4 pins? Choosing IRQ7 might have been convenient from a hardware standpoint, but it adds extra burden on the firmware.

    Thanks for your response.
    kurtl@logicpd.com
    New Member
    New Member
    Posts:


    --
    31 Oct 2005 03:07 PM
    I missed the fact that IRQ7 is a fixed level 7 interrupt.

    I also agree that an NMI shouldn't be tied to a PCI interrupt line.

    If you are designing a product and the NMI line will cause problems in your application if used for the PCI interface, I suggest using one of the other available interrupt lines.

    -Kurt
    You are not authorized to post a reply.