Forum Discussion

Altera_Forum's avatar
Altera_Forum
Icon for Honored Contributor rankHonored Contributor
15 years ago

Unconnected interrupts with SOPC Builder

Hello people,

I created a sopc system with a PCIe core, a dma controller and memory. I want the dma controller to send an interrupt when a dma transfer ends.

The dma's interrupt sender port is connected to the pcie interrupt receiver port with priority 0 (the highest).

I don't see any interrupts on my computer regardless of the selected type, eg. legacy interrupts oder MSI.

I took the rtl viewer to see what's wrong. All signals connected to pcie_compiler_0:wrapper are connected to ground ('0'), eg.

app_int_sts, app_msi_req, app_msi_num[3:0], etc.

RxmIrq and RxmIrq_num[] are connected.

So it's logical that no interrupts are triggered on the computer.

I don't know how to fix this. Maybe it's a bug.

I'm using Quartus 10.0 SP1.

Thanks in advance.

Regards,

Frederik

2 Replies

  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    The interrupts are coming through now. I had to set the AVL_IRQ bit in the Avalon-MM to PCI Express Interrupt Enable Register at address: 0x0050.

    Eg.

    iowrite32((u32)1<<7, (u32*)(ape->bar[0]+PCIE_CONTROL_REGISTER_OFFSET+0x0050));

    This is different from the altpciechdma driver that was in the linux kernel. If you want to use it for your own, add the above line after the map_bars() function in the probe() function and it will work properly.

    Regards,

    Frederik
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    Hello Frederik,

    I am trying to do something similar like you with Qsys and I am observing the same "problem", the signals app_int_sts, app_msi_req, app_msi_num[3:0] are terminated to zero. Is this a real problem?

    The dma's interrupt sender port signals are RxmIrq and RxmIrq_num[ ] ? I am confused.

    thank you in advance,

    Tonis